O documento descreve a linguagem SQL (Structured Query Language), incluindo suas principais funcionalidades como definição e manipulação de dados em bancos de dados relacionais através de comandos DDL e DML. Também explica como criar, alterar e definir restrições em tabelas usando comandos como Create Table, Alter Table, e Constraints.
3. SQL (Structured Query Language)
Linguagem comercial para BD relacional
◦ padrão ISO desde a década de 80
SQL-1 (86); SQL-2 (92); SQL-3 (99)
Funcionalidades principais
◦ definição (DDL- Data Definition Language)
Alterações na estrutura da base são feitas através de instruções SQL
DDL
◦ manipulação (DML - Data Manipulation Language)
Modificações na base de dados são feitas através de um conjunto
de instruções SQL DML, as quais não podem alterar sua estrutura
4. Principais Componentes e Comandos
Create table
Drop table
Alter table
Constraint
DDL Grant
Revoke
SQL
Select
Insert
Delete
Update
DML Commit
Rollback
5. SQL – DDL
SQL DDL permite, por exemplo:
• definir e criar tabelas
• remover e alterar a definição/esquema de uma
tabela
• definir o domínio de valores associados a cada
atributo
• criar uma tabela virtual (visão)
• estabelecer regras de integridade
• criar o conjunto de índices para manutenção de cada
tabela
• estabelecer mecanismos de segurança e controle
sobre cada tabela
6. SQL – DDL
A DDL oferece três instruções para definição do
esquema da base de dados:
Create Table
define a estrutura de uma tabela, suas restrições de
integridade e cria a tabela vazia
Drop Table
elimina a tabela da base de dados
Alter Table
permite modificar a definição/esquema de uma
tabela
7. Criar Tabelas
Create Table EMPREGADOS(
CodEmp CHAR(3) NOT NULL,
Nome VARCHAR(50) NOT NULL,
Depto CHAR(3) NOT NULL,
Salario REAL DEFAULT 0.00,
PRIMARY KEY(CodEmp)
FOREIGN KEY(Depto) REFERENCES DEPARTAMENTOS(CodD))
Não garantida a integridade
referencial. Se apagar um
valor no departamento fica um
erro
8. ON DELETE e ON UPDATE
Create Table EMPREGADOS(
CodEmp CHAR(3) NOT NULL,
Nome VARCHAR(50) NOT NULL,
Depto CHAR(3) NOT NULL,
Salario REAL DEFAULT 0.00,
PRIMARY KEY CodEmp),
FOREIGN KEY (Depto) REFERENCES DEPARTAMENTOS(CodD)
ON DELETE SET NULL ON UPDATE CASCADE
)
Garantida a integridade
referencial. Se apagar um
valor no Departamento fica
um NULL
9. Valores para ON DELETE e ON UPDATE
• CASCADE
• Qualquer alteração na chave primária é propagada para as
chaves estrangeiras que a referenciam
• SET NULL
• Especifica que as chaves estrangeiras que referenciam a linha
excluída devem receber o valor NULL
• SET DEFAULT
• Especifica que as chaves estrangeiras que referenciam a linha
excluída devem receber o seu valor “por defeito” (previamente
definido)
• RESTRICT
• Especifica que uma linha não pode ser excluída caso existam
chaves estrangeiras que a referenciem
10. Como alterar Tabelas
ALTER TABLE serve para modificar a definição original da
tabela.
Alter Table Empregado
Add nome VARCHAR(30)
Alter Table Empregado
Drop COLUMN Est_Civil
Alter Table Cliente
Drop PRIMARY KEY
Alter Table Filho
Add FOREIGN KEY (numero) REFERENCES Ambulatórios
11. SQL – CONSTRAINTS (Restrição sobre os valores do domínio)
A tendência em SQL é tratar de forma uniforme todas restrições de integridade
chave primária, chave única, chave estrangeira, por isso usa-se o Constraints
create table EMBARQ
( CODFORNEC CHAR(4) not null,
CODPECA CHAR(4) not null,
QUANT INTEGER not null,
constraint PK_EMBARQ primary key(CODFORNEC,CODPECA))
alter table EMBARQ
add constraint FK_EMBARQ_PECAS
foreign key (CODPECA) references PECAS (CODPECA)
alter table EMBARQ
add constraint FK_EMBARQ_FORNEC
foreign key (CODFORNEC) references FORNEC (CODFORNEC)
12. SQL – DML
Define operações de manipulação de dados
◦ insert
◦ update
◦ delete
◦ select
Instruções declarativas
◦ manipulação de conjuntos
◦ especifica-se o que fazer e não como fazer
13. Inserção de Dados
Exemplos
insert into Funcionario
(Numero, nome, idade, categoria, NIF, cidade)
values
(4,‘Carlos’,28,’Engenheiro’,150908765,‘Porto’);
insert into Funcionario
values
(4,‘Carlos’,28,’Engenheiro’,150908765, ‘Porto’);
14. Alteração de Dados
Exemplos
update Funcionario
set cidade = ‘Braga’
update Funcionario
set idade = idade + 1, cidade = ‘Braga’
where numero = 2
15. Eliminação de Dados
Exemplos
delete from funcionario
delete from funcionario
where categoria = ‘aprendiz’
or cidade < > ‘Gaia’