SQL
Origem: Wikipédia, a enciclopédia livre.
Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para 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 em Inglês) [1], vindo daí o fato de, até hoje, a sigla, em inglês, ser comumente pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em português, a pronúncia mais corrente é a letra a letra: "ése-quê-éle".
A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.
Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a 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, seqüências padronizadas e colunas com valores de auto-generalização (inclusive colunas-identidade).
Tal como dito anteriormente, o SQL, 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.
Índice |
[editar] Exemplo
| Table 'T' | Query | Result | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Select * from T |
|
||||||||||||
|
Select C1 from T |
|
||||||||||||
|
Select * from T where C1=1 |
|
Inserindo dados numa tabela T, a pesquisa Select * from T terá como resultado todos os elementos de todas as linhas da tabela.
Partindo da mesma tabela, a pesquisa Select C1 from T terá como resultado todos os elementos da coluna C1.
O resultado da pesquisa Select * from T where C1=1 será todos os elementos de todas as filas onde o valor de coluna C1 é '1'.
[editar] Palavras-chaves em SQL
[editar] DML - Linguagem de Manipulação de Dados
Primeiro há os elementos da DML (Data Manipulation Language - Linguagem de Manipulação de Dados). A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar dados.
- INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente.
- UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente.
- DELETE permite remover linhas existentes de uma tabela.
[editar] 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:
- ALTER TABLE
- CREATE INDEX
- ALTER INDEX
- DROP INDEX
- CREATE VIEW
- DROP VIEW
[editar] 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.
outros comandos DCL:
- ALTER PASSWORD
- CREATE SYNONYM
[editar] 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 envia todos os dados das mudanças permanentemente.
- ROLLBACK faz com que as mudanças nos dados existentes desde que 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.
[editar] 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.
[editar] 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.
[editar] 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.
[editar] Operadores Relacionais
< – Menor que
> – Maior que
<> – Diferente de
<= – Menor ou Igual que
>= – Maior ou Igual que
= – Igual a
BETWEEN – Utilizado para especificar um intervalo de valores.
LIKE – Utilizado na comparação de um modelo e para especificar registros de um banco de dados."Like" + extensão % vai significar buscar todos resultados com o mesmo início da extensão.
[editar] Funções de Agregação
As funções de soma se usam 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 media 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.
[editar] Sistemas de Banco de Dados que usam SQL
- Apache Derby
- Caché
- DB2
- Firebird
- HSQLDB , banco de dados implementado em Java
- Informix
- Ingres
- InterBase
- Microsoft SQL Server
- MySQL
- Oracle
- PointBase PointBase, banco de dados relacional implementado em Java
- PostgreSQL
- SQLite
- LiteBase Mobile Dedicado a plataformas móveis tais como: Palm OS, Pocket PC, WinCE, Symbian
- Sybase Adaptive Server Enterprise
- Teradata Primeiro RDBMS com arquitetura paralela do mercado
[editar] Ligações externas
- (em inglês) Padrão SQL 2003
- (em inglês) Jupitermedia Corporation's online SQL tutorial
- (em inglês) A Gentle Introduction to SQL by Andrew Cumming
- (em inglês) Database Debunking
- (em inglês) SQL for beginners
- (em inglês) Oracle SQL FAQ
- (em português) LiteBase [1]
- (em inglês) Oracle SQL tutorials
Referências
- ↑ 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
- Navathe, S. B. and Elmasri, R.. Sistemas de banco de dados – Fundamentos e aplicações. LTC: 2002.
- Celso Henrique Poderoso de Oliveira, SQL - Curso Prático. Novatec Editora. ISBN 8575220241.

