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 rod_doidim
      Raiz começa em 18/01/2019 as 16:00 (Brasília)
       
      ⛥Acesse sua conta em Please login or register to see this link.

        _Introdução
      Tibia raiz é um servidor oldschool com novos recursos mas mantendo a essência do tibia 7.4
       
      _Novos Recursos
      ⛥Novas munições
      ⛥Novas criaturas
      ⛥Novas quests
      ⛥Ataque Crítico ativo(critical)
      ⛥Respawns rápidos
      ⛥Task system com contador compartilhado enquanto estiver com EXP SHARED ativa.
      ⛥Novos items
      ⛥Não há necessidade de blank runes para fazer runas.
      ⛥Fluids(mana fluid, life fluid) são empilháveis (stack).
       
      _EXP Stages
      Level 1 ao 20 - 100x
      Level 21 ao 30 - 90x
      Level 31 ao 40 - 80x
      Level 41 ao 50 - 70x
      Level 51 ao 60 - 60x
      Level 61 ao 70 - 50x
      Level 71 ao 80 - 40x
      Level 81 ao 90 - 30x
      Level 91 ao 100 - 20x
      Level 101 ao 110 - 10x
      Level 111 ao 120 - 8x
      Level 121 ao 130 - 6x
      Level 131 ao 140 - 4x
      Level 141 + 3x   
      _Geral
      Skill: 10x
      Magic: 6x
      Loot: 3x  
      _Informações Técnicas
      Server IP: tibiaraiz.com
      Port: 7171
      Localização: Canadá   Mais informações sobre o servidor, acesse: 
      Please login or register to see this link.
    • Por Navezin Soace
      Olá ninjas, estamos online!
      [+] Site: 
      Please login or register to see this link.

      [+] Versão 8.60
      [+] Exp: Médio para Fácil
      [+] Apesar do mapa ser o padrão da maioria dos Ntos, a exp de vários monstros foram alteradas, então explorem o mapa e acharão bons locais para UP 
      [+] Para fazer quest use o comando !quest
      [+] Kage System, fale com o Kakashi no prédio Hokage para começar a fazer missões para se tornar um Kage
      [+] Mining System, Fale com o NPC Orochimaru no 3º andar do dp de Konoha para, comprar a picareta, ser teleportado para área de minerção, e trocar pedras preciosas.
      [+] Izanagi System, ao morrer você terá uma chance de reviver com 100% de HP/Chakra, use mangekyou sharingans adquiridos no Orochimaru para aumentar sua chance (Máximo de 10%)
      [+] Para desabilitar o PvP use o comando !pvp off e para habilitar use o comando !pvp on
      [+] Para saber mais informções sobre o seu personagem use o comando !status
      --Eventos--
      [+] Todos os dias ás 10, 13, 20 e 21 hr ocorre o evento Boss
      [+] Todos os dias ás 9, 12, 19 e 22 hr ocorre o evento Battle Royale. Os 5 maiores vencedores do evento aparecem em um Rank no site.
      [+] Sengoku Jidai, a primeira guild que conseguir 300 frags*, ganharão 50% de exp bônus (O evento sempre está ativo)
      * Frags só serão contados se: O player que matou tiver um IP diferente , e 200 níves de diferença do player que morreu. Se encotrarem bugs, por favor reportem, dentro do jogo ou pela página do facebook 
      Please login or register to see this link.

      Espero que gostem do jogo e se divirtam!!!
    • Por PokemonFS
      Please login or register to see this link.
       
                                                                                                                                    Pokémon Online Tibia ( ONLINE )
                                                                                                             Um Servidor de Pokémon (RPG) Totalmente (Exclusivo) !
                                                                                                                                                    24 horas online
                                                                                                                                           Experiência Medio/Hard .
                                                                                                                                           Shop Funcionando 100%.
                                                                                                                  Qualquer Tipo de Abuso Verbal Resultara Em Punição.
                                                                                                               Staff Não Se Responsabiliza Por Items Perdidos/Roubados.
                                                                                                              Os Jogadores Que Aproveitar de Bugs Sera Banido/Deletado.
       
                                                                                                                           CRIE SUA ACCOUNT AGORA NO NOSSO SITE
                                                                                                                                        Please login or register to see this link.
      tk
                                                                                                                                             Visite Nossa Fan Page:
                                                                                                                                 Please login or register to see this link.

    • Por zelekharibo
      Olá jogadores,
       
      Dragon Ball Better Story Retro Edition começará em 19 de janeiro às 16:00 Central European Time (CET).
      Muitos de vocês nos pediram para ressuscitar esta edição e, eventualmente, decidimos fazê-lo.
      Nesta versão do nosso servidor, você poderá sentir nostalgia, caçar monstros antigos, fazer amigos e lutar contra novos inimigos, como antigamente.
      Embora seja uma edição retro, isso não aconteceu sem algumas alterações:
      - Last Man Standing Event uma vez a cada 2 dias (o vencedor ganha pontos premium, mas todos ganham XP e dinheiro)
      Ranking de Evento de PvP (3 jogadores com mais vitórias durante a semana recebem um prêmio na forma de pontos premium)
      -proxy system (conexões do Brasil, EUA com um ping menor)
      -caminho mercado (comprar / vender um personagem para pontos premium)
      - capacitação do cliente (manabar visível sob a barra de saúde, HP / KI em porcentagem e valor total ao mesmo tempo)
      - um sistema de transformação melhorado com a possibilidade de sua retirada
      -os monstros podem renascer quando o jogador está na tela (não saga e mandão)
       
       

      Please login or register to see this link.
       

      Abaixo está o texto usado para anunciar a 2ª edição do nosso servidor:

      Nós adicionamos dezenas de novas armas para personagens de ataque corpo-a-corpo, cujo dano é aumentado ainda mais pelos elementos, e decidimos reduzir o poder de ataque dos personagens à distância. Acreditamos que desta vez você será tão eficaz em PvP e PvE, jogando tanto "verde" e outras profissões.
       
       

      Please login or register to see this link.


      Please login or register to see this link.


      Please login or register to see this link.
       
       
      A fim de fornecer-lhe um jogo contínuo e não entediado tão rápido, não poderíamos esquecer os eventos do jogo.
      Provavelmente todos vocês bem conhecidos Team War, que divide você em duas equipes (azul e vermelho) e permite que você lute entre si em uma arena especial, onde após a morte não perdemos objetos ou experiência depois de um longo tempo parecia muito monótono.
       
       

      Please login or register to see this link.



      Please login or register to see this link.


      Please login or register to see this link.
       

      Desta vez, será diferente, a saber: para uma arena padrão de lutas, você participará de mais duas. Como resultado, você terá que aplicar uma estratégia diferente em cada mapa para que sua equipe possa ganhar. Outra mudança são os pontos PvP especiais que são obtidos para participar do evento. Esses itens puntky poderão ser trocados por itens da Loja SMS e outros itens até então inacessíveis no jogo. Para encorajá-lo a tentar ainda mais, o vencedor receberá 5 pontos e perderá apenas 1. Em caso de empate, ambas as equipes receberão 2 pontos.
      Este não é o fim. Boss Battle, que até agora não foi bem equilibrado, fará um novo sentido. Até agora, havia 50% de chance de realizar o evento todos os dias. Desta vez ele vai sempre tocar às 20:00.
      Como você sabe, seja ele, consiste em "salvar nosso planeta", oferecendo ao NPC o objeto que ele precisa. Depois de coletar todos os itens, é hora de lutar contra o chefe. Provavelmente, muitos de vocês acham que esse evento não foi suficiente "atraente" em termos de prêmios. Resolvemos isso da seguinte maneira: doando itens e lutando contra o Bos, você coloca um bônus adicional em todo o servidor pelas próximas 24 horas!
      Os bônus parecem:
      + x% de experiência para matar monstros
      + x% de perícia (por exemplo, + 5% de velocidade de ataque)
      + x% de chance de saque
      + x% de proteção para todos os ataques
      + x% max HP / MP
      Certamente Boss Battle agora se tornou lucrativo para cada um de vocês!
       
       

      Please login or register to see this link.


      Please login or register to see this link.


      Please login or register to see this link.
       
       
      Não poderíamos esquecer o desenvolvimento do mapa. Vários lugares foram melhorados no mapa e vários outros foram adicionados. Descobrir novos lugares e realizar missões a eles deve fornecer outra dose de impressões e emoções. Reúna seu próprio time e derrote os novos Chefes e receba prêmios sem precedentes!
       
       

      Please login or register to see this link.
       
       
      Para torná-lo ainda mais interessante ao matar monstros, você pode ver o colorido "Bonus!" sobre o corpo do monstro morto. O que isso significa? Isso significa que você tem sorte! O monstro que você derrotou deixou itens extras em seu corpo. Nada de especial, mas estes não são itens comuns. Colete esses "bônus" e substitua-os por EQ completamente novo e ajudas de jogo ou venda para outros jogadores ou NPCs. Você pode se sentir extremamente feliz e em vez do "bônus!" seus olhos verão as palavras "Caixa!", e no corpo do monstro você verá uma caixa colorida. Começando com a Caixa de Bônus +1, até +5 você tem a chance de desenhar cerca de 50 melhores itens no jogo.
       
       

      Please login or register to see this link.


      Please login or register to see this link.


      Please login or register to see this link.


      Please login or register to see this link.



      Please login or register to see this link.


      Please login or register to see this link.
       

      Para aqueles que não jogaram, e gostariam de jogar na nova edição do DBBS, vou adicionar algumas informações básicas sobre o nosso servidor.
      Nós temos 22 profissões únicas. Cada um deles tem diferentes transformações, feitiços e utilidade. Eles diferem em força de ataque, defesa ou técnicas de masterização, e você pode ler mais sobre isso em nosso site.
       
       

      Please login or register to see this link.


      Please login or register to see this link.
       

      As conquistas que podem ser obtidas no jogo nos dão pontos especiais. Esses pontos podem ser gastos para melhorar nosso caráter. Desenvolva um personagem de acordo com suas crenças e torne-se melhor que os outros! Você também pode encontrar mais informações em nosso site.
      Além disso, você vai encontrar um sistema sag com a gente, um extenso mapa composto por Terra e k
       
      Please login or register to see this link.

       
      A nova edição do DBBS começa em 19 de janeiro de 2019 às 16:00! CET
      Convidamo-lo cordialmente para uma nova aventura no nosso servidor e não se esqueça de convidar os seus amigos!
      Vejo você no jogo
      Administração DBBS.net.pl
      [VIDEO]https://www.youtube.com/watch?v=SpBqWnYhiSM&feature=youtu.be[/VIDEO]

      [competição] 
      Para participar do sorteio de 20 códigos no valor de 15 pontos premium, tudo que você precisa fazer é curtir e comentar este post!
      Você também pode obter chances duplas, compartilhando este post no seu quadro.

      Please login or register to see this link.
      Please login or register to see this link.

      [competição]
    • Por Linzinho
      Ah tão Esperada Hora Chegou !
      Enfim a Reinauguração do Servidor Hell Baiak Vai Acontecer !!

       
      14.Janeiro.2019 18:00 Horas !
       
      Sorteio de Inauguração (Meta 30 Players Online):
      2 Arma Donate !
      2 Vip Medal 30 Dias !
       
      Eventos:
      Battle Field
      Blood Castle
      Fire Storm
      Zombie Event
      Capture The Flag
      SnowBall War
      Defend The Tower
       
      Equipe -
      Mapper: [ADM] Farkas - [ADM] Souza
      Scripter: [ADM] Farkas - [ADM] Souza
       
      Informações:
      Name: Hell Server !
      Exp: 350x Stages
      Ip: hellbaiak.servegame.com
      Account: 1/1
       
      Servidor 24 Horas Online !
      Equipe Online 24 Horas !
      Suporte Via (Facebook, WhatsApp, Channel Help, Private Chat) !
      Segunda-Feira 14.Janeiro.2019 
×