Você precisa saber o que é SQL!

SQL  (Structured Query Language) é a linguagem padrão universal para manipular bancos de dados relacionais através dos SGBDs. Isso significa que todos os SGBDRs (Sistema de Gerenciamento de Banco de Dados Relacionais) oferecem uma interface para acessar o banco de dados utilizando a linguagem SQL, embora com algumas variações. Logo, saber o que é SQL e como utilizá-la é fundamental para qualquer desenvolvedor de softwares.

A “Linguagem Estruturada de Consultas” (SQL, traduzida para o português) é utilizada para interagir com o SGBD e executar várias tarefas como inserir e alterar registros, criar objetos no banco de dados, gerenciar usuário, consultar informações, controlar transações, etc. Todas as operações realizadas no banco de dados podem ser solicitadas ao SGBD utilizando esta linguagem.

SQL

A linguagem SQL é dividida em 4 agrupamentos de acordo com o tipo de operação a ser executada no banco de dados. A saber, DML (Data Manipulation Language, ou Linguagem de Manipulação de Dados e português), DDL (Data Definition Language, ou Linguagem de Definição de Dados em português), DCL (Data Control Language, ou Linguagem de Controle de Dados em português) e DTL (Data Transaction Language, ou Linguagem de Transação de Dados em português). Alguns autores classificam também uma divisão da linguagem para consultas, a DQL (Data Query Language, Linguagem de Consulta de Dados), que tem apenas um comando (SELECT), porém é mais comum encontrar este comando como integrante da DML, juntamente com os comandos INSERT, UPDATE e DELETE. Vejamos os comandos SQL de cada agrupamento.

DML – Data Manipulation Language

DML (Linguagem de Manipulação de Dados) é o subconjunto mais utilizado da linguagem SQL, pois é através da DML que operamos sobre os dados dos bancos de dados com instruções de inserção, atualização, exclusão e consulta de informações. Os comandos SQL desse subconjunto são:

  • INSERT: utilizado para inserir registros (tuplas), em uma tabela.
    • Exemplo: INSERT into CLIENTE(ID, NOME) values(1,’José’);
  • UPDATE: utilizado para alterar valores de uma ou mais linhas (tuplas) de uma tabela.
    • Exemplo: UPDATE CLIENTE set NOME = ‘João’  WHERE ID = 1;
  • DELETE: utilizado para excluir um ou mais registros (tupla) de uma tabela.
    • Exemplo: DELETE FROM CLIENTE WHERE ID = 1;
  • SELECT: O principal comando da SQL, o comando select é utilizado para efetuar consultas no banco de dados.
    • Exemplo: SELECT ID, NOME FROM CLIENTE;

Nota: Registro, Linha e Tupla são palavras sinônimas para referenciar a uma linha da tabela.

DDL – Data Definition Language

DDL (Linguagem de Definição de Dados) é o subconjunto da SQL utilizado para gerenciar a estrutura do banco de dados. Com a DDL podemos criar, alterar e remover objetos (tabelas, visões, funções, etc.) no banco de dados. Os comandos deste subconjunto são:

  • CREATE: utilizado para criar objetos no banco de dados.
    • Exemplo (criar uma tabela): CREATE TABLE CLIENTE ( ID INT PRIMARY KEY, NOME VARCHAR(50));
  • ALTER: utilizado para alterar a estrutura de um objeto.
    • Exemplo (adicionar uma coluna em uma tabela existente): ALTER TABLE CLIENTE ADD SEXO CHAR(1);
  • DROP: utilizado para remover um objeto do banco de dados.
    • Exemplo (remover uma tabela): DROP TABLE CLIENTE;

DCL – Data Control Language

DCL (Linguagem de Controle de Dados) é o subconjunto da SQL utilizado para controlar o acesso aos dados, basicamente com dois comandos que permite ou bloqueia o acesso de usuários a dados. Vejamos estes comandos:

  • GRANT: Autoriza um usuário a executar alguma operação.
    • Exemplo (dar permissão de consulta na tabela cliente para o usuário carlos): GRANT select ON cliente TO carlos;
  • REVOKE: Restringe ou remove a permissão de um usuário executar alguma operação.
    • Exemplo (não permitir que o usuário carlos crie tabelas no banco de dados): REVOKE CREATE TABLE FROM carlos;

DTL – Data Transaction Language

DTL (Linguagem de controle de transações) é o subconjunto da SQL que fornece mecanismos para controlar transações no banco de dados. São 3 comandos: iniciar uma transação (BEGIN TRANSACTION), efetivar as alterações no banco de dados (COMMIT) e cancelar as alterações (ROLLBACK).

Conclusão

Quem quer trabalhar com desenvolvimento de softwares precisa aprender a SQL, pois a maioria dos sistemas de informação interage com banco de dados, e essa é a linguagem universal para fazer qualquer coisa nos bancos de dados relacionais (o tipo de banco de dados mais utilizado na industria). Pode haver pequenas variações na linguagem dependendo do SGBD, mas a sintaxe dos comandos são muito parecidas.

Cada comando citado neste artigo possui uma série de recursos, o comando que tem mais recursos, obviamente, é o comando SELECT. O objetivo deste artigo é apenas apresentar a linguagem SQL e seus comandos, continue ligado aqui no { Dicas de Programação } que vamos ver os detalhes de cada comando desta linguagem.

Você precisa saber o que é SQL!
3.03 (60.66%) 363 votos
  • Olá Gustavo! Estou adorando as suas dicas e validando os comandos um a um (rs). Apenas um não consegui executar e mesmo digitando continua apresentando o mesmo erro. Veja se pode me ajudar:

    ALTER TABLE VENDEDORES ADD COLUMN SEXO CHAR (1)
    Relatório de erro:
    Erro de SQL: ORA-00904: : identificador inválido
    00904. 00000 – “%s: invalid identifier”
    *Cause:
    *Action:

  • Olá Vivi, que bom que tá gostando …
    Alguns comandos sofrem uma pequena mudança entre SGBDs e no Oracle, esse comando para adicionar uma coluna em uma tabela já existente, não tem a palavra COLUMN, então você pode usar esse comando: ALTER TABLE CLIENTE ADD SEXO CHAR(1);

    Corrigi no post também.

    Muito obrigado pela validação do comando.

  • ANTONIEL

    Gustavo SQL é uma linguagem de programação? o Acess é um sgbd?
    Se SQL for um programa como faço para adquirir?

  • Afinal sql é uma linguagem de programação?

    • SQL não é uma linguagem de programação. É uma linguagem para interação com o banco de dados através de um SGBD.

  • Liza

    Olá Gustavo!
    Estou com uma dúvida, se puder po favor me esclareça.
    utilizando os comandos dml, como posso inserir 3 linhas para cada tabela criada. Colocarei aqui o exemplo de uma: (cod_prof integer(5) notnull,nome_prof vanchar(30) notnull,data de nascimento date, cidade integer(5) notnull, primary key(cod professor);
    desde já agradeço!

    • Liza,

      você precisa usar o comando insert.

      É simples, veja um exemplo …

      Vou dar exemplo de uma tabela que seria criada da seguinte forma:

      CREATE TABLE MUNICIPIO(
      ID INTEGER,
      NOME VARCHAR(100)
      ESTADO CHAR(2)
      );

      Para inserir registros nessa tabela usamos o comando insert dessa maneira…

      INSERT INTO MUNICIPIO(ID, NOME, ESTADO) VALUES(1, ‘São Paulo’, ‘SP’);
      INSERT INTO MUNICIPIO(ID, NOME, ESTADO) VALUES(2, ‘Rio de Janeiro’, ‘RJ’);
      INSERT INTO MUNICIPIO(ID, NOME, ESTADO) VALUES(3, ‘Rio do Sul’, ‘SC’);

      Dúvidas?

      PS.: A linguagem não é MySQL, e sim SQL (Structured Query Language), MySQL
      é o Gerenciador de Banco de Dados (SGBD).

  • Gabriel

    você pode me disser a data que foi publicado esse artigo? quero fazer uma citação em um TCC

  • Len

    Saudações

    Primeiramente, seu blog é ducara, …

    Segundo, algumas dúvdas:

    * é possível editar SQL no Access ?

    * pode existir uma versão para windows do “libreoffice base” disponivel para download, tipo ‘avulso’ do conjunto do libreoffice ?

    * existe alguma técnica de aprendizagem fácil de SQL, porque isso me lembra muito linguagem de programação, que não é meu forte …

    Enfim, desde já grato por tudo e até próxima …

    Tchau Gustavo Furtado

    • Olá Len,
      * É possível sim executar comando SQL no Access -> Basta criar uma consulta e selecionar o modo SQL (a posição dos botões vai depender da versão do * Não tenho certeza, mas acho que você pode selecionar quais softwares do LibreOffice instalar. Sim tem versão pra Windows.
      * A melhor técnica de aprendizado é a prática, você só aprende SQL criando umas tabelas num banco de dados, inserindo e alterando dados, consultando, etc… SQL não é linguagem de programação. Há sim formas de implementar algoritmos com PLSQL por exemplo, mas SQL puro é uma linguagem com comandos para gerenciar, consultar e manipular dados em um banco de dados.

      Um abraço!

      • len

        Vlw por tudo e até mais …

  • DTL – DATA TRANSACTION LANGUAGE
    DTL (Linguagem de controle de transações) é o subconjunto da SQL
    Correção: Linguage de Transação de Dados (DTL)

  • O comentário acima foi referente ao seu texto na parte que começa a falar sobre DTL. Falou!

  • ótimo blog, muito bom, obrigado pelas dicas.

  • Obrigado, o utilizei como referência em meu TCC. Gostei muito, e aprendi com esse site, não somente bem organizado, instrutiva a forma de disposição das ideias bem subdividida

    • Obrigado Tiago, que bom que consegui transmitir a mensagem pra você. Isso é o mais gratificante pra mim.

  • A data dele é 26/04, 04 é ano ou mês

  • luiz carlos

    Cara muito show, vc sabe tudo.

  • Uemerson Freire da Silva

    Muito boa explicação, simples e objetivo para quem ainda é leigo sobre banco de dados!!

  • Doglas Junior

    Eu ainda nao entende essa chave primaria que e preciso colocar id.
    Na primeira vez que eu criei e coloquei registros em uma tabela foi assim: create table pet(nome varchar(20), dono varchar(20), especie varchar(20));
    E para inserir era assim: insert into pet values(‘fluffy’, ‘João’, ‘gato’) ;
    Mas agora estou vendo que e necessario colocar id e referenciar as colunas tambem na instrucao de insert.
    Por favor tire minhas duvidas grato!

  • foi muito bom o conteudo

  • Jackson Ferreira

    Não sei se você vai me responder por ser um post feito a alguns anos atrás, mas envio minhas dúvidas caso tenha disponibilidade para responder.

    Bom, primeiramente parabéns Gustavo pelo post, tenho visto nos comentários que foi de grande ajuda para muita gente, é bom ver um blog interativo que contribui ao próximo seja qual for o assunto ou informação.

    Gostaria de tirar algumas dúvidas sobre o sql referente a profissões. Como já dito por você anteriormente sql não é uma linguagem de programação e sim de interação com o sgbd, queria saber se há algum cargo que trabalhe especificamente com a linguagem sql com exceção do DBA que acredito que tenha que ser um dos conhecimentos básicos, como um “analista sql” ou “analista de banco de dados” se esse for realmente o trabalho de um analista. Um profissional que trabalhe com revisão da base de dados, ou se isso é aplicado em grande escala por analistas de sistemas que além das linguagens de programação ainda utilizam o sql.

    Se puder me falar os cargos que conhece da área de banco de dados e qual a função deles, em quais sgbd investir, se em certificações ou em uma boa faculdade ficaria agradecido.

    • Que eu saiba não há um cargo que trabalhe especificamente com SQL.
      Eu penso que SQL é uma linguagem que pode ser usada por qualquer um que tenha interesse em extrair informações de um banco de dados.

      Um programador que se prese tem que saber SQL.

  • Ricardo

    Os comandos DML e DDL podem ser utilizados mesmo tempo?

    • Ricardo, não é muito comum, mas é possível sim. Um exemplo é quando se cria uma tabela a partir de uma consulta: SELECT * INTO NOVA_TABELA FROM TABELA_EXISTENTE;

  • Bom dia. . Estou a tentar aprender SQL de forma autodidacta pois vou precisar de saber um pouco mais para poder subir na carreira (que nada tem a haver com programação mas se tiver umas “luzes” sobre o assunto, já ajuda).
    Sim eu sei que SQL nao é linguagem de programação…e sei que a melhor forma de aprender qualquer tipo de linguagem é praticar, praticar, praticar. Portanto…sabe onde se possa encontrar algo como um site para praticar tudo isso? Com questoes praticas? É engraçado aprender e tal, mas depois sem ter local para colocar em pratica tudo o que aprendeu…é mau.
    Já agora…estou a pensar aprender Python também. Algumas dicas?

    Obrigado

  • SQL seria um lugar onde fica armazenadas informações publicas?