Carbadd 004 SQLDDL
Carbadd 004 SQLDDL
3
INTRODUÇÃO AO SQL
4
MÓDULOS
5
MÓDULOS
6
MÓDULOS
7
DDL – DEFINITION DATA LANGUAGE
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
12
MYSQL
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
• 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
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
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
25
LEITURA COMPLEMENTAR
26