Buscar

Aula Banco de Dados #2

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 33 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 33 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 9, do total de 33 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

SQL	–	Índices,	Constraints	e	DML	
Prof.	Me.	Sirlon	Thiago	
Índices	
• SGBDs	 u6lizam	 índices	 para	 eficiência	 na	
recuperação	dos	dados	do	BD	
• Índice	é	uma	estrutura	de	dados	
• Armazenados	 valores	 e	 ponteiros	
organizados	 de	 forma	 ascendente	 ou	
descendente	
Índices	
• Possível	localizar	rapidamente	as	linhas	de	
uma	tabela	nas	quais	o	valor	desejado	está	
armazenado	
• U6lização	 de	 índices	 é	 transparente	 ao	
usuário	do	SGBD	
Índices	-	Comando	
• CREATE	 [UNIQUE]	 INDEX	nome_indice	ON	
nome_tabela	(lista_de_colunas);	
• UNIQUE	u6lizado	quando	não	deve	haver	
registros	duplicados	no	índice	
• Um	 índice	 único	 é	 automa6camente	
criado	 quando	 uma	 coluna	 é	 definida	
como	chave	primária	
Índices	-	Exemplo	
•  C r i a r 	 u m 	 í n d i c e 	 c h a m a d o	
produto_desc_prod_idx	 sobre	 a	 coluna	
desc_prod	da	tabela	produto.	
• CREATE	 INDEX	produto_desc_prod_idx	on	
produto	(desc_prod);	
Índices	-	Exemplo	
• Cr ia r	 um	 índ i ce	 ún i co	 chamado	
cliente_nome_cli_idx	 sobre	 a	 coluna	
nome_cli	da	tabela	cliente.	
• CREATE	UNIQUE	INDEX	
cliente_nome_cli_idx	ON	cliente	
(nome_cli);	
Índices	-	Exemplo	
• Cr ia r	 um	 índ i ce	 ún i co	 chamado	
pedido_num_ped_cd_vend_idx	 sobre	 as	
colunas	 num_ped	 e	 cd_vend	 da	 tabela	
pedido.	
• CREATE	UNIQUE	INDEX	
pedido_num_ped_cd_vend_idx	on	pedido	
(num_ped,cd_vend);	
Índices	-	Eliminando	
• Para	 eliminar	 um	 índice	 u6lizados	 o	
comando	
• DROP	INDEX	nome_indice;	
Índices	-	Exemplo	
• Eliminar	os	índices	criados	acima:	
• DROP	INDEX	produto_desc_prod_idx;	
• DROP	INDEX	cliente_nome_cli_idx;	
• DROP	INDEX	
pedido_num_ped_cd_vend_idx;	
CONSTRAINTS	
Constraints	
• Restrição	é	semelhante	a	um	índice	
• Possa	 ser	 u6lizada	 para	 estabelecer	 uma	
relação	com	uma	outra	tabela	
• Cláusula	 CONSTRAINT	 nas	 instruções	
ALTER	TABLE	e	CREATE	TABLE	
• Restrição	em	um	campo	único	ou	em	mais	
de	um	campo	
Constraints	
• Tipos	de	Constraint:	
•  CHECK	–	Verifica	se	os	valores	de	uma	coluna	
obedecem	a	uma	restrição	
•  NOT	 NULL	 –	 Garante	 que	 não	 hajam	 valores	
nulos	em	uma	coluna	
•  UNIQUE	 –	 Garante	 que	 os	 registros	 de	 uma	
coluna	 ou	 combinação	 de	 colunas	 sejam	
únicos	
Constraints	
• Tipos	de	Constraint:	
•  PR IMARY	 KEY	 –	 Chave s	 p r imá r i a s ,	
iden6ficadores	únicos.	Não	nulas,	sequenciais,	
auto	incrementáveis.	
•  FOREIGN	 KEY	 –	 Chaves	 estrangeiras.	 Ligação	
de	uma	tabela	com	outra.	
Constraints	-	Exemplo	
• Criar	 uma	 constraint	 que	 garanta	 a	 inserção	
de	preços	maiores	que	zero	em	uma	tabela:	
	CREATE	TABLE	produto	(	
	 	id_produto	integer,	
			 	 	nome	text,	
				 	 	preco	numeric	CHECK	(preco	>	0)	
	);	
Constraints	-	Exemplo	
•  Criar	 uma	 constraint	 que	 garanta	que	o	preço	 com	
desconto	 seja	 sempre	 menor	 que	 o	 preço	 do	
produto:	
	CREATE	TABLE	produto	(	
			 	id_produto	integer,	
				 	nome	text,	
				 	preco	numeric	CHECK	(preco	>	0),	
				 	preco_desconto	numeric	CHECK	
(preco_desconto	>	0),	
					 	CHECK	(preco	>	preco_desconto)	
	);	
Constraints	-	Exemplo	
• Criar	 uma	 chave	 estrangeira	 entre	 duas	
tabelas:	
	CREATE	TABLE	pedido	(	
	 	pedido_id	SERIAL	PRIMARY	KEY,	
	 	produto_id	integer	REFERENCES	
produto	(produto_id),	
	 	quan6dade	integer	
);	
Constraints	-	Exemplo	
•  Criar	 uma	 chave	 estrangeira	 nomeada	 entre	
duas	tabelas:	
	CREATE	TABLE	pedido	(	
	 	pedido_id	SERIAL	PRIMARY	KEY,	
	 	produto_id	integer,	
	 	quan6dade	integer,	
	 	CONSTRAINT	g_pedido_produto	FOREIGN	
KEY	(produto_id)	REFERENCES	produto	(produto_id)	
);	
DML	–	INSERT	E	UPDATE	
Insert	
• Adiciona	 um	 ou	 mais	 registros	 em	 uma	
tabela	
• INSERT	INTO	tabela	(campo1	[,	
campo2,	...])	VALUES	(valor1	[,	valor2,	...]);	
Insert	-	Exemplo	
• Inserir	um	registro	na	tabela	produto	
INSERT	INTO	produto	VALUES	(1,	’Queijo',	
9.99);	
• Nota:	quando	as	colunas	da	tabela	não	são	
especificadas,	 deve-se,	 obrigatoriamente,	
fornecer	 os	 va lores	 das	 co lunas	
obedecendo	a	ordem	delas.	
Insert	-	Exemplo	
• Inserir	um	registro	na	tabela	produto	
INSERT	INTO	produto	(produto_id,	nome,	
preco)	VALUES	(1,	’Queijo',	9.99);	
	
INSERT	INTO	produto	(nome,	preco,	
produto_id)	VALUES	(’Queijo',	9.99,	1);	
Insert	-	Exemplo	
• Inserir	vários	registros	na	tabela	produto	
INSERT	INTO	produto	(produto_id,	nome,	
preco)	VALUES	
	(1,	’Queijo',	9.99),	
	(2,	’Pão',	1.99),	
	(3,	’Leite',	2.99);	
Update	
• Altera	 valores	 de	 campos	 em	 uma	 tabela	
especificada,	 com	 base	 em	 critérios	
especificados.	
• UPDATE	tabela	SET	valor	WHERE	criterios;	
Update	-	Exemplo	
• Atualizar	 o	 nome	 do	 produto	 que	 possui	
iden6ficador	igual	a	1:	
UPDATE	produto	SET	nome	=	‘Queijo	Suíço’	
WHERE	produto_id	=	1;	
Update	-	Exemplo	
• Atualizar	 nome	 e	 preço	 do	 produto	 que	
possui	iden6ficador	igual	a	2:	
UPDATE	produto	SET	nome	=	‘Pão	Francês’,	
preco	=	2.99	WHERE	produto_id	=	2;	
Update	-	Exemplo	
• Atualizar	nome	“Drama”	para	“Dramá6co”	
na	tabela	filme:	
UPDATE	 filme	 SET	 genero	 =	 ’Dramá6co'	
WHERE	genero	=	'Drama';	
Delete	
• Remove	 registros	 de	 uma	 tabela	
sa6sfazendo	aos	critérios	estabelecidos.	
• DELETE	FROM	tabela	WHERE	criterios;	
Delete	-	Exemplo	
• Excluir	todos	os	produtos	com	preço	maior	
que	2,99.	
DELETE	FROM	produto	WHERE	preco	>	2.99;	
Delete	-	Exemplo	
• Excluir	o	produto	com	iden6ficador	igual	a	
1.	
DELETE	FROM	produto	WHERE	produto_id	=	1;	
Delete	-	Exemplo	
• Limpar	a	tabela	filme:	
DELETE	FROM	filme;	
Delete	-	Exemplo	
• Excluir	 todos	 os	 filmes	 do	 gênero	
“Musical”	
DELETE	FROM	filme	WHERE	genero	=	'Musical';	
Delete	-	Exemplo	
• Excluir	 todos	 os	 filmes	 EXCETO	 os	 do	
gênero	“Musical”	
DELETE	FROM	filme	WHERE	genero	<>	'Musical';	
Exercícios	
• Criar	 as	 chaves	 estrangeiras	 das	 tabelas	 dos	
exercícios	 da	 úl6ma	 aula	 (Biblioteca	 e	
Holliwud).	
•  Inserir,	pelo	menos,	um	valor	em	cada	tabela.	
• Alterar	o	 valor	 de,	 no	mínimo,	 três	 registros	
em	três	tabelas	diferentes.	
• Excluir,	 no	 mínimo,	 três	 registros	 de	 três	
tabelas	diferentes.	
• Procurar	 u6lizar	 diferentes	 critérios	 nas	
alterações	e	exclusões.

Outros materiais