Explore SQL
SQL significa Structured Query Language (Linguagem de Consulta Estruturada) e é usado para se comunicar com um banco de dados relacional. É a linguagem padrão para sistemas de gerenciamento de banco de dados relacional. As instruções SQL são utilizadas para realizar tarefas como atualizar os dados numa base de dados ou obter dados de uma base de dados. Alguns sistemas de gestão de bases de dados relacionais comuns que utilizam SQL incluem o Microsoft SQL Server, MySQL, PostgreSQL, MariaDB e Oracle.
Observação
O SQL foi originalmente padronizado pelo American National Standards Institute (ANSI) em 1986 e pela International Organization for Standardization (ISO) em 1987. Desde então, o padrão foi estendido várias vezes à medida que os fornecedores de bancos de dados relacionais adicionaram novos recursos aos seus sistemas. Além disso, a maioria dos fornecedores de banco de dados incluem suas próprias extensões proprietárias que não fazem parte do padrão, o que resultou em uma variedade de dialetos do SQL.
Você pode usar instruções SQL como SELECT, INSERT, UPDATE, DELETE,CREATE e DROP para realizar quase tudo o que precisa fazer com um banco de dados. Embora essas instruções SQL façam parte do padrão SQL, muitos sistemas de gerenciamento de banco de dados também têm suas próprias extensões proprietárias adicionais para lidar com as especificidades desse sistema de gerenciamento de banco de dados. Estas extensões fornecem funcionalidades não abrangidas pela norma SQL e incluem áreas como a gestão de segurança e programação. Por exemplo, o Microsoft SQL Server e os serviços de banco de dados do Azure baseados no mecanismo de banco de dados do SQL Server usam o Transact-SQL. Essa implementação inclui extensões proprietárias para escrever procedimentos armazenados e gatilhos (código de aplicativo que pode ser armazenado no banco de dados) e gerenciar contas de usuário. PostgreSQL e MySQL também têm suas próprias versões desses recursos.
Alguns dialetos populares do SQL incluem:
Transact-SQL (T-SQL). Esta versão do SQL é usada pelo Microsoft SQL Server e pelos serviços SQL do Azure.
pgSQL. Este é o dialeto, com extensões implementadas em PostgreSQL.
PL/SQL. Este é o dialeto usado pela Oracle. PL/SQL significa Linguagem Processual/SQL.
Os usuários que planejam trabalhar especificamente com um único sistema de banco de dados devem aprender as complexidades de seu dialeto e plataforma SQL preferidos.
Observação
Os exemplos de código SQL neste módulo são baseados no dialeto Transact-SQL, salvo indicação em contrário. A sintaxe para outros dialetos é geralmente semelhante, mas pode variar em alguns detalhes.
Tipos de instrução SQL
As instruções SQL são agrupadas em três grupos lógicos principais:
- Linguagem de definição de dados (DDL)
- Linguagem de controle de dados (DCL)
- Linguagem de manipulação de dados (DML)
Declarações DDL
Você usa instruções DDL para criar, modificar e remover tabelas e outros objetos em um banco de dados (tabela, procedimentos armazenados, exibições e assim por diante).
As declarações DDL mais comuns são:
| Declaração | Descrição |
|---|---|
CREATE |
Crie um novo objeto na base de dados, como uma tabela ou uma vista. |
ALTER |
Modificar a estrutura de um objeto. Por exemplo, alterar uma tabela para adicionar uma nova coluna. |
DROP |
Remova um objeto do banco de dados. |
RENAME |
Renomeie um objeto existente. |
Advertência
A declaração DROP é muito poderosa. Quando você solta uma tabela, todas as linhas dessa tabela são perdidas. A menos que você tenha um backup, não poderá recuperar esses dados.
O exemplo a seguir cria uma nova tabela de banco de dados. Os itens entre parênteses especificam os detalhes de cada coluna, incluindo o nome, o tipo de dados, se a coluna deve sempre conter um valor (NOT NULL) e se os dados na coluna são usados para identificar exclusivamente uma linha (CHAVE PRIMÁRIA). Cada tabela deve ter uma chave primária, embora o SQL não imponha essa regra.
Observação
As colunas marcadas como NOT NULL são referidas como colunas obrigatórias . Se você omitir a cláusula NOT NULL , poderá criar linhas que não contenham um valor na coluna. Diz-se que uma coluna vazia em uma linha tem um valor NULL .
CREATE TABLE Product
(
ID INT PRIMARY KEY,
Name VARCHAR(20) NOT NULL,
Price DECIMAL NULL
);
Os tipos de dados disponíveis para colunas em uma tabela variam entre os sistemas de gerenciamento de banco de dados. No entanto, a maioria dos sistemas de gerenciamento de banco de dados suporta tipos numéricos como INT (um número inteiro ou inteiro), DECIMAL (um número decimal) e tipos de cadeia de caracteres como VARCHAR (VARCHAR significa dados de caracteres de comprimento variável). Para obter mais informações, consulte a documentação do sistema de gerenciamento de banco de dados selecionado.
Declarações DCL
Os administradores de banco de dados geralmente usam instruções DCL para gerenciar o acesso a objetos em um banco de dados concedendo, negando ou revogando permissões para usuários ou grupos específicos.
As três principais declarações DCL são:
| Declaração | Descrição |
|---|---|
GRANT |
Conceder permissão para executar ações específicas |
DENY |
Negar permissão para executar ações específicas |
REVOKE |
Remover uma permissão concedida anteriormente |
Por exemplo, a instrução GRANT a seguir permite que um usuário chamado user1 leia, insira e modifique dados na tabela Product .
GRANT SELECT, INSERT, UPDATE
ON Product
TO user1;
Declarações DML
Você usa instruções DML para manipular as linhas em tabelas. Essas instruções permitem recuperar (consultar) dados, inserir novas linhas ou modificar linhas existentes. Você também pode excluir linhas se não precisar mais delas.
As quatro principais declarações do DML são:
| Declaração | Descrição |
|---|---|
SELECT |
Ler linhas de uma tabela |
INSERT |
Inserir novas linhas numa tabela |
UPDATE |
Modificar dados em linhas existentes |
DELETE |
Excluir linhas existentes |
A forma básica de uma instrução INSERT inserirá uma linha de cada vez. Por padrão, as instruções SELECT,UPDATE e DELETE são aplicadas a cada linha de uma tabela. Normalmente, você aplica uma cláusula WHERE com essas declarações para especificar critérios; Somente as linhas que corresponderem a esses critérios serão selecionadas, atualizadas ou excluídas.
Advertência
O SQL não fornece prompts como "tem a certeza?", por isso tenha cuidado ao usar DELETE ou UPDATE sem uma cláusula WHERE, pois pode perder ou modificar muitos dados.
O código a seguir é um exemplo de uma instrução SQL que seleciona todas as colunas (indicadas por *) da tabela Customer onde o valor da coluna Cidade é "Seattle":
SELECT *
FROM Customer
WHERE City = 'Seattle';
Para recuperar apenas um subconjunto específico de colunas da tabela, liste-as na cláusula SELECT , da seguinte forma:
SELECT FirstName, LastName, Address, City
FROM Customer
WHERE City = 'Seattle';
Se uma consulta retornar muitas linhas, elas não aparecerão necessariamente em nenhuma sequência específica. Se você quiser classificar os dados, você pode adicionar uma cláusula ORDER BY . Os dados serão ordenados pela coluna especificada:
SELECT FirstName, LastName, Address, City
FROM Customer
WHERE City = 'Seattle'
ORDER BY LastName;
Você também pode executar instruções SELECT que recuperam dados de várias tabelas usando uma cláusula JOIN . As junções indicam como as linhas de uma tabela estão conectadas com as linhas da outra para determinar quais dados retornar. Uma condição de junção típica corresponde a uma chave estrangeira de uma tabela e sua chave primária associada na outra tabela.
A consulta a seguir mostra um exemplo que une as tabelas Cliente e Pedido . A consulta faz uso de aliases de tabela para abreviar os nomes das tabelas ao definir quais colunas obter na cláusula SELECT e quais colunas corresponder na cláusula JOIN.
SELECT o.OrderNo, o.OrderDate, c.Address, c.City
FROM Order AS o
JOIN Customer AS c
ON o.Customer = c.ID
O próximo exemplo mostra como modificar uma linha existente usando SQL. Ele altera o valor da coluna Endereço na tabela Cliente para linhas que têm o valor 1 na coluna ID . Todas as outras linhas permanecem inalteradas:
UPDATE Customer
SET Address = '123 High St.'
WHERE ID = 1;
Advertência
Se você omitir a cláusula WHERE , uma instrução UPDATE modificará todas as linhas da tabela.
Use a instrução DELETE para remover linhas. Você especifica a tabela a ser excluída e uma cláusula WHERE que identifica as linhas a serem excluídas:
DELETE FROM Product
WHERE ID = 162;
Advertência
Se você omitir a cláusula WHERE , uma instrução DELETE removerá todas as linhas da tabela.
A instrução INSERT assume uma forma ligeiramente diferente. Você especifica uma tabela e colunas em uma cláusula INTO e uma lista de valores a serem armazenados nessas colunas. O SQL padrão oferece suporte apenas à inserção de uma linha de cada vez, conforme mostrado no exemplo a seguir. Alguns dialetos permitem especificar várias cláusulas VALUES para adicionar várias linhas ao mesmo tempo:
INSERT INTO Product(ID, Name, Price)
VALUES (99, 'Drill', 4.99);
Observação
Este tópico descreve algumas instruções SQL básicas e sintaxe para ajudá-lo a entender como o SQL é usado para trabalhar com objetos em um banco de dados. Se você quiser saber mais sobre como consultar dados com SQL, revise o caminho de aprendizado Introdução à consulta com Transact-SQL no Microsoft Learn.