You are on page 1of 6

17/08/2023 18:52 SQL – Wikipédia, a enciclopédia livre

SQL
Origem: Wikipédia, a enciclopédia livre.

Structured Query Language (SQL), lit. "linguagem


de consulta estruturada", é uma linguagem de domínio SQL (Structured Query
específico desenvolvida para gerenciar dados relacionais Language)
em um sistema de gerenciamento de banco de dados, ou
para processamento de fluxo de dados em um sistema de
gerenciamento de fluxo de dados.

História
O SQL foi desenvolvido originalmente no início dos anos Imagem de acesso a um banco de dados
70 nos laboratórios da IBM em San Jose, dentro do SQL
projeto System R, que tinha por objetivo demonstrar a Paradigma Declarativa
viabilidade da implementação do modelo relacional
Surgido em 1974
proposto por E. F. Codd. O nome original da linguagem
era SEQUEL, acrônimo para "Structured English Query Última SQL:2016 (2016)
versão
Language" (Linguagem de Consulta Estruturada, em
Inglês),[1] vindo daí o facto de, até hoje, a sigla, em Criado por Donald D. Chamberlin
Raymond F. Boyce
inglês, ser comumente pronunciada "síquel" ao invés de
"és-kiú-él", letra a letra. No entanto, em português, a Estilo de Forte, estática
pronúncia mais corrente é letra a letra: "ésse-quê-éle". tipagem
Dialetos: SQL-86, SQL-89, SQL-
Embora o SQL tenha sido originalmente criado pela 92, SQL:1999, SQL:2003,
IBM, rapidamente surgiram vários "dialetos" SQL:2008, SQL:2016
desenvolvidos por outros produtores. Essa expansão Influenciada Datalog
levou à necessidade de ser criado e adaptado um padrão por
para a linguagem. Esta tarefa foi realizada pela American Influenciou Agena, CQL, LINQ,
National Standards Institute (ANSI) em 1986 e ISO em Windows PowerShell
1987.

O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em
1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa
expressões regulares de emparelhamento, queries recursivas e gatilhos (triggers). Também foi
feita uma adição controversa de tipos não-escalados e algumas características de orientação a
objeto. O SQL:2003 introduz características relacionadas ao XML, sequências padronizadas e
colunas com valores de auto-generalização (inclusive colunas-identidade).

Outra aproximação é permitir para código de idioma procedural ser embutido e interagir com o
banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o
PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens.

Exemplo 1
A pesquisa SELECT * FROM T, no exemplo da Tabela 'T' Consulta Resultado
tabela à direita acima, terá como resultado C1 C2 Select * from T; C1 C2
todos os elementos de todas as linhas da
https://pt.wikipedia.org/wiki/SQL 1/6
17/08/2023 18:52 SQL – Wikipédia, a enciclopédia livre

tabela chamada T. Partindo da mesma tabela 1 a 1 a


T, a pesquisa SELECT C1 FROM T terá como 2 b 2 b
resultado todos os elementos da coluna C1 da
tabela T. O resultado da pesquisa SELECT * C1 C2 Select C1 from T; C1
FROM T WHERE C1=1 será todos os elementos 1 a 1
de todas as linhas onde o valor de coluna C1 é
2 b 2
'1'.
C1 C2 Select * from T where C1=1; C1 C2
Exemplo 2 1 a 1 a
2 b
Exemplo básico de verificação se tabela existe
em SQL:

IF (EXISTS (SELECT *
FROM INFORMACAO.TABELA
WHERE ESQUEMA_TABELA = 'Esquema da Tabela'
AND NOME_TABELA = 'Nome da Tabela'))
BEGIN
--Faça a rotina SQL aqui...
END

Subconjuntos do SQL
A linguagem SQL é dividida em subconjuntos de acordo com as operações que queremos efetuar
sobre um banco de dados, tais como:

DML - Linguagem de Manipulação de Dados

O primeiro grupo é a DML (Data Manipulation Language - Linguagem de manipulação de dados).


DML é um subconjunto da linguagem SQL que é utilizado para realizar inclusões, consultas,
alterações e exclusões de dados presentes em registros. Estas tarefas podem ser executadas em
vários registros de diversas tabelas ao mesmo tempo. Os comandos que realizam respectivamente
as funções acima referidas são INSERT, UPDATE e DELETE.

comandos
função descrição do comando exemplo
SQL

é usada para inserir um registro


INSERT INTO Pessoa (id, nome, sexo)
inclusões INSERT (formalmente uma tupla) a uma
VALUE;
tabela existente.

para mudar os valores de dados em UPDATE Pessoa SET data_nascimento =


alterações UPDATE uma ou mais linhas da tabela '11 de setembro de 1985' WHERE
existente. id_pessoa = 7;
permite remover linhas existentes de DELETE FROM pessoa WHERE id_pessoa
exclusões DELETE
uma tabela. = 7;

É possível inserir dados na tabela Area usando o INSERT INTO:

INSERT INTO Area (arecod, aredes) VALUES (100, "Informática"), (200,


"Turismo"), (300, "Higiene e Beleza");

DDL - Linguagem de Definição de Dados

https://pt.wikipedia.org/wiki/SQL 2/6
17/08/2023 18:52 SQL – Wikipédia, a enciclopédia livre

O segundo grupo é a DDL (Data Definition Language - Linguagem de Definição de Dados). Uma
DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de
dados de SQL comerciais tem extensões proprietárias no DDL.

Os comandos básicos da DDL são poucos:

CREATE: cria um objeto (uma tabela, por exemplo) dentro da base de dados.
DROP: apaga um objeto do banco de dados.

Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar um
objeto, por exemplo, adicionando uma coluna a uma tabela existente.

Outros comandos DDL:

CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
ALTER INDEX
DROP INDEX
DROP VIEW

DCL - Linguagem de Controle de Dados

O terceiro grupo é o DCL (Data Control Language - Linguagem de Controle de Dados). DCL
controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem
acesso para ver ou manipular dados dentro do banco de dados.

Duas palavras-chaves da DCL:

GRANT - autoriza ao usuário executar ou setar operações.


REVOKE - remove ou restringe a capacidade de um usuário de executar operações.

DTL - Linguagem de Transação de Dados


BEGIN WORK - (ou BEGIN TRANSACTION, dependendo do dialeto SQL) - pode ser usado
para marcar o começo de uma transação de banco de dados que pode ser completada ou
não.
COMMIT - finaliza uma transação dentro de um sistema de gerenciamento de banco de dados.
ROLLBACK - faz com que as mudanças nos dados existentes desde o último COMMIT ou
ROLLBACK sejam descartadas.

COMMIT e ROLLBACK interagem com áreas de controle como transação e locação. Ambos terminam
qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN
WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação.

DQL - Linguagem de Consulta de Dados

Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT
permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado.
Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais
https://pt.wikipedia.org/wiki/SQL 3/6
17/08/2023 18:52 SQL – Wikipédia, a enciclopédia livre

simples às mais elaboradas.

Descrição do
Função Comandos SQL Exemplo
comando

O Select é o principal
comando usado em SQL
consultas SELECT para realizar consultas a Select * From Pessoa;
dados pertencentes a uma
tabela.

Palavras-chave em SQL

Cláusulas

As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou
modificar em uma consulta:

FROM – Utilizada para especificar a tabela, que se vai selecionar os registros.


WHERE – Utilizada para especificar as condições que devem reunir os registros que serão
selecionados.
GROUP BY – Utilizada para separar os registros selecionados em grupos específicos.
HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo.
ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica.
DISTINCT – Utilizada para selecionar dados sem repetição.
UNION – combina os resultados de duas consultas SQL em uma única tabela para todas as
linhas correspondentes.

Operadores Lógicos
AND – E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam
corretos.
OR – OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto.
NOT – Negação lógica. Devolve o valor contrário da expressão.

Operadores relacionais

O SQL possui operadores relacionais, que são usados para realizar comparações entre valores, em
estruturas de controle.

https://pt.wikipedia.org/wiki/SQL 4/6
17/08/2023 18:52 SQL – Wikipédia, a enciclopédia livre

Operador Descrição Exemplos

SELECT * FROM Seleciona todos os registros na "tabela" que


< Menor informacao.tabela WHERE idade possuem o campo "idade" com valores menores
< 18; que 18.

SELECT * FROM Seleciona todos os registros na "tabela" que


> Maior informacao.tabela WHERE idade possuem o campo "idade" com valores maiores
> 18; que 18.

SELECT * FROM Seleciona todos os registros na "tabela" que


Menor ou
<= informacao.tabela WHERE idade possuem o campo "idade" com valores menores
igual <= 18; ou iguais à 18.

SELECT * FROM Seleciona todos os registros na "tabela" que


Maior ou
>= informacao.tabela WHERE idade possuem o campo "idade" com valores maiores
igual >= 18; ou iguais à 18.

SELECT * FROM Seleciona todos os registros na "tabela" que


= Igual informacao.tabela WHERE idade possuem o campo "idade" com valores
= 18; exatamente iguais à 18.

SELECT * FROM Seleciona todos os registros na "tabela" que


<> Diferente informacao.tabela WHERE idade possuem o campo "idade" com valores que são
<> 18; diferentes de 18.

BETWEEN – Utilizado para especificar valores dentro de um intervalo fechado.


LIKE – Utilizado na comparação de um modelo e para especificar registros de um banco de
dados. "Like" + extensão % significa buscar todos resultados com o mesmo início da
extensão.
IN - Utilizado para verificar se o valor procurado está dentro de um« »a lista. Ex.: valor IN
(1,2,3,4).

Funções de Agregação

As funções de agregação, como os exemplos abaixo, são usadas dentro de uma cláusula SELECT
em grupos de registros para devolver um único valor que se aplica a um grupo de registros:

AVG – Utilizada para calcular a média dos valores de um campo determinado.


COUNT – Utilizada para devolver o número de registros da seleção.
SUM – Utilizada para devolver a soma de todos os valores de um campo determinado.
MAX – Utilizada para devolver o valor mais alto de um campo especificado.
MIN – Utilizada para devolver o valor mais baixo de um campo especificado.
STDDEV - Utilizada para funções estatísticas de desvio padrão

https://pt.wikipedia.org/wiki/SQL 5/6
17/08/2023 18:52 SQL – Wikipédia, a enciclopédia livre

VARIANCE - Utilizada para funções estatísticas de variância

Sistemas de Banco de Dados que usam SQL


InterBase
Sybase Advantage Database Server (https://
web.archive.org/web/20101008045513/htt Microsoft Access
p://www.sybase.com.br/products/databasem Microsoft SQL Server
anagement/advantagedatabaseserver) MySQL
Apache Derby Oracle
Caché PointBase Micro (banco de dados relacional
DB2 implementado em Java)
Dataflex [2] PostgreSQL
Firebird SQLite
HSQLDB (banco de dados implementado LiteBase Mobile (dedicado à plataformas
em Java) móveis como: Palm OS, Pocket PC, WinCE,
Symbian)
IDMS (banco de dados hierárquico)
Sybase Adaptive Server Enterprise
IMS (banco de dados hierárquico)
Teradata (primeiro RDBMS com arquitetura
Informix
paralela do mercado)
Ingres

Referências
1. Chamberlin, D. D., Astrahan, M. M., Blasgen, M. W., Gray, J. N., King, W. F., Lindsay, B. G.,
Lorie, R., Mehl, J. W., Price, T. G., Putzolu, F., Selinger, P. G., Schkolnick, M., Slutz, D. R.,
Traiger, I. L., Wade, B. W., and Yost, R. A. 1981. A history and evaluation of System R.
Commun. ACM 24, 10 (Oct. 1981), 632-646. http://doi.acm.org/10.1145/358769.358784
2. DataFlex SQL Connectivity Kits.
https://www.dataaccess.com.br/produtos/dataflex/características/sql-connectivity-details-1107

Bibliografia
Navathe, S. B. and Elmasri, R. - Sistemas de Banco de Dados – Fundamentos e Aplicações,
Editora LTC, ano 2002.
Ramalho, José Antonio Alves, Transact-SQL Guia de Referência, Série Ramalho, Editora
Berkeley, ano 2001.

Ligações externas
«Especificação ISO/IEC 9075-1:2016» (https://www.iso.org/standard/63555.html) (em inglês)

Obtida de "https://pt.wikipedia.org/w/index.php?title=SQL&oldid=66094166"

https://pt.wikipedia.org/wiki/SQL 6/6

You might also like