segunda-feira, 4 de outubro de 2010

SQL - Estrutura da linguagem

A SQL é uma linguagem que possui uma estrutura subdividida em grupos de comandos. Alguns são mais conhecidos e outros nem tanto. Os grupos são divididos em áreas(funções) de atuação. São eles:

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.

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

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


 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 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.

 

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.

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

  • <  Menor que
  • >  Maior que
  • <>  Diferente de
  • !=  Diferente de (não é padrão ISO)
  • <=  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.

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 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.

  Texto retirado da Wikipédia http://pt.wikipedia.org/wiki/SQL
"A maior proeza que você pode realizar é surpreender-se." Steve Martin
Um grande abraço a todos e bom trabalho.

SQL - História


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 relacionalproposto 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 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) em1986 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 e2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões regularesde 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, 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 incluemJava na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens.

Texto retirado da Wikipédia http://pt.wikipedia.org/wiki/SQL

Vencedores são homens que dedicaram sua vinda a vencer." Woody Hayes
Um grande abraço a todos e bom trabalho.