utilizando o firebird

download

of 20

  • date post

    16-Oct-2014
  • Category

    Documents
  • view

    81
  • download

    2

Embed Size (px)

transcript

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

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:

Agora temos que ir dando o comando cd.. at termos atingido a unidade raz na qual estamos trabalhando, nosso caso C:\

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:

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.

Uma vez que entramos pasta do Firebird vamos ento entrar nele digitando o seguinte comando: isql user SYSDBA password masterkey

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.

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;

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.

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:

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) );

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 (

cod_prof smallint not null, nome_prof varchar(40), primary key (cod_prof) );

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!

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;

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.

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);

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');

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');

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.

Select * from aluno;

Select * from professor;

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;

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';