O que é SQL?
A Linguagem de consulta estruturada (SQL) é uma linguagem de programação para armazenar e processar informações em um banco de dados relacional. Um banco de dados relacional armazena informações em formato tabular, com linhas e colunas representando diferentes atributos de dados e as várias relações entre os valores dos dados. Você pode usar instruções SQL para armazenar, atualizar, remover, pesquisar e recuperar informações do banco de dados. Também pode usar SQL para manter e otimizar a performance do banco de dados.
Por que a SQL é importante?
A Linguagem de consulta estruturada (SQL) é uma linguagem de consulta popular que é frequentemente usada em todos os tipos de aplicações. Analistas e desenvolvedores de dados aprendem e utilizam a SQL porque ela se integra bem a diferentes linguagens de programação. Por exemplo, eles podem incorporar consultas SQL com a linguagem de programação Java para criar aplicações de processamento de dados de alta performance com os principais sistemas de banco de dados SQL, como Oracle ou MS SQL Server. A SQL também é bastante fácil de aprender, pois usa palavras-chave comuns em inglês em suas instruções.
História da SQL
A SQL foi inventada na década de 1970 com base no modelo de dados relacionais. Ela era inicialmente conhecida como linguagem de consulta estruturada em inglês (SEQUEL). Mais tarde, o termo foi abreviado para SQL. A Oracle, antes conhecida como Relational Software, tornou-se o primeiro fornecedor a oferecer um sistema de gerenciamento de banco de dados relacional SQL em nível comercial.
Quais são os componentes de um sistema SQL?
Os sistemas de gerenciamento de banco de dados relacional usam a Linguagem de consulta estruturada (SQL) para armazenar e gerenciar dados. O sistema armazena várias tabelas de banco de dados que se relacionam entre si. O MS SQL Server, o MySQL ou o MS Access são exemplos de sistemas de gerenciamento de banco de dados relacional. Veja a seguir os componentes desse sistema.
Tabela SQL
Uma tabela SQL é o elemento básico de um banco de dados relacional e consiste em linhas e colunas. Engenheiros de banco de dados criam relacionamentos entre várias tabelas de banco de dados para otimizar o espaço de armazenamento de dados.
Por exemplo, o engenheiro de banco de dados cria uma tabela SQL para produtos em uma loja:
ID do produto |
Nome do produto |
ID da cor |
0001 |
Colchão |
Cor 1 |
0002 |
Travesseiro |
Cor 2 |
Em seguida, o engenheiro de banco de dados vincula a tabela de produtos à tabela de cores com o ID da cor:
ID da cor |
Nome da cor |
Cor 1 |
Azul |
Cor 2 |
Vermelha |
Instruções SQL
Instruções SQL, ou consultas SQL, são instruções válidas que os sistemas de gerenciamento de banco de dados relacional compreendem. Os desenvolvedores de software criam instruções SQL usando diferentes elementos da linguagem SQL. Elementos da linguagem SQL são componentes como identificadores, variáveis e condições de pesquisa que formam uma instrução SQL correta.
Por exemplo, a instrução SQL a seguir usa um comando SQL INSERT para armazenar a Marca de colchão A, que custa de USD 499, em uma tabela denominada Mattress_table, com os nomes de colunas brand_name e cost:
INSERT INTO Mattress_table (brand_name, cost)
VALUES(‘A’,’499’);
Procedimentos armazenados
Procedimentos armazenados são uma coleção de uma ou mais instruções SQL armazenadas no banco de dados relacional. Os desenvolvedores de software usam procedimentos armazenados para melhorar a eficiência e a performance. Por exemplo, eles podem criar um procedimento armazenado para atualizar tabelas de vendas em vez de escrever a mesma instrução SQL em aplicações diferentes.
Como a SQL funciona?
A implementação da Linguagem de consulta estruturada (SQL) envolve uma máquina servidor que processa as consultas do banco de dados e retorna os resultados. O processo SQL passa por vários componentes de software, incluindo os seguintes.
Analisador
O analisador começa tokenizando, ou substituindo, algumas das palavras na instrução SQL por símbolos especiais. Em seguida, ele verifica a instrução em busca do seguinte:
Exatidão
O analisador verifica se a instrução SQL está em conformidade com a semântica SQL, ou as regras SQL, que garantem a exatidão da instrução das consultas. Por exemplo, o analisador verifica se o comando SQL termina com um caractere de ponto-e-vírgula. Se esse caractere estiver faltando, o analisador retornará um erro.
Autorização
O analisador também valida se o usuário que executa a consulta tem a autorização necessária para manipular os respectivos dados. Por exemplo, somente usuários administradores podem ter o direito de excluir dados.
Mecanismo relacional
O mecanismo relacional, ou o processador de consultas, cria um plano para recuperar, gravar ou atualizar os dados correspondentes da maneira mais eficaz. Por exemplo, ele verifica se há consultas semelhantes, reutiliza métodos anteriores de manipulação de dados ou cria um novo. Ele grava o plano em uma representação de nível intermediário da instrução SQL, chamada código de bytes. Os bancos de dados relacionais usam código de bytes para realizar pesquisas e modificações eficientes no banco de dados.
Mecanismo de armazenamento
O mecanismo de armazenamento, ou mecanismo de banco de dados, é o componente de software que processa o código de bytes e executa a instrução SQL pretendida. Ele lê e armazena os dados dos arquivos do banco de dados no armazenamento em disco físico. Após a conclusão, o mecanismo de armazenamento retorna o resultado à aplicação solicitante.
O que são comandos SQL?
Comandos SQL são palavras-chave específicas ou instruções SQL que os desenvolvedores utilizam para manipular os dados armazenados em um banco de dados relacional. É possível categorizar os comandos SQL da seguinte forma.
Linguagem de definição de dados
A linguagem de definição de dados (DDL) refere-se a comandos SQL que projetam a estrutura do banco de dados. Os engenheiros de banco de dados usam a DDL para criar e modificar objetos de banco de dados com base nos requisitos de negócios. Por exemplo, o engenheiro de banco de dados usa o comando CREATE para criar objetos de banco de dados, como tabelas, exibições e índices.
Linguagem de consulta de dados
A Linguagem de consulta de dados (DQL) consiste em instruções para recuperar dados armazenados em bancos de dados relacionais. As aplicações de software usam o comando SELECT para filtrar e retornar resultados específicos de uma tabela SQL.
Linguagem de manipulação de dados
As instruções da Linguagem de manipulação de dados (DML) gravam novas informações ou modificam registros existentes em um banco de dados relacional. Por exemplo, uma aplicação usa o comando INSERT para armazenar um novo registro no banco de dados.
Linguagem de controle de dados
Os administradores de banco de dados usam a Linguagem de controle de dados (DCL) para gerenciar ou autorizar o acesso ao banco de dados para outros usuários. Por exemplo, eles podem usar o comando GRANT para permitir que determinadas aplicações manipulem uma ou mais tabelas.
Linguagem de controle de transações
O mecanismo relacional usa a linguagem de controle de transação (TCL) para fazer alterações no banco de dados automaticamente. Por exemplo, o banco de dados usa o comando ROLLBACK para desfazer uma transação incorreta.
O que são padrões SQL?
Padrões SQL são um conjunto de diretrizes formalmente definidas da Linguagem de consulta estruturada (SQL). O American National Standards Institute (ANSI - Instituto nacional de padrões dos EUA) e a International Organization for Standardization (ISO - Organização internacional para padronização) adotaram os padrões SQL em 1986. Os fornecedores de software usam os padrões SQL ANSI para criar software de banco de dados SQL para desenvolvedores.
O que é injeção de SQL?
A injeção de SQL é um ataque cibernético que envolve enganar o banco de dados com consultas SQL. Os hackers usam a injeção de SQL para recuperar, modificar ou corromper dados em um banco de dados SQL. Por exemplo, eles podem preencher uma consulta SQL no lugar do nome de uma pessoa em um formulário de envio para realizar um ataque de injeção de SQL.
O que é MySQL?
O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto oferecido pela Oracle. Os desenvolvedores podem baixar e usar o MySQL sem precisarem pagar uma taxa de licenciamento. Eles podem instalar o MySQL em diferentes sistemas operacionais ou servidores de nuvem. O MySQL é um sistema de banco de dados popular para aplicações Web.
Comparação entre SQL e MySQL
A Linguagem de consulta estruturada (SQL) é uma linguagem padrão para criação e manipulação de bancos de dados. O MySQL é um programa de banco de dados relacional que usa consultas SQL. Enquanto os comandos SQL são definidos por padrões internacionais, o software MySQL passa por atualizações e melhorias contínuas.
O que é NoSQL?
A NoSQL refere-se a bancos de dados não relacionais que não usam tabelas para armazenar dados. Os desenvolvedores armazenam informações em diferentes tipos de bancos de dados NoSQL, incluindo grafos, documentos e chaves/valores. Os bancos de dados NoSQL são populares para aplicações modernas, pois são horizontalmente escaláveis. Escalabilidade horizontal significa aumentar o poder de processamento, adicionando mais computadores que executam o software NoSQL.
Comparação entre SQL e NoSQL
A Linguagem de consulta estruturada (SQL) fornece uma linguagem de manipulação de dados uniforme, mas a implementação da NoSQL depende de tecnologias diferentes. Os desenvolvedores usam a SQL para aplicações transacionais e analíticas, enquanto a NoSQL é adequada para aplicações responsivas e de uso intenso.
O que é um servidor SQL?
O SQL Server é o nome oficial do sistema de gerenciamento de banco de dados relacional da Microsoft que manipula dados com SQL. O MS SQL Server tem várias edições, cada uma foi projetada para workloads e requisitos específicos.
Como a AWS oferece suporte ao SQL?
O Microsoft SQL Server on AWS permite que os desenvolvedores executem workloads do Microsoft SQL na AWS. O sistema de banco de dados SQL tem melhor performance com recursos de computação escaláveis da AWS. Ao executar o MS SQL na AWS, as empresas alcançam maior disponibilidade de serviços, pois a AWS tem a infraestrutura global mais ampla em 24 regiões. O SQL Server on AWS se integra a mais de 230 serviços de segurança, conformidade e governança para proteger seus dados contra ameaças externas. Algumas outras maneiras com as quais a AWS oferece suporte ao SQL incluem:
- Os clientes usam o Amazon Database Migration Service para facilitar a migração de bancos de dados SQL para a AWS.
- O Amazon Elastic Block Store (EBS) fornece armazenamento em bloco de alta performance para aplicações SQL de missão crítica.
Comece a usar o SQL Server on AWS inscrevendo-se em uma conta da AWS hoje mesmo.
Próximas etapas do SQL na AWS
Obtenha acesso instantâneo ao nível gratuito da AWS.