Você está na página 1de 7

4/23/2019 SQL – Wikipédia, a enciclopédia livre

SQL
Origem: Wikipédia, a enciclopédia livre.
Structured Query Language, ou Linguagem de Consulta Estruturada ou
SQL, é a linguagem de pesquisa declarativa padrão para banco de dados SQL banco de dados.
relacional (base de dados relacional). Muitas das características originais do
SQL foram inspiradas na álgebra relacional.

O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios


da IBM em San Jose, dentro do projeto System R, que tinha por objetivo
demonstrar a viabilidade da implementação do modelo relacional proposto por
E. F. Codd. O nome original da linguagem era SEQUEL, acrônimo para
"Structured English Query Language" (Linguagem de Consulta Estruturada, Imagem de acesso a um banco de dados SQL

em Inglês)[1], vindo daí o facto de, até hoje, a sigla, em inglês, ser comumente Paradigma Multiparadigma
pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em Surgido em 1974
português, a pronúncia mais corrente é letra a letra: "ésse-quê-éle". Última SQL:2008 (2008)
versão
A linguagem é um grande padrão de banco de dados. Isto decorre da sua
Criado por Donald D. Chamberlin
simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de Raymond F. Boyce
consulta a banco de dados no sentido em que uma consulta SQL especifica a Estilo de Forte
forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem tipagem:
declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de Dialetos: SQL-86, SQL-89, SQL-92,
aprendizado daqueles que se iniciam na linguagem. SQL:1999, SQL:2003,
SQL:2008
Embora o SQL tenha sido originalmente criado pela IBM, rapidamente Influenciada Datalog
por
surgiram vários "dialectos" desenvolvidos por outros produtores. Essa
expansão levou à necessidade de ser criado e adaptado um padrão para a Influenciou Agena, CQL,LINQ, Windows
PowerShell
linguagem. Esta tarefa foi realizada pela American National Standards Institute
(ANSI) em 1986 e ISO em 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).

Tal como dito anteriormente, embora padronizado pela ANSI e ISO, possui muitas variações e extensões produzidos pelos diferentes
fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma
sem mudanças estruturais principais.

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.

https://pt.wikipedia.org/wiki/SQL 1/7
4/23/2019 SQL – Wikipédia, a enciclopédia livre

Índice
Exemplo 1
Exemplo 2
Exemplo 3
Subconjuntos do SQL
DML - Linguagem de Manipulação de Dados
DDL - Linguagem de Definição de Dados
DCL - Linguagem de Controle de Dados
DTL - Linguagem de Transação de Dados
DQL - Linguagem de Consulta de Dados
Palavras-chave em SQL
Cláusulas
Operadores Lógicos
Operadores relacionais
Funções de Agregação
Sistemas de Banco de Dados que usam SQL
Referências
Bibliografia
Ligações externas

Exemplo 1
A pesquisa SELECT * FROM T, no exemplo da tabela à direita Tabela 'T' Consulta Resultado
acima, terá como resultado todos os elementos de todas as linhas Select * from T
C1 C2 C1 C2
da tabela chamada T. Partindo da mesma tabela T, a pesquisa
SELECT C1 FROM T terá como resultado todos os elementos
1 a 1 a
da coluna C1 da tabela T. O resultado da pesquisa SELECT * 2 b 2 b
FROM T WHERE C1=1 será todos os elementos de todas as C1 C2 Select C1 from T C1
linhas onde o valor de coluna C1 é '1'.
1 a 1
2 b 2
Exemplo 2 C1 C2 Select * from T where C1=1 C1 C2

Exemplo básico de verificação se tabela existe em SQL: 1 a 1 a


2 b
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

Exemplo 3
Exemplo básico de criação de tabelas em SQL:

https://pt.wikipedia.org/wiki/SQL 2/7
4/23/2019 SQL – Wikipédia, a enciclopédia livre

-- código #1
USE testDB;

CREATE TABLE Correspondencia_1 (


Id int primary key,
Nome varchar(60),
Idade int,
Logradouro varchar(80),
Cidade varchar(40),
Estado varchar(40)
);

CREATE TABLE Correspondencia_2 (


Id int primary key,
Nome varchar(100),
Idade int,
Logradouro varchar(100),
Cidade varchar(100),
Estado varchar(100)
);

-- código #2
declare @max int, @rc int;
set @max = 10000;
set @rc = 1;
set nocount on;

-- carrega linha inicial


INSERT into Correspondencia_1 (Id, Nome, Idade, Logradouro, Cidade, Estado)
values (1, replicate('A', 60), 80, replicate('B', 80),
replicate('C', 40), replicate('D', 40));

-- repete a linha inicial até completar N linhas


while @rc * 2 <= @max
begin
INSERT into Correspondencia_1
(Id, Nome, Idade, Logradouro, Cidade, Estado)
SELECT Id + @rc, Nome, ((Id % 60)+1), Logradouro, Cidade, Estado
from Correspondencia_1;
set @rc = @rc * 2;
end;

-- último bloco
INSERT into Correspondencia_1
(Id, Nome, Idade, Logradouro, Cidade, Estado)
SELECT Id + @rc, Nome, Idade, Logradouro, Cidade, Estado
from Correspondencia_1
where (Id + @rc) <= @max;

-- carrega tabela Correspondencia_2


INSERT into Correspondencia_2
(Id, Nome, Idade, Logradouro, Cidade, Estado)
SELECT Id, Nome, Idade, Logradouro, Cidade, Estado
from Correspondencia_1;

-- código #3
SELECT Estado, Cidade, Nome
from Correspondencia_1
order by Estado, Cidade;

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

https://pt.wikipedia.org/wiki/SQL 3/7
4/23/2019 SQL – Wikipédia, a enciclopédia livre

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, Select, Update e Delete.

comandos
função descrição do comando exemplo
SQL
é usada para inserir um registro
INSERT INTO Pessoa (id, nome,
inclusões INSERT (formalmente uma tupla) a uma tabela
sexo) VALUE;
existente.
para mudar os valores de dados em uma ou UPDATE Pessoa SET data_nascimento =
alterações UPDATE
mais linhas da tabela existente. '11/09/1985' WHERE id_pessoa = 7
permite remover linhas existentes de uma DELETE FROM pessoa WHERE
exclusões DELETE
tabela. id_pessoa = 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


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.


https://pt.wikipedia.org/wiki/SQL 4/7
4/23/2019 SQL – Wikipédia, a enciclopédia livre

DTL - Linguagem de Transação de Dados


BEGIN WORK (ou START 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 simples às mais elaboradas.

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

O Select é o principal
comando usado em SQL
Select * From
consultas SELECT para realizar consultas a
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
https://pt.wikipedia.org/wiki/SQL 5/7
4/23/2019 SQL – Wikipédia, a enciclopédia livre

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

Operador Descrição
< Menor
> Maior
<= Menor ou igual
>= Maior ou igual
= Igual
<> Diferente

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.

Sistemas de Banco de Dados que usam SQL


Microsoft Access
Sybase Advantage Database Server (http://www.sybas
e.com.br/products/databasemanagement/advantageda Microsoft SQL Server
tabaseserver) MySQL
Apache Derby Oracle
Caché PointBase Micro (banco de dados relacional
DB2 implementado em Java)
Firebird PostgreSQL
HSQLDB (banco de dados implementado em Java) SQLite
IDMS (banco de dados hierárquico) LiteBase Mobile (dedicado à plataformas móveis
como: Palm OS, Pocket PC, WinCE, Symbian)
IMS (banco de dados hierárquico)
Sybase Adaptive Server Enterprise
Informix
Teradata (primeiro RDBMS com arquitetura paralela do
Ingres
mercado)
InterBase

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

https://pt.wikipedia.org/wiki/SQL 6/7
4/23/2019 SQL – Wikipédia, a enciclopédia livre

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
Padrão SQL 2003 (http://www.acm.org/sigmod/record/issues/0403/index.html#standards) (em inglês)
SQL tutorial (http://sqlwoz.com)
Jupitermedia Corporation's online SQL tutorial (http://sqlcourse.com/) (em inglês)
A Gentle Introduction to SQL by Andrew Cumming (http://sqlzoo.net/) (em inglês)
Database Debunking (http://www.dbdebunk.com/) (em inglês)
Online SQL Formatter (http://www.text-utils.com/sql-formatter) (em inglês)
Curso de SQL Gratuito (http://www.softblue.com.br/site/curso/id/3/CURSO+SQL+COMPLETO+BASICO+AO+AVANC
ADO+ON+LINE+BD03) (em português)
SQL for beginners (http://www.cfxweb.net/modules.php?name=News&file=article&sid=161) (em inglês)
Oracle SQL FAQ (http://www.orafaq.com/faqsql.htm) (em inglês)
LiteBase (http://www.litebase.org/) (em português)
Tutorial de SQL (http://www.1keydata.com/pt/sql/) (em português)
Oracle SQL tutorials (http://freeitsolutions.com/oracle-tutorials/?search=sql) (em inglês)
O que faz um Administrador de Banco de Dados (https://medium.com/@InfoTec/o-que-faz-um-administrador-de-banc
o-de-dados-83caac92d4ef) (em português)
Tutorial SQL - Portal W3 Schools (https://www.w3schools.com/sql/)

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

Esta página foi editada pela última vez às 17h04min de 22 de março de 2019.

Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da
Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de utilização.

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

Você também pode gostar