BANCO DE DADOS TABELAS SQL Professor Carlos Muniz BANCO DE DADOS TABELAS SQL Criando uma Tabela SINTAXE: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] <nome da tabela> ( <nome-atributo> <tipo-dado> [NULL | NOT NULL] [DEFAULT <default-value>] [AUTO_INCREMENT] [PRIMARY KEY] ) {ENGINE | TYPE}=engine_name AUTO_INCREMENT = value COMMENT='string' MAX_ROWS = value MIN_ROWS = value PACK_KEYS = {0 | 1 | default} ROW_FORMAT = {default | dynamic | fixed | compressed | redundant | compact } Professor Carlos Muniz [email protected] CREATE TABLE para especificar o layout de sua tabela: 2 BANCO DE DADOS TABELAS SQL Criando uma Tabela Professor Carlos Muniz [email protected] Vamos criar o banco baseado no DER abaixo: 3 BANCO DE DADOS TABELAS SQL Criando a Tabela 1 (TITULARES) Professor Carlos Muniz [email protected] CREATE TABLE TITULARES ( INSCRICAO INT UNIQUE AUTO_INCREMENT, NOME VARCHAR(50), ENDERECO VARCHAR(50), BAIRRO VARCHAR(30), CIDADE VARCHAR(30), UF VARCHAR(2)); 4 BANCO DE DADOS TABELAS SQL Criando a Tabela 1 (TITULARES) Professor Carlos Muniz [email protected] 5 BANCO DE DADOS TABELAS SQL Criando a Tabela 1 (TITULARES) * FOREIGN KEY – Chave estrangeira que se relaciona com a chave primária INSCRIÇÃO na tabela TITULARES Professor Carlos Muniz [email protected] CREATE TABLE DEPENDENTES( ID_DEP INT UNIQUE AUTO_INCREMENT, INSCRICAO INT, NOME VARCHAR(50), ENDERECO VARCHAR(50), BAIRRO VARCHAR(30), CIDADE VARCHAR(30), UF VARCHAR(2), FOREIGN KEY (INSCRICAO) REFERENCES TITULARES(INSCRICAO)); 6 BANCO DE DADOS TABELAS SQL Criando a Tabela 2 (DEPENDENTES) Professor Carlos Muniz [email protected] 7 BANCO DE DADOS TABELAS SQL Criando a Tabela 3 (FILMES) * FOREIGN KEY – Chave estrangeira que se relaciona com a chave primária INSCRIÇÃO na tabela TITULARES Professor Carlos Muniz [email protected] CREATE TABLE FILMES( ID_DVD INT UNIQUE AUTO_INCREMENT, NOME VARCHAR(50), GENERO VARCHAR(50), ARTISTA VARCHAR(30), ANO YEAR, RESPONSAVEL INT, FOREIGN KEY (RESPONSAVEL) REFERENCES TITULARES(INSCRICAO)); 8 BANCO DE DADOS TABELAS SQL Criando a Tabela 3 (FILMES) Professor Carlos Muniz [email protected] 9 BANCO DE DADOS TABELAS SQL Populando a Tabela Titulares Professor Carlos Muniz [email protected] INSERT INTO TITULARES (nome,endereco,bairro,cidade,uf) VALUES ('Claudio','Rua Samoa 71','Vila da Penha','Rio de Janeiro','RJ'), ('Martha','Rua Coronel Vieira 71','Iraja','Rio de Janeiro','RJ'), ('Anderson','Rua Leopoldina Seabra, 25','Bento Ribeiro','Rio de Janeiro','RJ'), ('Rogerio','Rua Capitao Teixeira','Realengo','Rio de Janeiro','RJ'), ('Adriana','Rua da Prata','Prata','Belford Roxo','RJ'), ('Milena','Rua Carlos Frahia 71','Centro','Nova Iguacu','RJ')); 10 BANCO DE DADOS TABELAS SQL Populando a Tabela Dependentes Professor Carlos Muniz [email protected] INSERT INTO DEPENDENTES (inscricao,nome,endereco,bairro,cidade,uf) VALUES (7,'Claudio','Rua Samoa 71','Vila da Penha','Rio de Janeiro','RJ'), (6,'Martha','Rua Coronel Vieira 71','Iraja','Rio de Janeiro','RJ'), (4,'Anderson','Rua Leopoldina Seabra, 25','Bento Ribeiro','Rio de Janeiro','RJ'), (11,'Rogerio','Rua Capitao Teixeira','Realengo','Rio de Janeiro','RJ'), (4,'Adriana','Rua da Prata','Prata','Belford Roxo','RJ'); 11 BANCO DE DADOS TABELAS SQL Populando a Tabela Filmes Professor Carlos Muniz [email protected] INSERT INTO FILMES (nome,genero,artista,ano) VALUES ('As Mil Palavras','Comedia','Eddie Murphy',2012), ('Roubo nas Alturas','Comedia','Eddie Murphy',2011), ('Shrek para sempre','Comedia','Eddie Murphy',2010), ('O Grande Dave', 'Comedia','Eddie Murphy',2008), ('Shrek Terceiro', 'Comedia','Eddie Murphy',2007), ('8 Mile Rua das Ilusoes', 'Drama','Eminem',2002), ('Rota de Fuga - 2013','Acao','Arnold Schwarzenegger',2013), ('O Homem do Futuro','Comedia','Wagner Moura',2011), ('Tropa de Elite','Acao','Wagner Moura',2007), ('Tropa de Elite2 - O inimigo agora e outro','Acao','Wagner Moura',2010); 12 BANCO DE DADOS TABELAS SQL Alterando a estrutura da tabela Professor Carlos Muniz [email protected] ALTER TABLE nome_tabela ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] MODIFY [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] CHANGE [COLUMN] nome_antigo_1 nome_novo_1 tipo_1 [{RIs}] [{, nome_antigo_n nome_novo_n tipo_n [{RIs}]}] DROP COLUMN nome_atributo_1 [{, nome_atributo_n }] [ADD|DROP] [PRIMARY KEY ...|FOREIGN KEY ...] 13 BANCO DE DADOS TABELAS SQL Alterando a estrutura da tabela ALTER TABLE ambulatorios ADD nome VARCHAR(30) ALTER TABLE medicos DROP PRIMARY KEY ALTER TABLE pacientes DROP COLUMN doenca, DROP COLUMN cidade Professor Carlos Muniz [email protected] Exemplos para alter table: ALTER TABLE funcionários ADD FOREIGN KEY(nroa) REFERENCES Ambulatórios ALTER TABLE funcionarios CHANGE COLUMN cic cpf INT(11) NOT NULL; 14 BANCO DE DADOS TABELAS SQL Alterando a estrutura da tabela Se a alteração desejada na verdade é a alteração do nome da tabela, deve-se utilizar o comando “rename” com a seguinte sintaxe: RENAME TABLE nome_atual_da_tabela TO novo_nome; Professor Carlos Muniz [email protected] ALTER TABLE TITULARES ADD Data_Nasc DATE; 15 BANCO DE DADOS TABELAS SQL Apagando uma tabela Assim como drop tatabase esse comado apagará a tabela com todo seu conteúdo. Professor Carlos Muniz [email protected] DROP TABLE nome_da_tabela; 16