Ir para conteúdo
Omega

Queries e SQL para OTservers

Posts Recomendados

Esse é um tutorial básico sobre SQL e as funções LUA que são usadas em OTServers.

Definição
Primeiramente, deve ser útil uma definição de banco de dados: são, fundamentalmente, conjuntos de informações armazenadas em tabelas. Para OTServers, são onde todas as informações sobre as contas e personagens são guardadas.
SQL (Structured Query Language) é uma linguagem que é usada por quase todos os bancos de dados (no nosso caso, todos). Quando você envia comandos em SQL para o seu banco de dados, você pode modificá-lo ou extrair valores dele.
Query (queries no plural) são consultas ou comandos que são enviadas para o banco de dados.

Introdução
Para nós, scripters, às vezes é fundamental tirar informações ou mudar valores dos personagens que só estão disponíveis no banco de dados, para isso existe uma biblioteca de funções que já vem com os servidores, a biblioteca db (de database, que significa banco de dados em inglês). Dela, usaremos principalmente duas funções:

db.getResult
Retorna os valores que foram selecionados em uma query

db.query ou db.executeQuery
Executa uma query usada para modificar informações no banco de dados. Essa função se chama db.executeQuery na maioria dos servidores, mas também pode ser utilizada como db.query em outros.

Em ambos os casos, a query deverá ser usada entre aspas.

Queries em SQL

Primeiramente, devemos saber como executar queries diretamente no banco de dados. Para isso, faça download de um banco de dados que eu disponibilizei abaixo como anexo. Use também o sqlite studio, que você pode baixar

Please login or register to see this link.

.

Assim que você abrir o banco de dados com o sqlite studio você verá que está dividido em duas janelas: a da esquerda de navegação e a da direita com os dados em si (no caso está branco quando abre). Abra a árvore do banco de dados e selecione a tabela players clicando duas vezes. Você verá a estrutura do banco de dados, com os nomes das colunas e o tipo de dados de cada uma (INT, INTEGER, VARCHAR, BOOLEAN, etc). Em seguida, selecione a aba 'Data' para ver os dados que estão na tabela. Lá estarão todos os jogadores cadastrados no servidor, com várias informações. Essa é a aba importante para nós.

1. SELECT
Depois disso, vamos tentar executar um primeiro comando no banco de dados: use ALT+E para abrir o editor de queries e digite:

SELECT * FROM players

Então, aperte F9 e veja o resultado. O que deve acontecer é aparecer toda a tabela players que você já havia visto. Perceba como, em geral, SQL é uma linguagem bem direta: a query que você enviou para o banco de dados significa:

SELECIONE * DE jogadores

E ela faz isso, com a exceção de que * significa todos os dados da tabela.
OBS.: Apesar de quase toda query de SQL estar nesse padrão, ela é uma linguagem que não é

Please login or register to see this link.

, logo

select * from players

Dá no mesmo. Mas fica menos legível, assim utilizamos letras maiúsculas para as palavras-chave dos comandos e letras minúsculas para os nomes de tabelas e colunas.

Vamos testar outra query, um pouco mais complicada:

SELECT name, level FROM players

Dessa vez não selecionamos todos os dados da tabela, apenas o nome e o level de cada jogador. A sintaxe do comando SELECT é:

SELECT nome_da_coluna_1, nome_da_coluna_2,..., nome_da_coluna_n FROM nome_da_tabela

Assim teremos como retorno os valores dessas colunas para cada elemento da tabela. Tente selecionar apenas o nome e a posição (x, y e z) de cada jogador e confira abaixo.

Please login or register to see this spoiler.



Please login or register to see this link.



Fontes Consultadas

Please login or register to see this link.


Please login or register to see this link.



Considerações
Seria injusto não dar os devidos créditos ao

Please login or register to see this link.

, cujos códigos serviram de base para meu aprendizado em relação à SQL e às funções LUA relacionadas.


Please login or register to see this link.

Please login or register to see this link.

Editado por Omega

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que tópico magnífico cara, muita coisa importante e boa de se aprender.

Pode ter certeza que irei da uma saudade nele.

 

Obrigado pelo excelente conteúdo.

 

Atenciosamente,

Alexandre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótimo tutorial, muitas pessoas tem duvidas sobre sql e esse tutorial vai ajudar muito.

rep+

Editado por SUJA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Mano Shisui
      EAE GALERA HJ BOU POSTAR UM SERVIDOR EDITADO POR MIN NTO ULTRA 
       
      *Novos items
      -Event set
      -Uchiha set 
      -Nibi set
      -naruto rikkudou set
      -kaguya mask,tunic
      -sennin shield
      -magekyou shield
      -banda sword
       
      *Novas quests
      -Naruto rikkudou set
      -Nibi set
      -gunbai(Faltando Mobi)
      -gold
      -Potion
      -Kaguya mask,Armor
       
      *Novos eventos 
      -Evento Bag
      -Evento Boss
       
      *Novos mobis
      -Eye
      -Kyuubi boss
      -Giant Four
      -psciqui mona
      -perfect konan
      -Uchiha itachi
      -Perfect danzou
      -Dragon blue
      -Mummy hunt
       
      ---------------Quests-----------------

      Please login or register to see this attachment.
       
       
       
      ---------------------------HUNTS-------------------------------

      Please login or register to see this attachment.
       
       
      ALGUMS ITEMS

       
       
       
      DOWNLOADS--- 
      Please login or register to see this link.
    • Por fumapredra
      Zyloria Server
      -- Rates: 
      Experience rate: average 27x (starts at 70x, ends at 2x, see website for details). 
      Skillrate: 30x. 
      Magic rate: 7x. 
      Loot rate: 3x. 
       
      --HOST:
      100% uptime
      Dedicated Server
      Low Ping
      Anti-DDOS
      --MAP
      GLOBAL 8.6
      VIP ISLANDS
      --PVP
      Balanced vocations
      Make your account at https://zyloria.online/
    • Por Kakaux
      SEJAM BEM VINDOS AO KAMATH GLOBAL SERVER!
      Resolvemos abrir o BETA do servidor com objetivo de realizar alguns testes, tudo para que melhore o servidor, nos mandem seu feedback.
      Site: vitureiraserver.com

      Exp Rate: 300x
      Skill Rate: 50x
      Magic Rate: 40x
      Loot: 4x
      - Battlefield(Team-War)
      - Zombie Event
      - Last Man Standing
      - WAR Anti-Entrosa
      - Capture the Flag
      - Todas as Quests 100%
      - Raids 100%
      - Todas Mounts 100%(até a versão 10.99)
      - Umbral Creation 100%
      - Sistema de skill points por level!(fase beta)
       
       
       
      Lembrem-se que estamos em beta!
      Divirta-se!!!!
       
       

      Please login or register to see this attachment.
       
       
       
      Atenciosamente:
      ADM Manzetti
      ADM Matheus
    • Por sadanestupraa
      SITE: www.outlander.servegame.com
      IP: outlander.servegame.com
      VERSÃO: 8.60
      MAPA GLOBAL
      CAST SYSTEM
      WAR SYSTEM
      VIP SYSTEM MANY HUNTS AND EXCLUSIVE QUESTS

      1 / 50 = 100x
      51 / 70 = 70 x
      71 / 100 = 40x
      101 / 120 = 20x
      100 / 150 = 10x
      151 / 200 = 5x
      250 = 2x

      Skill: 20x
      Magic: 15x

      Visitem nosso site e veja mais informações.
    • Por Very Krazy
      Seja Bem Vindo ao Underold!
      Acesse nosso site :: 
      Please login or register to see this link.
      •• Server Recem Lançado!!
      •• Versão :: 8.60
      •• Sistema de PVP 7.6
      •• Mapa Global 8.6 (Novas Areas de Hunt sendo adicionadas)
      •• Sprites Antigas dos monstros
      •• Mais de 45 Tasks variadas com recompensas
      •• Servidor Dedicado
      •• Cliente Próprio
      •• Equipe ADM on todos os dias para sanar duvidas e resolver qualquer tipo de problema
      Exp Rate :: 10x (Stages)
      O Underold concerteza será seu server favorito daqui pra frente, venha jogar conosco e fazer amigos, quests, tasks, participar de eventos e muito mais!
      Estamos Online diariamente para a melhoria continua do servidor e trabalhando para o melhor aproveitamento dos nossos players!
      Ta esperando oque? Crie sua conta em << 
      Please login or register to see this link.
       >> e venha ser mais um integrante desse server que a cada dia cresce mais!! Obrigado! E nos vemos In-game...
      Atenciosamente, Underold
×