SQL (Structured Query Language) é um padrão de linguagem de programação usado
Neste artigo, discutiremos os conceitos básicos de SQL, incluindo sua estrutura e sintaxe. Além disso, mostraremos os principais comandos e operadores usados
Conteúdo
O que é SQL? Começando pelo básico
Falando de forma bastante simples, SQL é uma linguagem para que o operador “converse” com um banco de dados. Através da linguagem SQL, um operador (ou um sistema), podem fazer perguntas ao banco de dados.
Por exemplo: “selecionar os 10 funcionários mais novos da empresa”. Ou até mesmo, “inserir um novo funcionário no banco de dados”.
Através de SQL, o SGBD (servidor de banco de dados) compreende o que está sendo pedido, faz a varredura, e retorna para o operador o resultado.
Não devemos confundir SQL com MySQL. Apesar de serem termos muito relacionados, o SQL é a linguagem, e o MySQL é um sistema de servidor de banco de dados.
O termo SQL, além de significar “structured query language”, também teve origem na abreviação “seek well“. Traduzindo para o português, significa “procurar corretamente”. – comenta Gustavo Carvalho
Estrutura de uma consulta SQL
A estrutura de uma consulta SQL contém várias partes que trabalham juntas para retornar os dados desejados. As principais partes de uma consulta SQL incluem:
- Comando SELECT: utilizamos o comando SELECT para especificar as colunas que você deseja retornar nos resultados da consulta. Assim, a primeira parte de uma consulta SQL e seguida pela cláusula FROM.
- Comando FROM: utilizamos o comando FROM para especificar a fonte dos dados que você deseja retornar na consulta. Nesse sentido, isso pode ser uma tabela, uma view ou uma subconsulta.
- Comando WHERE: utilizamos o comando WHERE para filtrar os resultados da consulta. Dessa forma, utilizamos para excluir registros que não atendem a um determinado critério.
- Comando JOIN: utilizamos o comando JOIN para combinar dados de duas tabelas ou mais em uma única tabela. Portanto, isso é útil quando você deseja obter informações de várias tabelas em uma única consulta.
Aqui está um exemplo de uma consulta SQL simples que usa todas essas cláusulas:
SELECT nome, idade, cidade
FROM pessoas
WHERE idade > 18
Tipos de dados
No SQL, existem vários tipos de dados usados
- VARCHAR: Usamos o tipo de dados VARCHAR para armazenar strings ou cadeias de caracteres. Ele pode armazenar qualquer tipo de texto, incluindo letras maiúsculas e minúsculas, sinais de ponto e vírgula, e outros caracteres. O tamanho do VARCHAR pode variar conforme o banco de dados, mas geralmente pode armazenar até 8000 bytes.
- INT: Usamos o tipo de dados INT para armazenar números inteiros. Em que geralmente usado para armazenar códigos ou números que não precisam ter precisão decimal.
- DATE: Usamos o tipo de dados DATE para armazenar datas e horas. Dessa forma, utilizamos geralmente para armazenar datas de nascimento, datas de nascimento de um produto, ou qualquer outra data, ou hora específica.
- BOOLEAN: Usamos o tipo de dados BOOLEAN para armazenar valores verdadeiros ou falsos. Assim, aplicamos geralmente para indicar se uma condição é verdadeira ou falsa, como se um usuário é ativo ou não.
Além desses tipos de dados, existem muitos outros tipos de dados suportados pelo SQL, como FLOAT, REAL, DECIMAL, e BINARY. Portanto, cada tipo de dados tem suas próprias propriedades e usos específicos, e é importante escolher o tipo de dados adequado para cada coluna quando você cria uma tabela.
Operadores mais comuns do SQL
Os operadores do SQL são usados
- Operador =: usamos o operador de igualdade (=) para comparar valores e determinar se eles são iguais. Por exemplo, se você deseja retornar todos os registros em que o campo “idade” seja igual a 30, você pode usar a seguinte consulta:
SELECT * FROM pessoas WHERE idade = 30;
- Operador <: usamos o operador menor que (<) para comparar valores e determinar se um valor é menor que outro. Por exemplo, se você deseja retornar todos os registros em que a idade seja menor que 30:
SELECT * FROM pessoas WHERE idade < 30;
- Operador >: usamos o operador maior que (>) para comparar valores e determinar se um valor é maior que outro. Por exemplo, se você deseja retornar todos os registros em que a idade seja maior que 30:
SELECT * FROM pessoas WHERE idade > 30;
- Operador <>: O operador diferente de (<>), também conhecido como operador de desigualdade, que serve para comparar valores e determinar se um valor é diferente de outro. Por exemplo, se você deseja retornar todos os registros em que a idade seja diferente de 30:
SELECT * FROM pessoas WHERE idade <> 30;
- Operador BETWEEN: O operador BETWEEN é usado para especificar um intervalo de valores e retornar todos os registros que satisfazem esse critério. Por exemplo, se você deseja retornar todos os registros em que a idade esteja entre 20 e 30:
SELECT * FROM pessoas WHERE idade BETWEEN 20 AND 30;
- Operador IN: usamos o operador IN para especificar uma lista de valores e retornar todos os registros que satisfazem esse critério. Por exemplo, se você deseja retornar todos os registros em que a cidade seja “São Paulo” ou “Rio de Janeiro”:
SELECT * FROM pessoas WHERE cidade IN ('São Paulo', 'Rio de Janeiro');
Trabalhar com tabelas
Para entender o que é SQL, é importante diferenciar tabelas e bancos de dados. As tabelas são a base de todos os dados armazenados em um banco de dados SQL. Dessa maneira, são compostos por colunas e linhas, e cada coluna representa uma categoria de dados, como nome, idade, endereço, etc. Assim, as tabelas são criadas e gerenciadas usando a sintaxe SQL.
Para criar uma tabela em SQL, você pode usar a seguinte sintaxe:
CREATE TABLE nome_da_tabela (
coluna1 tipo_de_dados,
coluna2 tipo_de_dados,
coluna3 tipo_de_dados,
...
);
Por exemplo, para criar uma tabela “pessoas” com as colunas “nome”, “idade” e “endereço”, você pode usar a seguinte consulta:
CREATE TABLE pessoas (
nome VARCHAR(255),
idade INT,
endereco VARCHAR(255)
);
Além de criar uma tabela, você também pode gerenciar tabelas usando SQL. Isso inclui a definição de valores pré-definidos e restrições de integridade.
Para definição de valores pré-definidos, você pode usar a seguinte sintaxe:
ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_restrição
CHECK (coluna_1 BETWEEN valor_1 AND valor_2);
Por exemplo, para adicionar uma restrição de valores pré-definidos para a coluna “idade” da tabela “pessoas”, você pode usar a seguinte consulta:
ALTER TABLE pessoas ADD CONSTRAINT idade_restrição
CHECK (idade BETWEEN 18 AND 100);
Para restrições de integridade, você pode usar a seguinte sintaxe:
ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_restrição
FOREIGN KEY (coluna) REFERENCES nome_da_tabela_referencia (coluna_referencia);
Por exemplo, para adicionar uma restrição de chave estrangeira para a coluna “cidade” da tabela “pessoas”, que se refere à coluna “nome” da tabela “estados”, você pode usar a seguinte consulta:
ALTER TABLE pessoas ADD CONSTRAINT cidade_chave_estrangeira
FOREIGN KEY (cidade) REFERENCES estados(nome);
Em resumo, as tabelas são a base de todos os dados armazenados em um banco de dados SQL. Eles são compostos por colunas e linhas, e cada coluna representa uma categoria de dados. Assim, as tabelas podem ser criadas e gerenciadas usando a sintaxe SQL, incluindo a definição de valores pré-definidos e restrições de integridade.
Consultas avançadas
Uma das características mais poderosas do SQL é a capacidade de realizar consultas avançadas. Assim, essas consultas envolvem a combinação de dados de várias tabelas, a aplicação de filtros e classificações e a criação de agregações.
Uma das técnicas mais comuns de consulta avançada é o uso de joins. Os joins permitem combinar dados de duas ou mais tabelas com base em uma coluna comum. Assim, existem vários tipos de joins, como o INNER JOIN, OUTER JOIN e CROSS JOIN, cada um com sua própria finalidade e uso.
- Subconsultas
Subconsultas são consultas incorporadas em uma consulta principal, permitindo que executar uma consulta dentro de outra consulta, o que pode tornar as consultas mais complexas e poderosas.
- Consultas com agregações
Permitem que você calcule e agregue dados em uma tabela. Nesse sentido, inclui a criação de contagens, médias, desvios padrão, percentagens e outras informações úteis e são amplamente utilizadas para criar relatórios e visualizações de dados.
Segurança em SQL
A segurança é um aspecto fundamental para proteger dados em um banco de dados SQL, inclui a autenticação e autorização de usuários, que garantem que apenas usuários autorizados tenham acesso aos dados.
- Autenticação
A autenticação é o processo de verificar a identidade de um usuário. O SQL oferece vários métodos de autenticação, como o uso de senhas hash, tokens de segurança e certificados. Cada método tem suas próprias vantagens e desvantagens.
- Autorização
A autorização, por outro lado, é o processo de controlar o acesso dos usuários aos dados. Permitindo que os administradores de banco de dados criem usuários e definam permissões de acesso para cada usuário, como para ler, gravar, atualizar ou excluir dados em uma tabela, ou em todo o banco de dados.
Além disso, é importante garantir que os dados em um banco de dados SQL estejam protegidos contra ataques externos. Assim, fazemos o uso de firewalls, criptografia de dados e backup regulares para garantir essa proteção.
Aqui está um exemplo de como configurar a autenticação e autorização de usuários em um banco de dados SQL usando o SQL Server:
-- Criar usuário
CREATE USER [nome_do_usuario] WITH PASSWORD = 'senha';
-- Atribuir permissões ao usuário
GRANT ADMINISTER BULK OPERATIONS, CREATE SESSION, TABACCO
TO [nome_do_usuario];
-- Limitar o acesso ao banco de dados
ALTER ROLE db_datareader ADD MEMBER [nome_do_usuario];
ALTER ROLE db_datawriter ADD MEMBER [nome_do_usuario];
Neste exemplo, criamos um usuário com o nome “nome_do_usuario” e uma senha fornecida. Em seguida, permissões são atribuídas ao usuário, permitindo que ele execute operações em lotes, crie uma sessão e tome notas.
É importante notar que as instruções e a sintaxe podem variar conforme o SGBD que você está usando. Esse exemplo é para o SQL Server, mas outras ferramentas de gerenciamento de banco de dados podem ter suas próprias instruções. Nesse sentido, você pode aprender muito mais com os cursos gratuitos de SQL !