1 SQL (Structured Query Language) Linguagem padrão usada em BD relacionais – SQL1 ou SQL-86: primeira versão do padrão. – SQL2 ou SQL-92: versão usada atualmente. – SQL3 ou SQL-99: versão que incorpora novos conceitos como orientação a objetos, além de operações e tipos novos (boolean e e character, por exemplo). A linguagem SQL: – Linguagem de Definição de Dados (Data Definition Language - DDL) – Linguagem de Manipulação de Dados (Data Manipulation Language - DML)
40
Embed
1 SQL (Structured Query Language) Linguagem padrão usada em BD relacionais –SQL1 ou SQL-86: primeira versão do padrão. –SQL2 ou SQL-92: versão usada atualmente.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
SQL (Structured Query Language) Linguagem padrão usada em BD relacionais
– SQL1 ou SQL-86: primeira versão do padrão.– SQL2 ou SQL-92: versão usada atualmente.– SQL3 ou SQL-99: versão que incorpora novos conceitos como
orientação a objetos, além de operações e tipos novos (boolean e e character, por exemplo).
A linguagem SQL:
– Linguagem de Definição de Dados (Data Definition Language - DDL)
– Linguagem de Manipulação de Dados (Data Manipulation Language - DML)
2
Linguagem de definição de dados (DDL) • Criação de esquemas: CREATE SCHEMA
• Criação de tabelas: CREATE TABLE
• Tipos de dados
• Criação de domínios: CREATE DOMAIN
• Restrições e valores default
• Remoção de esquemas: DROP SCHEMA
• Remoção de tabelas: DROP TABLE
• Alteração de tabelas: ALTER TABLE
3
Esquema • Serve para agrupar tabelas e outros elementos
(constraints, views, domínios) que pertencem a uma mesma aplicação de banco de dados.
• Pode ser associado a uma autorização para usá-lo:
• Catálogo: coleção de esquemas que possui um INFORMATION_SCHEMA, com informação sobre os elementos do esquema e usuários autorizados.– Restrições de integridade somente podem ser definidas entre
tabelas que pertencem ao mesmo catálogo.– Esquemas do mesmo catálogo podem compartilhar definições
de domínio.
CREATE SCHEMA BANCO AUTHORIZATION JSMITH;
4
Mapeamento para modelo relacional:Agencia(nroagencia,cidade)
create table Conta( nroconta integer not null, nroagencia integer not null, primary key (nroconta,nroagencia), foreign key (nroagencia) references Agencia(nroagencia) );
10
Restrições (CONSTRAINTS) e Valores Default
Exercício: criar a tabela Cliente_tem_Conta
create table Cliente_tem_Conta( nrocliente integer not null, nroconta integer not null , nroagencia integer not null, primary key (nrocliente,nroconta,nroagencia), foreign key (nrocliente) references Cliente(nrocliente), foreign key (nroconta,nroagencia) references Conta (nroconta,nroagencia));
11
Remoção de esquemas e tabelas
• DROP SCHEMA: – RESTRICT: somente apaga o esquema, se ele estiver vazio– CASCADE: apaga o esquema e todos seus elementos
• DROP TABLE:
– RESTRICT: a tabela é apagada somente se ela não referenciada ou não estiver em nenhuma view
– CASCADE: a tabela é apagada, e todas as outras tabelas que a referenciam e views também são.
Quais tabelas serão apagadas?Resposta: Cliente_tem_Conta e Conta
DROP SCHEMA BANCO CASCADE;
DROP TABLE CONTA CASCADE;
12
Alteração de tabelas
• Adicionar ou remover atributos e restrições: ALTER TABLE– RESTRICT: a operação só se completa se não existirem views
ou restrições referenciando a coluna a ser removida.– CASCADE: apaga todas as visões e restrições que referenciam a
coluna a ser removida.
• Exercícios– Adicione a coluna CPF à tabela Cliente– Exclua a coluna CPF da tabela Cliente
ALTER TABLE Cliente ADD email varchar2(12);ALTER TABLE Cliente DROP COLUMN cidadeOrigem CASCADE; ALTER TABLE Cliente ALTER cidadeOrigem DROP DEFAULT;ALTER TABLE Cliente ALTER cidadeOrigem SET DEFAULT = ‘Sao Paulo’;
13
Linguagem de manipulação de dados (DML) • Inserção de dados: INSERT INTO• Atualização de dados: UPDATE• Exclusão de dados: DELETE FROM• Consulta de dados: SELECT
– WHERE
– Operadores aritméticos e ORDER BY
– Operadores lógicos, IN, NOT IN, IS NULL
– BETWEEN, LIKE
– Consultas aninhadas
– ALL, ANY
– EXISTS, NOT EXISTS
– UNION, INTERSECT, MINUS
– Tipos de JOIN
– Funções de agregação e agrupamento
14
Inserção e atualização de dados
• Inserir dados: INSERT INTO
– Inserindo uma agência
• Atualizar dados: UPDATE
– Atualizando uma agência
INSERT INTO nome_tabela [(lista_de_valores)]VALUES (Lista_de_Valores);
INSERT INTO Agencia(nroagencia, cidade)VALUES (1,‘Sao Carlos’);
UPDATE nome_tabela SET nome_coluna = valor, ...WHERE (condição);
UPDATE Agencia SET cidade = ‘Campinas’WHERE nroagencia = 1;
15
Exclusão de dados
• Excluir dados: DELETE FROM
– Excluindo agência 1
– Excluindo todas agências
• Exercícios:– Inserir clientes:
– Atualizar cliente 2 com idade = 60 e cidadeOrigem = ‘Sao Carlos’– Excluir cliente Joao
DELETE FROM nome_tabela[WHERE (condição)];
DELETE FROM AgenciaWHERE nroagencia = 1;
DELETE FROM Agencia;
nrocliente nome cidadeOrigem idade
1 Maria Sao Paulo 24
2 Joao Ribeirao Preto 50
16
Consulta de dados
SELECT [DISTINCT] coluna1, coluna2, … ,colunaNFROM tabela1, tabela2,...,tabelaN[WHERE condições][GROUP BY coluna1, coluna2,...,colunaN][HAVING (condições)][{INTERSECT | MINUS | UNION} commando_select][ORDER BY coluna {ASC | DESC}, …];
17
Relações dos exemplos e exercícios
Clientenrocliente nome cidadeOrigem idade
1 Maria Sao Paulo 24
2 Joao Ribeirao Preto 80
3 Jose Sao Paulo 50
4 Ana Campinas 45
5 Sebastiao Brotas 70
nroagencia cidade
1 Sao Carlos
2 Sao Carlos
3 Ibitinga
4 Campinas
Agencianroagencia nroconta saldo
1 1111 100
1 2222 200
2 3333 100
2 1111 50
Conta
Cliente_tem_Conta
nroAgencia nroConta nroCliente
1 1111 1
1 1111 2
1 2222 1
1 2222 3
2 3333 3
2 1111 4
18
SELECT e DISTINCT
• Obtenha uma listagem de todas as cidades de origem dos clientes.
– Álgebra relacional
– SQL
• Exercício: Obtenha uma listagem de todas as cidades em que existem agências
π(cidadeOrigem)(σ (Cliente) )
SELECT DISTINCT cidadeOrigem FROM Cliente;
19
SELECT e DISTINCT
• Obtenha uma listagem de todas as cidades de origem dos clientes.
– Álgebra relacional
– SQL
• Exercício: Obtenha uma listagem de todas as cidades em que existem agências
π(cidadeOrigem)(σ (Cliente) )
SELECT DISTINCT cidadeOrigem FROM Cliente;
SELECT DISTINCT cidade FROM Agencia;
20
WHERE, operador relacional, uso explícito de relações, uso de variáveis
• Obtenha o nome e a cidade de origem dos clientes com mais de 60 anos.