Você está na página 1de 10

Unidade 5

A Linguagem SQL
Objetivo
Ao final desta unidade de aprendizagem, você será capaz de:

• Elaborar bases de dados em um SGBD, utilizando


os comandos da linguagem SQL, possibilitando sua
manutenção e atualização.

Modelo Relacional de Banco de Dados | 2


Introdução
A linguagem SQL pode ser considerada como uma das
principais razões para o sucesso dos bancos de dados relacionais, pois
ela se tornou um padrão para SGBDs relacionais. Na prática, existem
muitas diferenças entre os diversos SGBDs comerciais. Entretanto, o
usuário pode sempre optar por utilizar somente as características que
fazem parte do padrão, podendo, assim, migrar de um SGBD para
outro sem grande esforço.

As operações de álgebra relacional aprendidas no curso são


muito importantes para compreendermos os tipos de solicitações que
podem ser especificadas em um banco de dados relacional. Entretanto,
as operações de álgebra relacional são consideradas demasiadamente
técnicas para a maioria dos usuários de SGBDs comerciais. Uma
razão para isso é o fato de que uma consulta na álgebra relacional
é escrita na forma de uma sequência de operações que, ao serem
executadas, produzem o resultado esperado. Dessa forma, o usuário
deve especificar como – ou seja, em que ordem – executar as
operações de consulta. Por outro lado, a linguagem SQL fornece
uma interface de linguagem declarativa de alto nível, de forma que o
usuário especifique somente o resultado que deve ocorrer, deixando a
efetiva otimização e decisões sobre como executar a consulta a cargo
do SGBD. A SQL inclui algumas características da álgebra relacional,
sendo baseada, em sua maior parte, no cálculo relacional de tuplas,
que se trata de outra linguagem de consulta formal para bancos de
dados relacionais. A sintaxe da SQL é mais amigável ao usuário do
que qualquer uma das linguagens formais.

Modelo Relacional de Banco de Dados | 3


O nome SQL é derivado de Structured Query Language
(Linguagem de Consulta Estruturada). Ela é dividida em três partes de
acordo com os tipos de comandos:

• DML (Linguagem de Manipulação de Dados) – Permite


consultas, modificação de informações existentes, criação de
novos dados ou exclusão de dados das tabelas;
• DDL (Linguagem de Definição de Dados) – Descreve
como as tabelas e os outros objetos do banco de dados
podem ser definidos, alterados e removidos;
• DCL (Linguagem de Controle de Dados) – Dá uma visão
dos mecanismos de controle subdivididos em três grupos de
comandos: das transações, da sessão e do sistema.

Modelo Relacional de Banco de Dados | 4


1. Definição de Esquemas em SQL
A SQL utiliza os termos “tabela”, “linha” e “coluna” para,
respectivamente, relação, tupla e atributo – termos da álgebra relacional.
Os comandos da SQL para definição dos dados são CREATE (criar),
ALTER (alterar) e DROP (remover).

1.1 Tipos de Dados

Os tipos de dados disponíveis para atributos incluem dados


numéricos, string de caracteres, data e hora.

Os tipos de dados numéricos incluem:

• Números inteiros de vários tamanhos: INTEGER ou INT


e SMALLINT;
• Números reais de várias precisões: FLOAT, REAL,
DOUBLE PRECISION e DECIMAL. Números formatados
podem ser declarados utilizando DECIMAL (i, j), em que
i (precisão), é o número total de dígitos antes da vírgula e j
(escala), é o número de dígitos após o ponto decimal.

Os tipos de dados de strings de caracteres podem ser:

• De tamanho fixo: CHAR(n), em que n é o número


de caracteres;
• De tamanho variável: VARCHAR(n), em que n é o
número máximo de caracteres.

Modelo Relacional de Banco de Dados | 5


O tipo de dado DATE possui dez posições e seus componentes
são ano, mês e dia, geralmente na forma AAAA-MM-DD.

1.2 O Comando CREATE TABLE

O comando CREATE TABLE é utilizado para especificar


uma nova relação, dando a ela um nome e especificando seus atributos
e restrições. Os atributos são especificados primeiramente e a cada
atributo é dado um nome, um tipo de dado para especificar seu domínio
de valores e qualquer restrição de atributo, tal como NOT NULL. As
restrições de chave, de integridade de entidade e de integridade referencial
podem ser especificadas, dentro da instrução CREATE TABLE, depois
que os atributos forem declarados. Uma outra opção é declarar essas
restrições posteriormente, utilizando o comando ALTER TABLE.

1.3 Sobre as Restrições

Uma vez que a SQL permite NULLs como valores de


atributos, a restrição NOT NULL pode ser especificada, caso NULL
não seja permitido para um determinado atributo, como o nome de um
empregado não poder ser nulo.

A cláusula PRIMARY KEY especifica um ou mais atributos


que compõem a chave primária de uma tabela. Caso a chave primária
seja composta por mais de um atributo, eles devem vir separados
por vírgula. A cláusula UNIQUE especifica as chaves candidata, ou
seja, aquelas cuja combinação de valores não se repete. A integridade
referencial é especificada na cláusula FOREIGN KEY.

Conforme foi visto em aula, uma restrição de integridade pode


ser violada quando tuplas são inseridas ou excluídas, ou quando um
atributo de chave estrangeira é modificado. Na SQL, pode-se especificar
a ação a ser tomada se uma restrição de integridade referencial for
violada. As opções são: SET NULL, CASCADE e SET DEFAULT.
Além disso, deve ser qualificada se a ação é tomada na exclusão (ON
DELETE) ou na atualização (ON UPDATE).

Modelo Relacional de Banco de Dados | 6


2. O Comando DROP TABLE
Se uma determinada tabela não for mais necessária, ela e sua
definição podem ser excluídas utilizando o comando DROP TABLE.
Existem duas opções de comportamento na exclusão:

• CASCADE – Todas as restrições que referenciam a tabela


são removidas automaticamente, juntamente com a tabela
em questão;
• RESTRICT – A tabela em questão só será removida se
ela não for referenciada por outra tabela (por exemplo, por
meio de definições de chaves estrangeiras).

3. O Comando ALTER TABLE


A definição de uma tabela pode ser alterada utilizando-se o
comando ALTER TABLE. Por meio da alteração de uma tabela, é
possível: adicionar ou retirar uma coluna, alterar a definição de uma
coluna e adicionar ou retirar restrições de tabela.

Para remover uma coluna, deve-se escolher uma das opções


para controlar o comportamento da eliminação:

• CASCADE – Todas as restrições que referenciam


a coluna são automaticamente excluídas, juntamente
com a coluna;
• RESTRICT – O comando só é bem-sucedido, se nenhuma
restrição referenciar a coluna.

3.1 Manipulação de Dados em SQL

Em SQL, existem três comandos que podem ser utilizados


para modificar os dados do banco de dados: INSERT (incluir),
DELETE (excluir) e UPDATE (atualizar).

Modelo Relacional de Banco de Dados | 7


4. O Comando INSERT
Em seu modo mais simples, o comando INSERT é utilizado
para adicionar uma única tupla a uma relação. Deve-se especificar
o nome da relação e uma lista de valores. Os valores devem ser
relacionados na mesma ordem em que os atributos correspondentes
foram especificados no comando CREATE TABLE. Caso não
queira inserir os valores de todos os atributos, pode-se especificar,
explicitamente, os nomes dos atributos.

5. O Comando DELETE
O comando DELETE remove tuplas de uma relação. Ele
possui a cláusula WHERE para selecionar as tuplas a serem excluídas.
Se a cláusula WHERE for omitida, todas as tuplas da relação serão
excluídas, entretanto, a tabela permanecerá no banco de dados como
uma tabela vazia (deve-se utilizar o comando DROP TABLE para
remover completamente a tabela).

6. O Comando UPDATE
O comando UPDATE é utilizado para modificar valores de
atributos de uma ou mais tuplas selecionadas. Como no comando
DELETE, uma cláusula WHERE no comando UPDATE seleciona as
tuplas a serem modificadas. A cláusula SET especifica os atributos e os
seus novos valores.

Modelo Relacional de Banco de Dados | 8


Considerações Finais
A linguagem SQL tem papel fundamental nos SGBDs
atuais, conforme aprendido nesta aula. Os comandos de definição
e manipulação de dados são muito importantes para o bom
funcionamento de um banco de dados, pois, por meio deles, o
banco será criado, estruturado e populado, para, posteriormente, ser
utilizado como fonte de consulta e recuperação de dados, retornando
resultados coerentes e confiáveis.

Modelo Relacional de Banco de Dados | 9


Referências Bibliográficas
DATE, C. J. Introdução a Sistemas de Banco de Dados. Rio de
Janeiro: Elsevier: Campus, 2004.

ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de


dados. 4 ed. São Paulo: Addison Wesley, 2006.

Modelo Relacional de Banco de Dados | 10

Você também pode gostar