4 SQL
DDL - Criação de banco de dados
• Alguns servidores têm instruções DDL para criação de um banco de dados:
– Create Database
• cria uma base de dados vazia
– Drop Database
• elimina uma base de dados
• Outros têm abordagens variadas
– Oracle cria o BD como parte da instalação do software
– INGRES tem um utilitário
Baseado em trabalhos do prof. Carlos A. Heuser
Instruções da DDL
• SQL 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 de uma tabela
Baseado em trabalhos do prof. Carlos A. Heuser
Criação de Tabelas (Peca)
CREATE TABLE
(CodPeca
NomePeca
CorPeca
PesoPeca
CidadePeca
PRIMARY KEY
Peca
CHAR(4)
NOT NULL,
VARCHAR(50) NOT NULL,
CHAR(10)
NULL,
INTEGER
NULL,
VARCHAR(40) NULL,
(CodPeca))
Baseado em trabalhos do prof. Carlos A. Heuser
Criação de Tabelas (Fornec)
CREATE TABLE Fornec
( CodFornec
CHAR(4)
NOT NULL,
NomeFornec
VARCHAR(50) NOT NULL,
StatusFornec INTEGER,
CidadeFornec VARCHAR(40),
CNPJ
INTEGER
NULL,
PRIMARY KEY (CodFornec),
UNIQUE (CNPJ))
Baseado em trabalhos do prof. Carlos A. Heuser
Criação de Tabelas (Embarq)
CREATE TABLE Embarq
( CodPeca
CHAR(4) NOT NULL,
CodFornec
CHAR(4) NOT NULL,
QtdeEmbarc INTEGER NOT NULL,
PRIMARY KEY (CodPeca,CodFornec),
FOREIGN KEY (CodPeca) REFERENCES Peca
(CodPeca),
FOREIGN KEY (CodFornec) REFERENCES
Fornec)
Baseado em trabalhos do prof. Carlos A. Heuser
Observações sobre a definição de tabelas:
• Nos SGBD comerciais são oferecidos domínios adicionais aos do padrão (CHAR, VARCHAR, INTEGER, REAL,…)
• A cláusula NOT NULL especifica que uma coluna não admite o valor vazio (requerido para colunas que sejam chave primária)
• Default é NULL permitido (exceto Sybase e SQL/Server antigos) • As colunas de uma tabela são classificadas na ordem de sua definição (linhas não tem classificação)
Baseado