Buscar

Insert Table

Prévia do material em texto

Banco de Dados II
Profª Priscilla Braz
(pbraz@unicarioca.edu.br)
ROTEIRO DE AULA
• Comandos de Definição de Dados (DDL)
• Create table (revisão)
• Insert table
• Drop table
• Alter table
OBJETIVO DA AULA
Compreender os comandos para a criação,
inserção, remoção e alteração de tabelas.
Criando a base de dados
CREATE Schema
Criando a base de dados
CREATE Schema
Criando a base de dados
CREATE Schema
Criando tabelas
CREATE TABLE
Esse comando SQL especifica uma nova relação da
base de dados através da definição do seu nome e da
especificação de cada um dos seus atributos com seus
respectivos tipos de dados.
Sintaxe:
CREATE TABLE NOME_TABELA(
campo1 TIPO_DE_DADO, OPÇÕES
campo2 TIPO_DE_DADO, OPÇÕES
campo3 TIPO_DE_DADO, OPÇÕES
...);
Criando tabelas
As opções são algumas palavras chaves que determinam
algumas características do campo:
NOT NULL - campo não pode ser nulo, ou seja, não pode estar em
branco;
AUTO_INCREMENT - se deixarmos o campo em branco, o MySQL
automaticamente o preencherá com um inteiro uma unidade maior que
o valor máximo já existente. Deve ser usado com o tipo de dado inteiro e
só pode haver um campo destes em cada tabela. Campos marcados com
esta opção devem ser indexados;
PRIMARY KEY - define o campo como chave primária. Os dados inseridos
neste campo devem ser únicos e eles são automaticamente indexados;
UNSIGNED - significa que o valor só pode ter valor positivo ou zero.
Usado com dados do tipo inteiro.
Modelo Conceitual
l
Criando tabelas
CREATE TABLE CLIENTE(
codigo_cliente smallint not null PRIMARY KEY,
nome_cliente varchar(20),
endereco varchar(30),
cidade varchar(15),
CEP varchar(8),
UF varchar(2),
cpf varchar(20),
id varchar(20));
Criando tabelas
CREATE TABLE VENDEDOR(
codigo_vendedor smallint not null, nome_vendedor
varchar(20),
salario_fixo decimal(12,2),
faixa_comissao char,
PRIMARY KEY (codigo_vendedor)
);
Criando tabelas
CREATE TABLE PEDIDO (
num_pedido int not null PRIMARY KEY,
prazo_entrega smallint not null,
codigo_cliente smallint not null,
codigo_vendedor smallint not null,
FOREIGN KEY (codigo_cliente)
REFERENCES CLIENTE(codigo_cliente),
FOREIGN KEY (codigo_vendedor)
REFERENCES
VENDEDOR(codigo_vendedor) );
Criando tabelas
CREATE TABLE PRODUTO
( codigo_produto smallint not null PRIMARY KEY,
unidade varchar(3),
descricao varchar(30),
val_unit decimal(12,2)
);
Criando tabelas
CREATE TABLE ITEM_DO_PEDIDO
(
num_pedido int not null , codigo_produto
smallint not null , quantidade decimal,
FOREIGN KEY (num_pedido)
REFERENCES PEDIDO(num_pedido),
FOREIGN KEY (codigo_produto)
REFERENCES PRODUTO(codigo_produto),
PRIMARY KEY (num_pedido , codigo_produto) );
Criando tabelas
Alternativa para a criação de tabelas
Inserindo dados nas tabelas
Para inserir dados numa tabela use o comando:
INSERT into TABELA (CAMPO1, CAMPO2, ... , CAMPOn)
VALUES (VALOR1, VALOR2, ... , VALORn);
INSERT into TABELA VALUES (VALOR1, VALOR2, ...
,VALORn);
Inserindo dados nas tabelas
Tabela Cliente
INSERT INTO CLIENTE VALUES (1, "Carlos Alberto", "Rua da Paz,
12", "Rio", "20000", "RJ", "0101010", "02020");
INSERT INTO CLIENTE VALUES (2,"Luis Eduardo", "Rua do Sol,
102", "Rio", "20000", "RJ", "454545", "02021");
INSERT INTO CLIENTE VALUES (3, "Alan Silva", "Rua da Alegria,
12", "São Paulo", "11000", "SP", "686879", "02020"); INSERT
INTO CLIENTE VALUES (4, "Carlos Neves", "Rua do Sol, 212",
"São Paulo", "11000", "SP", "686878",null);
Inserindo dados nas tabelas
Tabela Vendedor
INSERT INTO VENDEDOR VALUES (10, "João Carlos", 200.00, "A");
INSERT INTO VENDEDOR VALUES (20,"Luis Pedro", 300.00, "B");
INSERT INTO VENDEDOR VALUES (30,"Luis Lemos", 350.00, "A");
Inserindo dados nas tabelas
Tabela Produto
INSERT INTO PRODUTO VALUES (100,"un", "Leite em pó", 3.00);
INSERT INTO PRODUTO VALUES (200, "kg", "Queijo", 12.00);
INSERT INTO PRODUTO VALUES (300,"un", "Macarrão", 4.00);
INSERT INTO PRODUTO VALUES (400,"lt", "Suco laranja", 2.00);
INSERT INTO PRODUTO VALUES (500,"un", "Chocolate", 5.00);
Inserindo dados nas tabelas
Tabela Pedido
INSERT INTO PEDIDO VALUES (1000, 10, 1, 10);
INSERT INTO PEDIDO VALUES (2000, 20, 1, 20);
INSERT INTO PEDIDO VALUES (3000, 15, 2, 10);
Inserindo dados nas tabelas
Tabela Item_do_Pedido
INSERT INTO ITEM_DO_PEDIDO VALUES (1000, 100, 10);
INSERT INTO ITEM_DO_PEDIDO VALUES (1000, 200, 20);
INSERT INTO ITEM_DO_PEDIDO VALUES (1000, 300, 15);
INSERT INTO ITEM_DO_PEDIDO VALUES (2000, 300, 40);
INSERT INTO ITEM_DO_PEDIDO VALUES (2000, 400, 10);
INSERT INTO ITEM_DO_PEDIDO VALUES (2000, 500, 5);
INSERT INTO ITEM_DO_PEDIDO VALUES (3000, 500, 5);
Conferindo...
Faça consultas para cada tabela para conferir a
inserção dos dados.
Removendo uma tabela
Drop table
Faz a remoção de uma relação(tabela) com a sua
definição.
Após a remoção, a relação não poderá mais ser usada
em consultas, modificações, ou qualquer outro
comando, já que sua descrição não existe mais.
Removendo uma tabela
Drop table
Sintaxe:
Drop table NOME_TABELA;
Drop table departamento;
Modificando uma tabela
Alter table
Permite alterar informações da tabela, bem como
adicionar campos.
Modificando uma tabela
Alter table
ALTER TABLE tableName
{ADD [COLUMN] columnName columnDefinition}
{CHANGE|MODIFY [COLUMN] columnName
columnDefinition
{SET DEFAULT columnDefaultValue} | {DROP
DEFAULT}} {DROP [COLUMN] columnName
[RESTRICT|CASCADE]} {ADD tableConstraint}
{DROP tableConstraint [RESTRICT|CASCADE]}
Modificando uma tabela
Alter table
Adição de campos:
alter table cliente
add column dt_Nasc Date;
Remoção de campos:
alter table cliente drop dt_Nasc;
Modificando uma tabela
Alter table
Alteração de nome coluna:
alter table cliente
change id rg varchar(15);
Alteração de tipo de dado da coluna:
alter table item_do_pedido
modify quantidade INT;
Modificando uma tabela
Alter table
Renomear uma tabela
RENAME table cliente TO clientes
Adicionar uma Chave Primária (PK)
ALTER TABLE <tabela> ADD
PRIMARY(coluna)
Modificando uma tabela
Alter table
Adicionando uma foreign key
ALTER TABLE pedido
ADD constraint fk_pedido_cliente foreign key
(codigo_cliente) references cliente (codigo_cliente) on delete
cascade;
Remover uma foreign key
ALTER TABLE pedido
DROP foreign key fk_pedido_cliente;
Exercícios
Construa uma base de dados com suas tabelas, considerando o esquema a
seguir.
• Paciente(CodPac,NomePac,DataNascPac)
• Internação(CodPac,NumeroIntern,DataHoraBaixa,DataHoraAlta)
CodPac referencia Paciente
• Leito (NoLeito,CodigoQuarto,TipoLeito)
• OcupaLeito(CodPac,NumeroIntern,NoLeito,DataHoraInic, DataHoraFim)
(CodPac,NumeroIntern) referencia Internação
NoLeito referencia Leito
• Parto(CodPacBebe,NumeroInternBebe,HoraNasc,TipoParto,CodPacMae,N
umeroInternMae)
(CodPacBebe,NumeroInternBebe) referencia Internação
(CodPacMae,NumeroIntern) referencia Internação
/* tabela de partos - CodPacBebe é o código de paciente recém nascido (bebê) -
CodPacMae é o código de paciente da mãe. Para cada um deles há uma internação.
*/
Exercícios
Após a construção da base de dados anterior, você
deve popular as tabelas do banco de dados. Usando
corretamente o comando de inserção, inclua pelo
menos 5 elementos em cada tabela.
Após isso, faça as consultas correspondentes para
verificar as inserções.
Restrições de integridade
As restrições de integridade resguardam o Banco de
Dados contra danos acidentais, assegurando que
mudanças feitas por usuários autorizados não
resultem na perda de consistência de dados.
Restrições de integridade
Integridade Referencial
Assegura que um valor que aparece em uma relação
(tabela) para um determinado conjunto de atributos
apareça em outro conjunto de atributos em outra
relação (tabela).
Restrições de integridade
Integridade Referencial
Para trabalharmos com integridade referencial, isto é,
para adicionarmos restrições de integridade
(constraints) às chaves estrangeiras, é necessário criar
as tabelas como InnoDB.
Restrições de integridade
Integridade ReferencialO InnoDB implementa as restrições de integridade
CASCADE, RESTRICT, SET NULL e SET DEFAULT.
• CASCADE: ao se remover um registro da tabela
referenciada pela chave estrangeira, os registros
relacionados àquele removido serão eliminados em
todas as tabelas relacionadas.
• RESTRICT: não permite a remoção de registros que
possuam relacionamentos em outras tabelas.
Restrições de integridade
Integridade Referencial
• Os dois últimos atribuem os valores DEFAULT ou
NULL para as chaves estrangeiras cujos registros
relacionados foram excluídos.
Restrições de integridade
Integridade Referencial
• Exemplo:
CREATE TABLE aluno (
id INT NOT NULL PRIMARY KEY,
nome CHAR(30) NOT NULL
) TYPE=InnoDB;
CREATE TABLE cursos (
id INT NOT NULL PRIMARY KEY,
nome CHAR(30) NOT NULL
) TYPE=InnoDB;
Restrições de integridade
Integridade Referencial
• Exemplo:
CREATE TABLE notas (
aluno_id INT NOT NULL,
cursos_id INT NOT NULL,
date DATE NOT NULL,
nota DOUBLE NOT NULL,
PRIMARY KEY(aluno_id, cursos_id, date),
INDEX i2 (cursos_id),
FOREIGN KEY (aluno_id) REFERENCES aluno(id) ON DELETE CASCADE,
FOREIGN KEY (cursos_id) REFERENCES cursos(id) ON DELETE RESTRICT
) TYPE=InnoDB;
DÚVIDAS?

Continue navegando

Outros materiais