Implementação do banco de dados de Sistema Rodoviário usando comandos em SQL pg.1 Disciplina de Banco de Dados Profº Christien Rachid Aluno: Bruno Julio Costichi 1º Comandos para criar as tabelas, as chaves primárias e estrangeiras e relacioná-las: CREATE TABLE Funcionarios ( fun_numero_matricula INTEGER NOT NULL, fun_nome VARCHAR2(20) NULL, fun_funcao VARCHAR2(20) NULL, fun_endereco VARCHAR2(20) NULL, rod_codigo VARCHAR2(20) NULL ); ALTER TABLE Funcionarios ADD ( PRIMARY KEY (fun_numero_matricula) ) ; CREATE TABLE Posto_Policial ( pol_codigo pol_descrição pol_logradouro pol_numero_agentes rod_codigo ); INTEGER NOT NULL, VARCHAR2(20) NULL, VARCHAR2(20) NULL, INTEGER NULL, VARCHAR2(20) NULL ALTER TABLE Posto_Policial ADD ( PRIMARY KEY (pol_codigo) ) ; CREATE TABLE Rodovias ( rod_codigo rod_denominacao rod_tamanho ); VARCHAR2(20) NOT NULL, VARCHAR2(20) NOT NULL, VARCHAR2(20) NULL ALTER TABLE Rodovias ADD ( PRIMARY KEY (rod_codigo) ) ; ALTER TABLE Funcionarios ADD ( FOREIGN KEY (rod_codigo) REFERENCES Rodovias ON DELETE SET NULL ) ; ALTER TABLE Posto_Policial ADD ( FOREIGN KEY (rod_codigo) REFERENCES Rodovias ON DELETE SET NULL ) ; 2º Inserindo a massa de dados: insert into rodovias values (1,'Via Dutra','1550'); insert into rodovias values (2,'Via Fernão Dias','1350'); insert into rodovias values (3,'Serra do Mar','850'); insert into rodovias values (4,'Rodovia Rio/Bahia','1850'); 6º período 2º semestre 2007 Implementação do banco de dados de Sistema Rodoviário usando comandos em SQL pg.2 Disciplina de Banco de Dados Profº Christien Rachid Aluno: Bruno Julio Costichi insert into funcionarios values (1,'Zé','vigia','rua das flores','2'); insert into funcionarios values (2,'Zé maria','vigia','rua das dores','1'); insert into funcionarios values (3,'Jão Maria','vigia','rua das dolores','3'); insert into funcionarios values (4,'Pedro Mario','vigia','rua das cores','4'); insert into funcionarios values (5,'Jose Pedro','servente','rua col alberto','4'); insert into funcionarios values (6,'Mario Pedro','servente','rua roberto','2'); insert into posto_policial values (1,'23ºBPM','rua roberto',4,'2'); insert into posto_policial values (2,'234ºBPM','rua RONDONIA',32,'1'); insert into posto_policial values (3,'34ºBPM','rua Amapa',15,'2'); insert into posto_policial values (4,'104ºBPM','rua Macapa',25,'4'); 3º Realizando algumas consultas: select* from posto_policial; retorna: POL_CODIGO POL_DESCRIÇÃO POL_LOGRADOURO POL_NUMERO_AGENTES ROD_CODIGO 1 23ºBPM rua roberto 4 2 2 234ºBPM rua RONDONIA 32 1 3 34ºBPM rua Amapa 15 2 4 104ºBPM rua Macapa 25 4 select* from funcionarios; retorna: FUN_NUMERO_MATRICULA 1 2 3 4 5 6 6º período FUN_NOME Zé Zé maria Jão Maria Pedro Mario Jose Pedro Mario Pedro FUN_FUNCAO vigia vigia vigia vigia servente servente 2º semestre FUN_ENDERECO ROD_CODIGO rua das flores 2 rua das dores 1 rua das dolores 3 rua das cores 4 rua col alberto 4 rua roberto 2 2007 Implementação do banco de dados de Sistema Rodoviário usando comandos em SQL pg.3 Disciplina de Banco de Dados Profº Christien Rachid Aluno: Bruno Julio Costichi select r.rod_denominacao, f.fun_nome, f.fun_funcao from funcionarios f,rodovias r where f.rod_codigo = r.rod_codigo; retorna: ROD_DENOMINACAO Via Fernão Dias Via Dutra Serra do Mar Rodovia Rio/Bahia Rodovia Rio/Bahia Via Fernão Dias FUN_NOME Zé Zé maria Jão Maria Pedro Mario Jose Pedro Mario Pedro FUN_FUNCAO Vigia Vigia Vigia Vigia Servente Servente 4º Realizando alterações: alter table "POSTO_POLICIAL" rename column "POL_NUMERO_AGENTES" to "POL_AGENTES"; Renomeia a coluna POL_NUMERO_AGENTES para POL_AGENTES na tabela POSTO_POLICIAL. alter table "FUNCIONARIOS" rename column "FUN_NUMERO_MATRICULA" to "FUN_MATR"; Renomeia a coluna FUN_NUMERO_MATRICULA para FUN_MATR na tabela FUNCIONARIOS. alter table "FUNCIONARIOS" add ("FUN_APELIDO" VARCHAR2(20) NULL); Adiciona a coluna FUN_APELIDO na tabela FUNCIONARIOS. FUN_MATR FUN_NOME FUN_FUNCAO FUN_ENDERECO 1 Zé Vigia rua das flores 2 Zé maria Vigia rua das dores 3 Jão Maria Vigia rua das dolores 4 Pedro Mario Vigia rua das cores 5 Jose Pedro Servente rua col alberto 6 Mario Pedro Servente rua roberto ROD_CODIGO FUN_APELIDO 2 1 3 4 4 2 alter table "FUNCIONARIOS" drop column "FUN_APELIDO"; Remove a coluna FUN_APELIDO da tabela FUNCIONARIOS. Select distinct(F.rod_codigo),R.rod_denominacao from FUNCIONARIOS F,RODOVIAS R WHERE F.ROD_CODIGO = R.ROD_CODIGO; 6º período 2º semestre 2007 Implementação do banco de dados de Sistema Rodoviário usando comandos em SQL pg.4 Disciplina de Banco de Dados Profº Christien Rachid Aluno: Bruno Julio Costichi Usa-se distinct para eliminar duplicidade de linhas no resultado ROD_CODIGO 2 4 1 3 ROD_DENOMINACAO Via Fernão Dias Rodovia Rio/Bahia Via Dutra Serra do Mar Com uso de distinct 6º período ROD_CODIGO ROD_DENOMINACAO 2 Via Fernão Dias 1 Via Dutra 3 Serra do Mar 4 Rodovia Rio/Bahia 4 Rodovia Rio/Bahia 2 Via Fernão Dias Sem uso de distinct 2º semestre 2007