utilizando o firebird

  • Published on
    16-Oct-2014

  • View
    81

  • Download
    2

Embed Size (px)

Transcript

<p>A soluo acessar o programa pelo prompt de comando, digitando o caminho onde o programa se encontra precedido do usurio e senha do Firebird. C:\Program Files \Firebird \Firebird_2_5\ bin\ isql user SYSDBA password masterkey</p> <p>O complicado que para fazer isso temos que navegar pelas pastas da nossa maquina utilizado comandos de prompt que esquecemos. Ao abrirmos o prompt a tela que aparece ser esta:</p> <p>Agora temos que ir dando o comando cd.. at termos atingido a unidade raz na qual estamos trabalhando, nosso caso C:\</p> <p>Agora temos que ver onde o Firebird da nossa maquina est instalado. Isso fazemos indo na pasta do programa no menu iniciar e no cone dele clicar com o boto direito em propriedades:</p> <p>Agora voltamos ao prompt. Nele digitamos o comando cd e em seguida o caminho que acabamos de encontrar, assim: cd Program Files \Firebird \Firebird_2_5\ bin\ No colocamos novamente o c:, porque este j o local onde o prompt de comando se encontra. OBS: Tomar cuidado com os espaos entre as barras e nomes das pastas, se tiver espao vai dar erro.</p> <p>Uma vez que entramos pasta do Firebird vamos ento entrar nele digitando o seguinte comando: isql user SYSDBA password masterkey</p> <p>Relembrando. Fizemos tudo isso para superar o problema do programa que toda hora pedia o usuario e senha e o que conseguimos. Ao fazer isso conseguimos acesso ao que chamam de usurio mster do banco de dados. A partir de agora j estamos no Firebird Isql Tool que o nome do programa de prompt do comando do Firebird. Atraves do prompt de comando do Windows entramos no Firebird.</p> <p>O Firebird tambm utiliza-se da linguagem SQL, mas alguns comandos se diferenciam da forma que fazemos no SQL Server ou MYSQL . Uma das principais diferenas que para criar ou conectar ao banco de dados precisamos dar o caminho completo onde queremos salvar o banco. No MYSQL: create database Faculdade; No Firebird: create database E:\Projeto_Firebird\Faculdade.gdb;</p> <p>No MYSQL: use Faculdade; No Firebird: connect E:\Projeto_Firebird\Faculdade.gdb; Como voc deve ter notado no Firebird utilizamos o comando conecte para entrar no banco com o qual estamos trabalhando . Note tambm que o sistema de arquivos do Firebird .gdb.</p> <p>Agora que j criamos o nosso banco de dados e estabelecemos a nossa conexo com ele, tudo se torna mais simples e os comandos para criao de tabelas e selects so os mesmos do MYSQL. Para facilitar usuremos o script j pronto da pagina seguinte:</p> <p>SCRIPT DE CRIAO DE TABELAS PARA O BANCO DE DADOS E:\Projeto_Firebird\ Faculdade.gdbcreate table curso ( cod_curso smallint not null, nome_curso varchar(40), primary key (cod_curso) ); create table Aluno ( matricula int not null, nome_aluno varchar(40), status varchar(10), curso smallint not null, primary key (matricula) );</p> <p>create table nota ( nota decimal, faltas smallint, matricula int not null, cod_disc char(5) not null ); Create table disciplina ( cod_disc char(5) not null, nome_disc varchar(40), cod_prof smallint not null, primary key (cod_disc) ); create table professor (</p> <p>cod_prof smallint not null, nome_prof varchar(40), primary key (cod_prof) );</p> <p>Executando o script e percebendo que no apresentou nenhum erro podemos perceber que o Firebird no mostra a mensagem Query OK! como mostra, por exemplo o mysql. Nele sabemos que o comando foi aceito quando o prompt no exibir nenhuma mensagem de erro. Simples assim!</p> <p>Aps termos colado o script no prompt e conferido que no foi apresentado nenhum erro podemos fazer um teste para ver se as nossas tabelas esto realmente l: show tables;</p> <p>Agora que vimos que realmente as tabelas que nos criamos realmente esto funcionando vamos inserir dados nelas. Os inserts tambm no diferem em nada daqueles que estamos acostumados com o MYSQL. Para a criao dos inserts tambm faremos uso de script, que seguem nas prximos slides. Preste ateno como eles so os mesmo do MYSQL.</p> <p>insert into curso (cod_curso, nome_curso) values (0037, 'Analise de sistemas'); insert into curso (cod_curso, nome_curso) values (0038, 'Ciencia da Computacao'); insert into curso (cod_curso, nome_curso) values (0039, 'Direito'); insert into curso (cod_curso, nome_curso) values (0040, 'Matematica'); insert into aluno (matricula, insert into aluno (matricula, insert into aluno (matricula, insert into aluno (matricula, insert into aluno (matricula, insert into aluno (matricula, insert into aluno (matricula, nome_aluno, status, curso) values (007043, 'Vitor Alexandre Costa', 'Regular', 0037); nome_aluno, status, curso) values (007044, 'Reinildes J M Oliveira', 'Regular', 0038); nome_aluno, status, curso) values (007045, 'Valdir da Costa Leme', 'Regular', 0038); nome_aluno, status, curso) values (007046, 'Fernanda Souza Bertolai', 'Regular', 0038); nome_aluno, status, curso) values (007047, 'Marcelo Rocha Lopes', 'Regular', 0038); nome_aluno, status, curso) values (007048, 'Jucimara Cristina Oliveira', 'Regular', 0039); nome_aluno, status, curso) values (007049, 'Victoria de Melo Soares', 'Regular', 0039);</p> <p>insert into nota (nota, matricula, faltas, cod_disc) values (5.5, 007043, 2, 'co_ex'); insert into nota (nota, matricula, faltas, cod_disc) values (9.0, 007043, 3, 'matba'); insert into nota (nota, matricula, faltas, cod_disc) values (7.0, 007043, 4, 'an001'); insert into nota (nota, matricula, faltas, cod_disc) values (5.0, 007044, 1, 'co_ex'); insert into nota (nota, matricula, faltas, cod_disc) values (10.0, 007044, 5, 'inins'); insert into nota (nota, matricula, faltas, cod_disc) values (6.5, 007045, 6, 'logpo'); insert into nota (nota, matricula, faltas, cod_disc) values (6.5, 007046, 2, 'inins'); insert into nota (nota, matricula, faltas, cod_disc) values (8.5, 007045, 3, 'logpo'); insert into nota (nota, matricula, faltas, cod_disc) values (6.5, 007047, 4, 'matba'); insert into nota (nota, matricula, faltas, cod_disc) values (7.5, 007048, 1, 'matba'); insert into nota (nota, matricula, faltas, cod_disc) values (8.0, 007049, 2, 'matba'); insert into nota (nota, matricula, faltas, cod_disc) values (2.0, 007048, 1, 'co_ex');</p> <p>insert into disciplina (cod_disc, nome_disc, cod_prof) values ('co_ex', 'Comunicao e expresso', 001); insert into disciplina (cod_disc, nome_disc, cod_prof) values ('matba', 'Matematica Basica', 002); insert into disciplina (cod_disc, nome_disc, cod_prof) values ('logpo', 'Logica de Programacao', 003); insert into disciplina (cod_disc, nome_disc, cod_prof) values ('inins', 'Ingles Instrumental', 004); insert into disciplina (cod_disc, nome_disc, cod_prof) values ('an001', 'Analise de Sistemas', 005); insert into professor (cod_prof, insert into professor (cod_prof, insert into professor (cod_prof, insert into professor (cod_prof, insert into professor (cod_prof, nome_prof) values (001, 'Joo Arruda Carneiro'); nome_prof) values (002, 'Joo Batista Camargo'); nome_prof) values (003, 'Luana Dorival Junior'); nome_prof) values (004, 'Henrrique Arruda Carneiro'); nome_prof) values (005, 'Paulo Eduardo Carneiro');</p> <p>Agora que os inserts foram feitos e o Firebird no apresentou nenhum erro podem fazer testes com selects e com inner joins para ver se a eles so feitos da mesma forma que no MYSQL.</p> <p>Select * from aluno;</p> <p>Select * from professor;</p> <p>Fazer um inner join para ver as notas dos alunos nas diferentes disciplinas:select nome_aluno, nota, nome_disc from aluno inner join nota on aluno.matricula = nota.matricula inner join disciplina on nota.cod_disc = disciplina.cod_disc;</p> <p>Fazer um inner join que mostre todos os alunos que cursam cincia da computao:Select nome_aluno, nome_curso from curso inner join aluno on curso.cod_curso= aluno.curso where nome_curso='Ciencia da Computacao';</p>