Skip to content

Os fundamentos do SQL

7 de abril de 2021

Neste artigo

A Structured Query Language é um dos blocos de construção fundamentais da arquitetura de banco de dados moderna. SQL define os métodos usados ​​para criar e manipular bancos de dados relacionais em todas as principais plataformas. À primeira vista, a linguagem pode parecer intimidante e complexa, mas não é tão difícil.

Sobre SQL

A pronúncia correta do SQL é um assunto polêmico na comunidade de banco de dados. Em seu padrão SQL, o American National Standards Institute declarou que a pronúncia oficial é “es queue el”. No entanto, muitos profissionais de banco de dados adotaram a gíria “sequela” da pronúncia. Tal como acontece com a pronúncia de GIF, não há uma resposta certa. O SQL vem em vários sabores. Os bancos de dados Oracle usam seu PL / SQL proprietário. O Microsoft SQL Server usa Transact-SQL. Todas as variações são baseadas no ANSI SQL padrão da indústria. Esta introdução usa comandos SQL compatíveis com ANSI que funcionam em qualquer sistema de banco de dados relacional moderno.

DDL e DML

Os comandos SQL podem ser divididos em duas sub-linguagens principais. A linguagem de definição de dados contém os comandos usados ​​para criar e destruir bancos de dados e objetos de banco de dados. Depois que a estrutura do banco de dados é definida com DDL, os administradores e usuários do banco de dados podem usar a linguagem de manipulação de dados para inserir, recuperar e modificar os dados contidos nele. SQL suporta um terceiro tipo de sintaxe chamada Linguagem de controle de dados. DCL controla o acesso de segurança a objetos no banco de dados. Por exemplo, um script DCL concede ou revoga contas de usuário específicas o direito de ler ou gravar em tabelas dentro de uma ou mais áreas definidas do banco de dados. Na maioria dos ambientes multiusuário gerenciados, os administradores de banco de dados geralmente executam scripts DCL.

Comandos da linguagem de definição de dados

A linguagem de definição de dados é usada para criar e destruir bancos de dados e objetos de banco de dados. Esses comandos são usados ​​principalmente por administradores de banco de dados durante as fases de configuração e remoção de um projeto de banco de dados. DDL gira em torno de quatro comandos principais –crio, usar, alterar, e derrubar.

Crio

O crio comando estabelece bancos de dados, tabelas ou consultas em sua plataforma. Por exemplo, o comando: CREATE DATABASE workers;

cria um banco de dados vazio chamado funcionários em seu DBMS. Depois de criar o banco de dados, a próxima etapa é criar tabelas que contenham dados. Outra variante do crio comando cumpre este propósito. O comando: CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) not null, employee_id int not null);

estabelece uma mesa intitulada informação pessoal no banco de dados atual. No exemplo, a tabela contém três atributos: primeiro nome, último nome, e ID do Empregado junto com algumas informações adicionais.

Usar

O usar comando especifica o banco de dados ativo. Por exemplo, se você está trabalhando atualmente no banco de dados de vendas e deseja emitir alguns comandos que afetarão o banco de dados de funcionários, inicie-os com o seguinte comando SQL: USE funcionários;

Verifique novamente o banco de dados em que você está trabalhando antes de emitir comandos SQL que manipulam dados.

Alterar

Depois de criar uma tabela dentro de um banco de dados, modifique sua definição por meio do alterar comando, que muda para a estrutura de uma tabela sem excluí-la e recriá-la. Dê uma olhada no seguinte comando: ALTER TABLE personal_info ADD salary money null;

Este exemplo adiciona um novo atributo à tabela personal_info – o salário de um funcionário. O dinheiro O argumento especifica que o salário de um funcionário é armazenado usando o formato de dólares e centavos. finalmente, o nulo A palavra-chave informa ao banco de dados que está tudo bem para este campo não conter nenhum valor para qualquer funcionário.

Derrubar

O comando final da linguagem de definição de dados, derrubar, remove objetos de banco de dados inteiros de nosso DBMS. Por exemplo, para remover permanentemente a tabela personal_info que criamos, use o seguinte comando: DROP TABLE personal_info;

Da mesma forma, o comando abaixo seria usado para remover todo o banco de dados de funcionários: DROP DATABASE workers;

Use este comando com cuidado. O derrubar comando remove estruturas de dados inteiras de seu banco de dados. Se você quiser remover registros individuais, use o excluir comando da linguagem de manipulação de dados.

Comandos da linguagem de manipulação de dados

A linguagem de manipulação de dados é usada para recuperar, inserir e modificar informações do banco de dados. Esses comandos DML oferecem a estrutura típica para interagir com o banco de dados em uma base rotineira.

Inserir

O inserir comando adiciona registros a uma tabela existente. Voltando ao exemplo personal_info da seção anterior, imagine que nosso departamento de RH precise adicionar um novo funcionário ao seu banco de dados. Use um comando semelhante a este: INSERT INTO personal_info
valores (‘bart’, ‘simpson’, 12345, $ 45.000);

Observe que existem quatro valores especificados para o registro. Eles correspondem aos atributos da tabela na ordem em que foram definidos: primeiro nome, último nome, ID do Empregado e salário.

Selecione

O selecionar command é o comando mais comumente usado em SQL. Ele recupera informações específicas de um banco de dados operacional. Dê uma olhada em alguns exemplos, novamente usando a tabela personal_info do banco de dados de funcionários. O comando mostrado abaixo recupera todas as informações contidas na tabela personal_info. O asterisco é um caractere curinga no SQL. SELECIONE *
FROM personal_info;

Como alternativa, limite os atributos que são recuperados do banco de dados, especificando o que é selecionado. Por exemplo, o departamento de Recursos Humanos pode exigir uma lista dos sobrenomes de todos os funcionários da empresa. O seguinte comando SQL recuperaria apenas essas informações: SELECT last_name
FROM personal_info;

O Onde cláusula limita os registros que são recuperados para aqueles que atendem aos critérios especificados. O CEO pode estar interessado em revisar os registros pessoais de todos os funcionários altamente pagos. O comando a seguir recupera todos os dados contidos em personal_info para registros com valor de salário maior que $ 50.000: SELECT *
FROM personal_info
ONDE salário> $ 50000;

Atualizar

O atualizar O comando modifica as informações contidas em uma tabela, em massa ou individualmente. Suponha que a empresa dê a todos os funcionários um aumento anual de custo de vida de 3% em seus salários. O seguinte comando SQL aplica este aumento a todos os funcionários armazenados no banco de dados: UPDATE personal_info
SET salário = salário * 1,03;

Quando o novo funcionário Bart Simpson demonstra um desempenho acima e além do seu dever, a gerência deseja reconhecer suas realizações estelares com um aumento de $ 5.000. A cláusula WHERE destaca Bart para este aumento: UPDATE personal_info
Salário SET = salário + 5000
WHERE id_de_funcionário = 12345;

Excluir

Finalmente, vamos dar uma olhada no excluir comando. Você descobrirá que a sintaxe desse comando é semelhante à dos outros comandos DML. O comando DELETE, com um Onde cláusula, remova um registro de uma tabela: DELETE FROM personal_info
WHERE id_de_funcionário = 12345;

DML também oferece suporte a campos agregados. Em um selecionar declaração, operadores matemáticos como soma e contar resumir os dados em uma consulta. Por exemplo, a consulta:selecione a contagemfrom personal_info;

conta o número de registros na tabela.

Associações de banco de dados UMA Junte-se declaração combina dados em várias tabelas para processar com eficiência grandes quantidades de dados. Essas declarações são onde reside o verdadeiro poder de um banco de dados. Para explorar o uso de um básico Junte-se operação para combinar dados de duas tabelas, continue com o exemplo usando a tabela personal_info e adicione uma tabela adicional à mistura. Suponha que você tenha uma mesa chamada ação disciplinar

que foi criado com a seguinte instrução: CREATE TABLE disciplinary_action (action_id int not null, employee_id int not null, comments char (500));
Esta tabela contém os resultados das ações disciplinares para os funcionários da empresa. Ele não contém nenhuma informação sobre o funcionário além do número do funcionário. Suponha que você tenha a tarefa de criar um relatório que lista as ações disciplinares tomadas contra todos os funcionários com um salário superior a $ 40.000. O uso de uma operação JOIN, neste caso, é direto. Recupere essas informações usando o seguinte comando: SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments
FROM personal_info INNER JOIN disciplinary_action ON personal_info.employee_id = disciplinary_action.employee_id

ONDE informações_pessoais.salário> 40000;

Tipos de junção em SQL As junções vêm em vários sabores. Na instrução SQL, a primeira tabela (geralmente chamada Tabela A ou oMesa Esquerda ) junta-se à segunda tabela (normalmente chamada Tabela B ou oMesa Direita

  • ) com reconhecimento de posição. Portanto, se você alterar a ordem das tabelas na instrução de junção, os resultados da operação serão diferentes. Os principais tipos de junção incluem:Junção interna : Corresponde apenas a registros onde o em
  • condição corresponde aos mesmos registros em ambas as tabelas.Junção Externa : Corresponde apenas a registros de ambas as tabelas que excluir os resultados identificados no em
  • doença.Junção certa : Corresponde a todos os registros da Tabela B mais os registros da Tabela A que correspondem ao em
  • doença.Associação à esquerda : Corresponde a todos os registros da Tabela A mais os registros da Tabela B que correspondem ao em
  • doença.Cross Join : Corresponde a todos os registros como se as tabelas fossem idênticas. Este processo gera algo chamadoproduto cartesiano

. Muitas vezes, as junções cruzadas são indesejadas, porque correspondem a cada linha da Tabela A, individualmente, com cada linha da Tabela B. Assim, se a Tabela A ofereceu cinco registros e a Tabela B ofereceu 9 registros, uma consulta de junção cruzada oferece 45 resultados linhas.