Curso SI/CC/Engenharia da Computao/REDES DE COMPUTADORES
Disciplina Fundamentos de Banco de Dados Perodo Letivo 2013.2 Professor(es) Daniela Araujo
Exerccios de SQL DDL (create, drop, alter)
1) Entre na mquina virtual XP da professora DANIELA 2) Entre no painel de controle do XAMPP e inicie o servidor do MySQL (se no estiver rodando ainda) 3) Utilize o MySQL Workbench 4) Na rea SQL Development do Workbench abra uma conexo com o banco para trabalhar com comandos SQL.
5) Crie um novo banco de dados e chame-o de biblioteca: clique com boto direito em Create Schema, escreva o nome para ela biblioteca e pressione o boto Apply, em seguida outro Apply, Finish e Close. (Em algumas verses no com o boto direito, mas um cone amarelo com um + na barra de ferramentas)
6) Na lista dos esquemas criados, lado esquerdo, localize o banco que acabou de criar, se no estiver aparecendo clique com o boto direito e escolha Refresh All. Clique com o boto direito no seu banco e escolha Set As Default Schema.
7) Na aba que est inicialmente com o nome Query 1 escreva os comandos de SQL que precisar. Voc pode abrir vrias abas clicando no cone
8) Para executar o comando que digitar pressione no cone do raio . 9) Leia com ateno as mensagens de erro. Muitas vezes erramos ortografia!!! 10) Agora vamos prtica. 11) Baseie-se no DER a seguir:
12) Crie a tabela classificacao. CREATE TABLE CLASSIFICACAO (IDCLASSIFICACAO INT NOT NULL AUTO_INCREMENT PRIMARY KEY, NOME VARCHAR(50) NOT NULL ); 13) Abra uma nova aba e crie a tabela livro.
CREATE TABLE LIVRO (IDLIVRO INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY, NOME VARCHAR(100) NOT NULL, IDCLASSIFICACAO INT NOT NULL,
CONSTRAINT FK_LIVRO FOREIGN KEY(IDCLASSIFICACAO) REFERENCES CLASSIFICACAO(IDCLASSIFICACAO) ); 14) Abra uma nova aba e crie a tabela autor. CREATE TABLE AUTOR (IDAUTOR INT NOT NULL AUTO_INCREMENT PRIMARY KEY, NOME VARCHAR(45) NOT NULL ); 15) Abra uma nova aba e crie a tabela exemplar sem definir a chave estrangeira. CREATE TABLE EXEMPLAR (IDEXEMPLAR INT NOT NULL AUTO_INCREMENT PRIMARY KEY, EDICAO INT(2), EDITORA VARCHAR(50), ANO INT(4), LIVRO_IDLIVRO INT(5) NOT NULL ); 16) Abra uma nova aba e crie a tabela livro_has_autor. CREATE TABLE LIVRO_HAS_AUTOR (LIVRO_IDLIVRO INT(5) NOT NULL, AUTOR_IDAUTOR INT NOT NULL,
CONSTRAINT PK_LA1 PRIMARY KEY(LIVRO_IDLIVRO, AUTOR_IDAUTOR), CONSTRAINT FK_LA1 FOREIGN KEY(LIVRO_IDLIVRO) REFERENCES LIVRO(IDLIVRO), CONSTRAINT FK_LA2 FOREIGN KEY(AUTOR_IDAUTOR) REFERENCES AUTOR(IDAUTOR), ); 17) Abra uma nova aba e tente excluir a tabela classificacao sem cascade. DROP TABLE CLASSIFICACAO; no deve ter conseguido fazer a excluso porque est vinculada a tabela livro. 18) Abra uma nova aba e tente excluir a tabela exemplar. DROP TABLE EXEMPLAR; 19) Recrie a(s) tabela(s) excluda(s). 20) Altere a tabela autor para que o campo nome seja um varchar(60) com no nulo. ALTER TABLE AUTOR MODIFY NOME VARCHAR(60) NOT NULL; 21) Altere a tabela exemplar para acrescentar a definio da chave estrangeira livro_idlivro. ALTER TABLE EXEMPLAR ADD CONSTRAINT FK_EXEMPLAR1 FOREIGN KEY(LIVRO_IDLIVRO) REFERENCES LIVRO(IDLIVRO); 22) Altere a tabela livro para acrescentar o campo capa como varchar(50) que no um campo obrigatrio. ALTER TABLE LIVRO ADD CAPA VARCHAR(50);