Você está na página 1de 10

LPBD / EBD

Instruções DDL

Objetos de Banco de Dados

Objeto Descrição
Tabela Unidade básica de armazenamento;
composta de linhas
View Representa logicamente subconjuntos de
dados de uma ou mais tabelas
Índice Melhora o desempenho de algumas
consultas

1
Regras de Nomeação

Os nomes de tabelas e colunas:


• Devem começar com uma letra
• Devem ter de 1 a 30 caracteres
• Devem conter apenas os caracteres A a Z, a a z, 0 a
9, _, $ e #
• Não devem ter duplicidade
• Não devem ser palavras reservadas do servidor do
SGBD

Instrução CREATE TABLE

• Você deve ter:


– O privilégio CREATE TABLE
– Uma área de armazenamento
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);

• Especifique:
– O nome da tabela
– O nome, o tipo de dados e o tamanho da coluna

2
Fazendo Referência a Tabelas de Outro Usuário

• As tabelas pertencentes a outros usuários não estão


contidas no esquema do usuário.
• Use o nome do proprietário como prefixo dessas
tabelas.

USERA USERB
SELECT * SELECT *
FROM userB.employees1; FROM userA.employees2;

Criando Tabelas

• Crie a tabela.
CREATE TABLE dept
(deptno INTEGER,
dname VARCHAR(14),
loc VARCHAR(13),
create_date DATE);
Table created.
• Confirme a criação da tabela.
DESCRIBE dept

3
Tipos de Dados

Tipos de Dados

Observações:
● 'M' – Número de caracteres.
● 'D' – Precisão, em casas após a vírgula.

4
Incluindo Constraints
• As constraints impõem regras no nível da tabela.

• Tipos de constraints (MAIS USUAIS):


– NOT NULL
– UNIQUE
– PRIMARY KEY
– CHECK

Constraint NOT NULL

Garante que a coluna não aceite valores nulos:

Constraint NOT NULL Constraint Ausência da


(Nenhuma linha desta NOT NULL constraint NOT NULL
coluna pode conter (Qualquer linha desta
um valor nulo.) coluna pode conter
um valor nulo.)

5
Constraint UNIQUE (Sem Duplicidade)

Constraint UNIQUE
EMPLOYEES


INSERT INTO

Permitido
Não permitido:
já existe

Constraint PRIMARY KEY

DEPARTMENTS
PRIMARY KEY


Não permitido INSERT INTO
(valor nulo)

Não permitido
(já existe o valor 50)

6
Definindo Constraints
CREATE TABLE employees(
employee_id INTEGER PRIMARY KEY,
first_name VARCHAR(20),
...);

CREATE TABLE employees(


employee_id INTEGER PRIMARY KEY,
last_name VARCHAR(25) NOT NULL,
email VARCHAR(25) UNIQUE,
salary FLOAT(8,2),
commission_pct FLOAT(4,2),
hire_date DATE NOT NULL)

Constraint CHECK
• Define uma condição que cada linha deve atender
(não funciona no MySQL, mas o mesmo aceita a instrução –
Compatibilidade)

..., salary FLOAT(8,2)CHECK (salary > 0),...

..., estado VARCHAR(4) CHECK


(estado in (‘BH’,’DF’,’SP’,’PR’,’RS’,…,’TO’)),...

7
Criando uma Tabela
com uma Subconsulta

CREATE TABLE dept80


AS
SELECT employee_id, last_name,
salary*12 ANNSAL,
hire_date
FROM employees
WHERE department_id = 80;
Table created.

DESCRIBE dept80

Eliminando uma Tabela

• A estrutura e os dados da tabela são deletados.


• As transações pendentes são submetidas a commit.
• Todos os índices são eliminados.
• Todas as constraints são eliminadas.
• Não é possível fazer rollback da instrução
DROP TABLE.
DROP TABLE dept80;
Table dropped.

8
Adicionando uma Coluna

• Use a cláusula ADD para adicionar colunas.


ALTER TABLE dept80
ADD job_id VARCHAR(9);
Table altered.

• A nova coluna será a última coluna.

Modificando uma Coluna

• Você pode alterar o tipo de dados, o tamanho e o


valor default de uma coluna.
ALTER TABLE dept80
MODIFY last_name VARCHAR(30);
Table altered.

• Cuidado com os tipos de dados (principalmente para


tabelas preenchidas).

9
Eliminando uma Coluna

Use a cláusula DROP COLUMN para eliminar da tabela


as colunas que não são mais necessárias.

ALTER TABLE dept80


DROP job_id;
Table altered.

10

Você também pode gostar