0% acharam este documento útil (0 voto)
31 visualizações26 páginas

Carbadd 004 SQLDDL

Enviado por

Manuela Otavio
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
31 visualizações26 páginas

Carbadd 004 SQLDDL

Enviado por

Manuela Otavio
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 26

SQL DDL

PROF. ANDRÉ DUARTE


Introdução ao SQL
TÓPICOS Módulos
DDL
2
INTRODUÇÃO AO SQL

• Desenvolvida no laboratório de pesquisas da IBM em San Jose - CA


• Originalmente denominada “SEQUEL” (Structured English QUEry Language)
• Em 1986, o ANSI publicou um primeiro padrão para a linguagem
• Rapidamente a linguagem estabeleceu-se como padrão para bancos de
dados relacional

3
INTRODUÇÃO AO SQL

• Comumente usamos o termo CRUD para definir as ações para a construção e


manipulação de um banco de dados
• CREATE => criação física (DROP => destruição física)
• READ => leituras para consultas (SELECT FROM WHERE)
• UPDATE => atualizações / alterações nos dados
• DELETE => remoção de dados

4
MÓDULOS

• Data Definition Language (DDL) – definir esquemas de relação, remover


relação, criar índices e modificar esquemas
• Views Definitions – comandos para definição de visões
• Authorization – comandos para especificação de autorização de acesso a
relações e visões

5
MÓDULOS

• Interactive Data Manipulation Language (DML) – inclui linguagem de consulta


baseada na álgebra relacional e no cálculo relacional de tupla e também
comandos para inserir, remover e modificar tuplas em um banco de dados
• Embeded Data Manipulation Language – a forma embutida da SQL é
projetada para ser utilizada com linguagens de programação

6
MÓDULOS

• Integrity– a SQL original incluía comandos para instruções complexas de


integridade. As versões da SQL fornecem posteriores apenas uma forma
limitada de verificação de integridade
• Transaction control – a SQL inclui comandos para especificação do início e fim
de transações, uma das formas de bloquear explicitamente os dados para
controle de concorrência

7
DDL – DEFINITION DATA LANGUAGE

• Criação => CREATE


• Banco de Dados
• CREATE DATABASE nome_banco;
• Tabelas
• CREATE TABLE nome_tabela(<definição dos atributos>);
• Definição dos atributos
• Nome: nome do atributo
• Tipo: tipo de dados do SQL
• Restrições: restrições para cada atributo

8
EXEMPLO
CREATE DATABASE lojaweb;
CREATE TABLE clientes(
cpf BIGINT PRIMARY KEY,
rg VARCHAR(11) UNIQUE NOT NULL,
nome VACHAR(20) NOT NULL,
endereco VARCHAR(20) NOT NULL,
cidade VARCHAR(20) NOT NULL DEFAULT 'Caraguatatuba',
uf CHAR(2) NOT NULL,
telefone BIGINT NOT NULL,
sexo CHAR,
nascimento DATE NOT NULL,
salario DECIMAL(10,2) 9

);
TIPOS DE DADOS

• SQL possui vários tipos de dados que podem ter nomes diferentes em
SGBD
• CHARACTER, CHARACTER VARYING, CHARACTER LARGE OBJECT
• BINARY LARGE OBJECT, BIT, BIT VARYING
• NUMERIC, DECIMAL, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION,
• BOOLEAN
• DATE, TIME, TIMESTAMP, INTERVAL
10
RESTRIÇÕES

• NOT NULL – essa restrição é sempre implícita para atributos que são chave
primária, porém pode ser especificada se o valor null não for permitido para o
atributo desejado
• DEFAULT – define um valor padrão para o atributo caso nenhum valor seja
informado durante a inserção
• PRIMARY KEY – especifica um ou mais atributos como sendo chave primária da
tabela
• UNIQUE – define as chaves alternativas (secundárias), a cláusula não garante que o
atributo será obrigatório em alguns SGBD
11
MYSQL

• MySQL é um banco de dados relacional comercial


• Implementa o core do SQL padrão e alguma funcionalidades
próprias
• Atualmente é mantido pela empresa ORACLE
• Sua versão opensource é o MariaDB

12
MYSQL

• Para se conectar em um banco no MySQL devemos


• Verificar se o serviço está sendo executado
• Informar o host (ex.: localhost ou o ip do servidor)
• Informar usuário
• Informar a senha para o usuário caso tenha sido configurada
• Para ativar um banco de dados no MySQL para receber comandos
devemos usar o comando USE
• Exemplo: USE loja;

13
EXEMPLO
CREATE DATABASE loja;
CREATE TABLE clientes(
cpf BIGINT PRIMARY KEY,
rg VARCHAR(11) UNIQUE NOT NULL,
nome VARCHAR(20) NOT NULL,
endereco VARCHAR(20) NOT NULL,
cidade VARCHAR(20) NOT NULL DEFAULT 'Caraguatatuba', clientes(cpf: inteiro, rg: texto, nome: texto,
uf CHAR(2) NOT NULL, endereco: texto, cidade: texto, uf: texto,
telefone BIGINT NOT NULL, telefone: inteiro, sexo: caractere, nascimento:
sexo CHAR, data, salario: decimal)
nascimento DATE NOT NULL,
salario DECIMAL(10,2)
);
14
CHAVE ESTRANGEIRA

• Toda vez que um atributo é colocado em uma tabela e faz referência à outro
atributo ele é considerado uma chave estrangeira (FOREIGN KEY)
• Esta solução é usada para representar o relacionamento entre tabelas
• É bom que uma restrição de chave estrangeira tenha um nome
• Sintaxe
CONSTRAINT <nome> FOREIGN KEY (<atributo>) REFERENCES <tabela>(<atributo>)

15
CHAVE ESTRANGEIRA

• Para criarmos a tabela compra


• Inserir a chave de cliente
• Inserir a chave de vendedor
• Inserir a chave de produto
• Criar os atributos de compra

• Esquema
compras(codigo: inteiro, cpf: inteiro, registro: inteiro, numero:
inteiro, data: date, hora: time, quantidade: inteiro, status: texto)

16
CREATE TABLE clientes(
cpf BIGINT PRIMARY KEY,
rg VARCHAR(11) UNIQUE NOT NULL,
nome VARCHAR(20) NOT NULL,
endereco VARCHAR(20) NOT NULL,
cidade VARCHAR(20) NOT NULL DEFAULT 'Caraguatatuba',
uf CHAR(2) NOT NULL,
telefone BIGINT NOT NULL,
sexo CHAR,
nascimento DATE NOT NULL,
salario DECIMAL(10,2)
);
17
CREATE TABLE vendedores (
registro INT PRIMARY KEY,
cpf BIGINT UNIQUE NOT NULL,
nome VARCHAR(50) NOT NULL,
nascimento DATE NOT NULL,
sexo CHAR NOT NULL,
telefone BIGINT NOT NULL,
salario DECIMAL(10,2) NOT NULL,
comissao DECIMAL(10,2) NOT NULL
);

18
CREATE TABLE produtos (
numero INT PRIMARY KEY,
nome VARCHAR(20) NOT NULL,
descricao VARCHAR(50) NOT NULL,
preco DECIMAL(10,2) NOT NULL,
peso DECIMAL(10,2),
dimensoes DECIMAL(10,2),
validade DATE NOT NULL
);

19
CREATE TABLE compras (
codigo INT PRIMARY KEY AUTO_INCREMENT,
cpf BIGINT NOT NULL,
registro INT NOT NULL,
numero INT NOT NULL,
data DATE NOT NULL,
hora TIME NOT NULL,
quantidade INT NOT NULL,
status VARCHAR(20) NOT NULL,
CONSTRAINT FK_CLIENTES FOREIGN KEY (cpf) REFERENCES clientes(cpf),
CONSTRAINT FK_VENDEDORES FOREIGN KEY (registro) REFERENCES vendedores(registro),
CONSTRAINT FK_PRODUTOS FOREIGN KEY (numero) REFERENCES produtos(numero)
);

20
DROP

• Comando usado para eliminar fisicamente um recurso do banco de dados


• Sintaxe
• DROP DATABASE <nome_banco>
• DROP TABLE <nome_tabela>
• ALTER TABLE DROP COLUMN <nome_coluna> (vide ALTER)
• DROP VIEW <nome_view>
• DROP INDEX <nome_index>
• DROP TRIGGER <noe_trigger>

21
DROP

• Exemplos
• DROP DATABASE lojaweb;
• DROP TABLE compras;
• ALTER TABLE funcionario DROP COLUMN apelido; (vide ALTER)
• DROP VIEW clientesvendedores;
• DROP INDEX idx_nome;
• DROP TRIGGER TRIGGER_CLIENTES_AFTER_INSERT;

22
ALTER

• Comando usado para fazer várias alterações no banco


• Sintaxe
• ALTER TABLE <tabela> RENAME TO <novo_nome>
• ALTER TABLE <tabela> RENAME COLUMN <nome> TO <novo_nome>
• MySQL < 8.0 => ALTER TABLE <tabela> CHANGE <coluna> <definicao_coluna>

• ALTER TABLE <tabela> ADD COLUMN <definicao_coluna>


• ALTER TABLE <tabela> DROP COLUMN <nome_coluna>

23
ALTER

• Exemplos
• ALTER TABLE clientes RENAME TO pessoas;
• ALTER TABLE produtos RENAME COLUMN preco TO valor;
• ALTER TABLE produtos CHANGE preco valor DECIMAL(10, 2) NOT NULL;
• ALTER TABLE produtos MODIFY valor DECIMAL (10,3);
• ALTER TABLE vendedores ADD COLUMN apelido VARCHAR(20) NOT NULL;
• ALTER TABLE vendedores DROP COLUMN apelido;

24
EXERCÍCIO

• Crie os esquemas relacionais e o código SQL que constroem o seguinte banco

25
LEITURA COMPLEMENTAR

• KORTH, H. F. SILBERSCHATZ, A. SUDARSHAN, S. Sistema de Banco


de Dados. Campus, 2006 (Biblioteca Virtual)
• Capítulo 4

26

Você também pode gostar