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 olddies
      Please login or register to see this link.
      Please login or register to see this link.
        Fico feliz em anunciar a segunda edição do Tibiana 7.1, mais bug's free e estabilidade. Você precisará do Tibiana Client para poder jogar Inscreva-se para uma conta gratuita e comece sua jornada! O site estará aberto para registro de conta. Please login or register to see this link.
        Ingame NPC'S Shops!   Há adições personalizadas para Tibiana, você pode comprar runas na loja (x1 hmm, sd, uh, explo, lmm, gfb, mwall) (bp mf e bp lf) Os NPCs só vendem runas únicas não por (BP) Antibot System! Tibiana tem um sistema anti-bot que manterá uma jogabilidade justa. O Sistema Anti-Bot irá pegar os trapaceiros óbvios e os jogadores suspeitos serão investigados. Shared Party Experience!   Compartilhe a experiência obtida com criaturas mortas enquanto estiver em uma festa com seus amigos. Simplesmente digite! Compartilhe como um líder da parte para ativar o Sistema Compartilhado de Experiência Compartilhada. Certos requisitos devem ser cumpridos. Task System!   Complete tarefas diferentes e ganhe recompensas em troca de sua bravura! Cada tarefa requer que você mate uma certa quantidade de criaturas. Ganhe recompensas em troca de completar uma tarefa, com base na dificuldade das criaturas mortas. Server Information! Premium: Free Version: 7.1 Map: CipSoft map adaptado do 7.1 Supporte: Directx9 & OpenGL Shared Party Experience Anti-Bot System Task System Houses: 100% Spawns: 100% NPC's: 100% Quests: 100% Experience Stages! 1-12 = 30x 13-20 = 20x 20-30 = 10x 30-50 = 7x 50-75 = 5x 75-100 = 3x 100+ = 2x Rates! Skill: 8x Magic: 4x Loot: 3x Old Items! Old Creatures! Old Runes And Spells!
    • Por koltryz
      Jogar no Neptera é uma ótima opção para jogadores que querem se dedicar a um servidor sério, sem resets e sem items editados. O servidor se mantem online apenas por sistema de VIP com as doações que os jogadores fazem, proporcionando 3 continentes como Gengia, Oken, Pyre e 30% de experiência adicional durante o período VIP.
      Conexão:
      Site: www.neptera.com.br
      IP: www.neptera.com.br

      Informações:
      • Data de inauguração 09/11/2018 às 20:00 horas;
      • Tibia versão 8.6;
      • 24 horas online dedicado;
      • Cast System;
      • Task System;
      • War System;
      • Vocações balanceadas;
      • Sem items VIP;
      • Sistema de recompensa ao ir subindo de nível;
      • Ao pegar level 20, o jogador receberá em sua conta 7 dias de VIP Account.

      Rates:
      • Exp rate = 90x (Stages)
      • Skill rate = 20x
      • MagicLevel rate = 7x
      • Loot rate = 1x
      Obrigado pela preferência, tenham um excelente jogo!
    • Por koltryz
      Jogar no Neptera é uma ótima opção para jogadores que querem se dedicar a um servidor sério, sem resets e sem items editados. O servidor se mantem online apenas por sistema de VIP com as doações que os jogadores fazem, proporcionando 3 continentes como Gengia, Oken, Pyre e 30% de experiência adicional durante o período VIP.
      Conexão:
      Site: www.neptera.com.br
      IP: www.neptera.com.br

      Informações:
      • Data de inauguração 09/11/2018 às 20:00 horas;
      • Tibia versão 8.6;
      • 24 horas online dedicado;
      • Cast System;
      • Task System;
      • War System;
      • Vocações balanceadas;
      • Sem items VIP;
      • Sistema de recompensa ao ir subindo de nível;
      • Ao pegar level 20, o jogador receberá em sua conta 7 dias de VIP Account.

      Rates:
      • Exp rate = 90x (Stages)
      • Skill rate = 20x
      • MagicLevel rate = 7x
      • Loot rate = 1x
      Obrigado pela preferência, tenham um excelente jogo!
    • Por Rafael Zunniga
      We are online now!   Ultima Alianza Tibia is a serious longterm lowrate RPG game with multiple worlds around the globe!   We combine the classic map of Guia3d with the Global map.
      For information, please visit the website:
      Please login or register to see this link.
        Create your account already here:
      Please login or register to see this link.
        Download the custom client to play here:
      Please login or register to see this link.
        IP: Please login or register to see this link.

      Port: 7171   Release date: [Saturday, November 10, 2018].
    • Por Zabim
      Please login or register to see this link.

      Convidamos vocês para o test server do Hardsoul OT.
      Otserver criado para jogar com os amigos, criamos um mundo completamente novo, possui varias quests, sistemas únicos, mapa exclusivo.
      Entre nas nossas redes sociais disponíveis no site e nos ajude com opiniões.
       
      ****TEST SERVER****
      # Todos participantes do test server receberão prêmios na abertura oficial.

      # Site: www.hardsoulot.com
      # Cliente próprio, download no site.
      # Mapa único e exclusivo.
      # Itens únicos (conquiste o seu).
      # Sistema de Dungeons.
      # Sistema de loot melhorado dos monstros.
      # Sistema de slot nos equipamentos.
      # 5 dias de VIP grátis para todas novas accounts.
      # Sem itens VIP.
       
      Please login or register to see this link.

       
       

      Please login or register to see this link.
×