SQL
Origem: Wikipédia, a
enciclopédia livre.
|
SQL banco de dados.
|
|
|
Surgido em
|
1974
|
|
Última versão
|
SQL:2008 (2008)
|
|
Criado por
|
|
|
Forte
|
|
|
Dialetos:
|
|
|
Influenciada por
|
|
|
Influenciou
|
|
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 facto 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: "ésse-quê-éle".
A linguagem é 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, 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.
|
Tabela 'T'
|
Consulta
|
Resultado
|
||||||||||||
|
Select * from T
|
|
||||||||||||
|
Select C1 from T
|
|
||||||||||||
|
Select * from T where C1=1
|
|
Índice
- 1 Exemplo
- 2 Subconjuntos do SQL
- 2.1 DML - Linguagem de Manipulação de Dados
- 2.2 DDL - Linguagem de Definição de Dados
- 2.3 DCL - Linguagem de Controle de Dados
- 2.4 DTL - Linguagem de Transação de Dados
- 2.5 DQL - Linguagem de Consulta de Dados
- 3 Palavras-chave em SQL
- 4 Sistemas de Banco de Dados que usam SQL
- 5 Referências
- 6 Ligações externas
Exemplo
A pesquisaSELECT * FROM T, no exemplo da tabela à
direita acima, terá como resultado todos os elementos de todas as linhas da tabela
chamada T. Partindo da mesma tabela T, a pesquisa SELECT C1 FROM T
terá como resultado todos os elementos da coluna C1 da tabela T. O resultado da
pesquisa SELECT * FROM T WHERE C1=1 será todos os
elementos de todas as linhas onde o valor de coluna C1 é '1'.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, Select, Update e Delete.|
função
|
comandos SQL
|
descrição do comando
|
exemplo
|
|
inclusões
|
INSERT
|
é usada para inserir um
registro (formalmente uma tupla) a uma tabela existente.
|
Insert into Pessoa (id, nome, sexo) value; |
|
consultas
|
O Select é o principal
comando usado em SQL para realizar consultas a dados pertencentes a uma
tabela.
|
Select * From Pessoa; |
|
|
alterações
|
UPDATE
|
para mudar os valores de
dados em uma ou mais linhas da tabela existente.
|
UPDATE Pessoa SET
data_nascimento = '11/09/1985' WHERE id_pessoa = 7
|
|
exclusões
|
DELETE
|
permite remover linhas
existentes de uma tabela.
|
DELETE FROM pessoa WHERE
id_pessoa = 7
|
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.
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 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.
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.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.|
Operador
|
Descrição
|
|
<
|
Menor
|
|
>
|
Maior
|
|
<=
|
Menor ou igual
|
|
>=
|
Maior ou igual
|
|
=
|
Igual
|
|
<>
|
Diferente
|
- 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 % significa buscar todos resultados com o mesmo início da extensão.
- IN - Utilizado para verificar se o valor procurado está dentro de uma 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
- Sybase Advantage Database Server
- Apache Derby
- Caché
- DB2
- Firebird
- HSQLDB (banco de dados implementado em Java)
- IDMS (banco de dados hierárquico)
- IMS (banco de dados hierárquico)
- Informix
- Ingres
- InterBase
- Microsoft Access
- Microsoft SQL Server
- MySQL
- Oracle
- PointBase Micro (banco de dados relacional implementado em Java)
- PostgreSQL
- SQLite
- LiteBase Mobile (dedicado à plataformas móveis como: Palm OS, Pocket PC, WinCE, Symbian)
- Sybase Adaptive Server Enterprise
- Teradata (primeiro RDBMS com arquitetura paralela do mercado)
Microsoft
SQL Server
(O MS SQL Server é um
SGBD - sistema gerenciador de Banco de dados relacional desenvolvido pela Microsoft. Foi criado em parceria com a Sybase em 1988 inicialmente para a plataforma OS/21 . Esta parceria durou até 1994, com o
lançamento da versão para Windows NT e desde então a Microsoft mantém
a manutenção do produto. Como um Banco de dados, é um produto de software
cuja principal função é a de armazenar e recuperar dados solicitados por outras
aplicações de software, seja aqueles no mesmo computador ou aqueles em execução
em outro computador através de uma rede (incluindo a Internet). Há pelo menos
uma dúzia de diferentes edições do Microsoft SQL Server destinadas a públicos
diferentes e para diferentes cargas de trabalho (variando de pequenas
aplicações que armazenam e recuperam dados no mesmo computador, a milhões de
usuários e computadores que acessam grandes quantidades de dados a partir da
Internet ao mesmo tempo). Suas linguagens de consulta primárias são T-SQL e ANSI SQL.
Algumas funções do MS-SQL Server:
Gatilho (banco de dados)
Origem: Wikipédia, a
enciclopédia livre.
Gatilho ou trigger é um recurso de programação
executado sempre que o evento associado ocorrer. Trigger é um tipo especial de
procedimento armazenado, que é executado sempre que há uma tentativa de
modificar os dados de uma tabela que é protegida por ele.É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabela de histórico de alteração, o usuário e data/hora da alteração.
Em SQL, para se criar um trigger utiliza-se do CREATE TRIGGER, e para removê-lo deve-se usar DROP TRIGGER. Um gatilho típico é composto de três componentes, que seguem o Modelo: evento - condição - ação1 .
Exemplo: (MS-SQL Server)
CREATE TRIGGER nome_do_gatilho ON dono.Nome_da_tabela
FOR INSERT (ou SELECT ou UPDATE ou DELETE)
AS
Codigo para execucao
Outro exemplo:CREATE TRIGGER <Nome>
Momento_Exec (BEFORE/AFTER)
Evento_disparador (INSERT/UPDATE/DELETE)
ON tabela_evento
[REFERENCING NEW AS novo_nome OLD AS nome_antigo] (Opcional, em caso de delete para copiar os dados para outra tabela)
[nivel_gatilho] (FOR EACH ROW (linha) / FOR EACH STATEMENT (comando) - determina como será executado o BLOCO_COMANDOS_SQL)
[condição_exec] (WHEN <condição>)
BLOCO_COMANDOS_SQL
Procedimento
armazenado
Origem:
Wikipédia, a enciclopédia livre.
Procedimento armazenado ou Stored
Procedure é uma coleção de comandos em SQL para dispensamento de Banco de dados. Encapsula tarefas
repetitivas, aceita parâmetros de entrada e retorna um valor de status (para
indicar aceitação ou falha na execução). O procedimento armazenado pode reduzir
o tráfego na rede, visto que os comandos são executados diretamente no
servidor. Além de melhorar a performance, criar mecanismos de segurança entre a
manipulação dos dados do Banco de Dados. Exemplo: (MS-SQL Server)
Create procedure busca
@nomedebusca varchar (50)
as
select nome1, nome2
from nome_da_tabela
where nome = @nomedebusca
Características dos
Procedimentos no MS-SQL Server
- Procedimentos do Sistema - Armazenadas no banco de dados Master, são identificadas com o prefixo sp_, executam tarefas administrativas, podem ser executadas em qualquer banco de dados.
- Procedimentos Locais - São criadas em bancos de dados do usuário.
- Procedimentos Temporárias - Locais devem começar com #. Globais devem começar com ##.
- Procedures Remotas - Apenas por compatibilidade. No seu lugar se usa Queries distribuídas.
- Procedimentos Estendidas - São implementadas como DLL e executadas fora do ambiente do SQL Server. Identificadas com o prefixo xp_.
Extended Stored Procedure
Origem: Wikipédia, a
enciclopédia livre.
Extended Stored Procedure permite a integração de programas
escritos em C/C++ e o Microsoft SQL Server. As extended
stored procedures ou xps após instaladas no servidor são invocadas
normalmente com a mesma sintaxe de Stored
Procedures escritas em Transact SQL.Existem diversas xps distribuidas juntamente com Microsoft SQL Server, elas são instaladas no banco de dados master e começam com o prefixo xp_.

0 comentários:
Postar um comentário