Buscar

Aula no SQL - Fonte Prof Neri -Revisão comandos e Novos FK ON DELETE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

FIC – Estácio Ceará
Profa Josyane Lannes
Fonte: www.informaticon.com.br (contribuição Prof Nery)
SQL SERVER
Os comandos SQL servem para os bancos:
Postgree
FireBird
Melhores:
SQL Server
Oracle
Dicas - Complementares:
Create database cadastro;
Create table Funcionario
	(cod int primary key identity (1,1), - - autoincremental (comentário simples)
	Nome varchar (20),
	Sobrenome varchar (30),
	Idade int,
	Profissao varchar (40)
	);
/* Primary Key cria a chave primária da tabela
Foreign Key efetua ligação entre tabelas. É um campo da tabela atual que indica um campo chave de outra tabela.
*/ (comentário maior)
1_ Create database locadora
Tabela Clientes				Tabela Cidades
Cli_codigo				Cid_codigo	
Cli_nome				Cid_nome
Cli_cidade
Cli_sexo
Cli_email
Cli_codcid
Obs: Para criar as tabelas, uma boa prática é sempre começar pelas tabelas simples, ou seja, aquelas que não possuem chave estrangeira.
Para que criarmos chaves estrangeiras...
* Manter a consistência do banco de dados
* Para criação de índices, na qual estaremos vendo adiante.
* Para otimização do banco de dados.
* Para facilitar a manutenção.
Criando tabela com chave primária
Create table Cidades
(
Cid_codigo integer not null,
Cid_nome varchar (30)
Primary Key (Cid_codigo)
);
Create table cliente
(
Cli_codigo integer not null,
Cli_nome varchar (30),
Cli_cidade varchar (20),
Cli_sexo char (1),
Cli_email varchar (30),
Primary key (Cli_codigo)
);
SHIFT + F5 para dar refresh
Para adicionar chave estrangeira ao Banco de Dados LOCADORA Sem constraint
ALTER table Clientes
	ADD foreign key (cli_codcid)
	References cidades (cid_codigo);
Não pode criar FK quando existem dados dentro dele, porque ela serve para relacionar tabelas, mantendo uma segurança. Apenas quando estiver vazio para evitar erros no banco.
Se a tabela clientes estiver cheia, faça: DELETE from Clientes;
Para adicionar chave estrangeira ao Banco de Dados LOCADORA Com constraint
ALTER table Clientes
	ADD CONSTRAINT chave_estrang_cidade for
Foreign key (cli_codcid)
	References cidades (cid_codigo);
Obs: CONSTRAINT é usada para chave composta.
Observe que a chave estrangeira foi renomeada para chave_estrang_cidade
AGORA ESTÁ CRIADO O RELACIONAMENTO ENTRE CLIENTES-CIDADES
Se precisar apagar uma FK faça:
ALTER table Clientes
	DROP foreign key 
	Chave_estrang_cidades;
OBS: Integridade 0 (zero) sem a FK!
Agora que o Banco está integrado, tente inserir os campos de CLIENTES, mas antes insira os campos de CIDADE.
Por que.....
Depois tente....
1 – Tente excluir uma cidade
2 – Tente inserir um registro em cliente com uma cidade que não existe
Assim você verá que vale a pena criar integridade!!!
Propriedade das TABELAS (RESTRICT ou CASCADE) cascade é perigoso para deleção, pois apaga tudo em cascata
ON DELETE
ON UPDATE
Vamos retirar chave estrangeira
ALTER Table clientes 
	DROP foreign key chave_estrang_cidade;
Então teste alterar Cli_codcidade
e você CONSEGUE!!! Porque está sem integridade nas tabelas!
Criando novamente chave estrangeira com o RESTRICT
ALTER table Clientes
ADD constraint chave_estrang_cidade
Foreign key (cli_codcid)
References cidades (cid_codigo)
On delete RESTRICT
On update RESTRICT 
Exercício no SQL Server Management Studio
Criando DB no SQL Server Management Studio (ver site planeta virtual)
Criar banco de dados DB e a Tabela Cadastro com os campos ID, Nome, Sobrenome, Idade, Profissao
Depois selecione e execute (vc terá o feedback do banco e tabela criados)
Agora insira dados (o ID não precisa inserir, e comece do nome)
Crie outra tabela, por exemplo, Cidade.
Agora crie a chave estrangeira
Ex:
Alter table clientes
	Add foreign key (cli_codcid) 
references cidades (cid_codigo)
Obs: se vc já tiver dados dentro da tabela não conseguiras crias as chaves estrangeiras para evitar erros no teu banco!
Primeiro elimine o conteúdo das tabelas (para conseguir criar FK)
Fonte: http://informaticon.com.br/site/mod/resource/view.php?id=14

Outros materiais