[RESOLVIDO] Criar banco de dados

21 respostas
lucas_guj

Galera estou tentando criar um banco de dados a partir de um script que vem do livro Java Como Programar 8° edição, no cap. sobre banco de dados. Tentei por linha de comando e tentei pelo phpmyadmin e nenhum dos dois funcionaram. Olha o erro que aparece no phpmyadmin:

[b]Erro

consulta SQL:

DROP TABLE “authorISBN”;

Mensagens do MySQL : Documentação
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘“authorISBN”’ at line 1 [/b]

E vou passar o código do script para alguém poder me ajudar.

books.sql:

DROP TABLE "authorISBN";
DROP TABLE "titles";
DROP TABLE "authors";

CREATE TABLE "authors" (
   "authorID" INT NOT NULL GENERATED ALWAYS AS IDENTITY,
   "firstName" varchar (20) NOT NULL,
   "lastName" varchar (30) NOT NULL,
   PRIMARY KEY ("authorID")
);

CREATE TABLE "titles" (
   "isbn" varchar (20) NOT NULL,
   "title" varchar (100) NOT NULL,
   "editionNumber" INT NOT NULL,
   "copyright" varchar (4) NOT NULL,
   PRIMARY KEY ("isbn")
);

CREATE TABLE "authorISBN" (
   "authorID" INT NOT NULL,
   "isbn" varchar (20) NOT NULL,
   FOREIGN KEY ("authorID") REFERENCES "authors" ("authorID"), 
   FOREIGN KEY ("isbn") REFERENCES "titles" ("isbn")
);

INSERT INTO "authors" ("firstName", "lastName")
VALUES 
   ('Harvey','Deitel'),
   ('Paul','Deitel'), 
   ('Andrew','Goldberg'),
   ('David','Choffnes');

INSERT INTO "titles" ("isbn","title","editionNumber",
   "copyright")
VALUES
   ('[telefone removido]','Visual Basic 2005 How to Program',3,'2006'),
   ('[telefone removido]','Visual C# 2005 How to Program',2,'2006'),
   ('[telefone removido]','Java How to Program',7,'2007'), 
   ('[telefone removido]','C++ How to Program',5,'2005'),
   ('[telefone removido]','C How to Program',5,'2007'),
   ('[telefone removido]','Internet & World Wide Web How to Program',3,'2004'),
   ('[telefone removido]','Operating Systems',3,'2004');

INSERT INTO "authorISBN" ("authorID","isbn")
VALUES
   (1,'[telefone removido]'),
   (2,'[telefone removido]'),
   (1,'[telefone removido]'),
   (2,'[telefone removido]'),
   (1,'[telefone removido]'), 
   (2,'[telefone removido]'), 
   (1,'[telefone removido]'),
   (2,'[telefone removido]'),
   (1,'[telefone removido]'),
   (2,'[telefone removido]'),
   (1,'[telefone removido]'),
   (2,'[telefone removido]'),
   (3,'[telefone removido]'),
   (1,'[telefone removido]'),
   (2,'[telefone removido]'),
   (4,'[telefone removido]');

21 Respostas

M

http://scriptbrasil.com.br/forum/lofiversion/index.php/t166941.html

lucas_guj

michelorth_92:
http://scriptbrasil.com.br/forum/lofiversion/index.php/t166941.html

Meu Script está diferente do post do cara que você me passou o link, no meu não tem nenhum TYPE nem ENGINE, mas a questão é que no meu script tem algum comando que já ficou obsoleto na versão que eu estou usando é isso?

M

o problema ta sendo em criar as FOREIGN KEY

crie o banco usando um Framework mysql wokbeanch é mto bom

lucas_guj

michelorth_92:
o problema ta sendo em criar as FOREIGN KEY

crie o banco usando um Framework mysql wokbeanch é mto bom

Eu tenho ele instalado aqui no meu pc, só que eu não sei importar o sql. Sou iniciante.

M

pera 2 min que mando o script pra ti

lucas_guj

Ok.

M
create database books;

use books;

CREATE  TABLE `books`.`authors` (

  `authorID` INT NOT NULL AUTO_INCREMENT ,

  `firstName` VARCHAR(45) NOT NULL ,

  `lastName` VARCHAR(45) NOT NULL ,

  PRIMARY KEY (`authorID`) );



CREATE  TABLE `books`.`titles` (

  `isbn` VARCHAR(45) NOT NULL ,

  `title` VARCHAR(45) NOT NULL ,

  `editionNumber` INT NOT NULL ,

  `copyright` VARCHAR(4) NOT NULL ,

  PRIMARY KEY (`isbn`) );


CREATE  TABLE `books`.`authorISBN` (

  `authorID` INT NOT NULL ,

  `isbn` VARCHAR(45) NOT NULL ,

  INDEX `authorID` (`authorID` ASC) ,

  INDEX `isbn` (`isbn` ASC) ,

  CONSTRAINT `authorID`

    FOREIGN KEY (`authorID` )

    REFERENCES `books`.`authors` (`authorID` )

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

  CONSTRAINT `isbn`

    FOREIGN KEY (`isbn` )

    REFERENCES `books`.`titles` (`isbn` )

    ON DELETE NO ACTION

    ON UPDATE NO ACTION);




INSERT INTO `authors` (`firstName`, `lastName`)  
VALUES   
   ('Harvey','Deitel'),  
   ('Paul','Deitel'),   
   ('Andrew','Goldberg'),  
   ('David','Choffnes');  
  
INSERT INTO `titles` (`isbn`,`title`,`editionNumber`,  
   `copyright`)  
VALUES  
   ('[telefone removido]','Visual Basic 2005 How to Program',3,'2006'),  
   ('[telefone removido]','Visual C# 2005 How to Program',2,'2006'),  
   ('[telefone removido]','Java How to Program',7,'2007'),   
   ('[telefone removido]','C++ How to Program',5,'2005'),  
   ('[telefone removido]','C How to Program',5,'2007'),  
   ('[telefone removido]','Internet & World Wide Web How to Program',3,'2004'),  
   ('[telefone removido]','Operating Systems',3,'2004');  
  
INSERT INTO `authorISBN` (`authorID`,`isbn`)  
VALUES  
   (1,'[telefone removido]'),  
   (2,'[telefone removido]'),  
   (1,'[telefone removido]'),  
   (2,'[telefone removido]'),  
   (1,'[telefone removido]'),   
   (2,'[telefone removido]'),   
   (1,'[telefone removido]'),  
   (2,'[telefone removido]'),  
   (1,'[telefone removido]'),  
   (2,'[telefone removido]'),  
   (1,'[telefone removido]'),  
   (2,'[telefone removido]'),  
   (3,'[telefone removido]'),  
   (1,'[telefone removido]'),  
   (2,'[telefone removido]'),  
   (4,'[telefone removido]');

seja feliz

lucas_guj

Abri o scrip antigo para editar no MySQL Workbench e apareceu os erros, ai apaguei tudo, coloquei o seu código e executei o script, apareceu esse erro:

Error Code: 1046
No database selected

Na ação:

INSERT INTO `authors` (`firstName`, `lastName`)    
VALUES     
   ('Harvey','Deitel'),

Quero só o banco de dados feito e pronto para eu poder copiar o exemplo do livro, examinar, estudar e aprender, só que não da para fazer a classe sem esse banco de dados primeiro, no livro ele cria um usuario no banco de dados mysql, na tabela user, com nome deitel e senha deitel em localhost. Estou quase sendo feliz :smiley: obrigado pela ajuda.

M

voce criou a base???\

create database books;

use books;

M

que q c ta estudando??

lucas_guj

faltou o use books no meu script¬¬. Estou estudando Banco de dados com java. Fui executar o script agora e travou o programa vou tentar de novo. Por que peguntou o que eu estou estudando? Obrigado pela ajuda.

M

achei mto complicado essa apostila… c ta começando agora?

se sim pesquise por crud com java e mysql. esse ta meio complicado… as apostilas da caelum são muito boas

lucas_guj

michelorth_92:
achei mto complicado essa apostila… c ta começando agora?

se sim pesquise por crud com java e mysql. esse ta meio complicado… as apostilas da caelum são muito boas

http://www.caelum.com.br/apostilas/

Estou sim. Já li o use a cabeça java todo. No java como programar, eu pulei alguns capitulos de coleções genericas porque já tinha lido no use a cabeça, mas depois vou ler.
Estava tentando reexecutar o script com o “use books;” que tava faltando só que ele não tava criando porque o banco de dados já existia, o phpmyadmin não queria deletar¬¬ ai eu deletei por linha de comando usando o “DROP database books;” e funcionou, uma pergunta? Se DROP apagou o database, porque no meu primeiro script tinha drop:

DROP TABLE "authorISBN"; DROP TABLE "titles"; DROP TABLE "authors"; ?

lucas_guj

Agora eu acho que criei com sucesso, ele não deu nenhuma mensagem de erro, porém não disse nada que foi criado com sucesso, fiz no workbench, é assim mesmo?

Abri o script para edição, colei seu código e executei, e foi. Verifiquei no phpmyadmin e o DB books está lá.

lucas_guj

Verifiquei na pasta: “C:\wamp\bin\mysql\mysql5.1.53\data” e uma pasta books foi criada. Acho que está ok agora. Obrigado. Antes de eu colocar o tópico como resolvido responde a minha pergunta dos post de cima. Obrigado. Depois que eu acabar de ler o cap. vou dar uma pesquisada no que você falou.

M

geralmente não tem msg de sucesso

lucas_guj

lucas_guj:
michelorth_92:
achei mto complicado essa apostila… c ta começando agora?

se sim pesquise por crud com java e mysql. esse ta meio complicado… as apostilas da caelum são muito boas

http://www.caelum.com.br/apostilas/

Estou sim. Já li o use a cabeça java todo. No java como programar, eu pulei alguns capitulos de coleções genericas porque já tinha lido no use a cabeça, mas depois vou ler.
Estava tentando reexecutar o script com o “use books;” que tava faltando só que ele não tava criando porque o banco de dados já existia, o phpmyadmin não queria deletar¬¬ ai eu deletei por linha de comando usando o “DROP database books;” e funcionou, uma pergunta? Se DROP apagou o database, porque no meu primeiro script tinha drop:

DROP TABLE "authorISBN"; DROP TABLE "titles"; DROP TABLE "authors"; ?

Ok. Pode responder o que eu postei dentro desse quote por favor? Muito obrigado pela ajuda.

M

esse script que tava dando erro tmb… pq ele tentava excluir uma tabela que não existia ai gerava o erro

lucas_guj

ahhh sim. Obrigado pela ajuda. Tópico resolvido.

lucas_guj

Você não vai acreditar. Rsrsrsrsrsrs. Eu estava usando o script errado :? É porque na pasta SQLscripts, tinham duas pastas: java db e mysql e em cada uma, tinha dois scripts books. Um era “books” com b minusculo e outro era “Books” com b maisculo. E no livro ele não dizia qual script ele pegava de qual pasta, ele referenciava apenas com “books” minusculo, então eu usei esse, que deu esse problema todo. Ai hoje por curiosidade eu fui usar o “Books” e fui ver o código, funcionou certinho, e está parecido com seu código ¬¬. Veja o código:

DROP DATABASE IF EXISTS books;

CREATE DATABASE books;

USE books;

CREATE TABLE Authors
(
   AuthorID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   FirstName varchar(30) NOT NULL,
   LastName varchar(30) NOT NULL
)                 ;
CREATE TABLE Titles
(
   ISBN varchar(20) NOT NULL PRIMARY KEY,
   Title varchar(100) NOT NULL,
   EditionNumber int NOT NULL,
   Copyright varchar(4) NOT NULL
)             ;

CREATE TABLE AuthorISBN
(
   AuthorID int NOT NULL,
   ISBN varchar(20) NOT NULL,
   FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID),
   FOREIGN KEY (ISBN) References Titles(ISBN)
)            ;

INSERT INTO Authors (FirstName,LastName) VALUES ('Harvey','Deitel')           ;
INSERT INTO Authors (FirstName,LastName) VALUES ('Paul','Deitel')     ;
INSERT INTO Authors (FirstName,LastName) VALUES ('Andrew','Goldberg')    ;
INSERT INTO Authors (FirstName,LastName) VALUES ('David','Choffnes')     ;


INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','Visual Basic 2005 How to Program',3,'2006')          ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')     ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]') ;
INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','Visual C# 2005 How to Program',2,'2006')  ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')      ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]')      ;

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','Java How to Program',7,'2007')   ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')                                               ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]')                                       ;

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','C++ How to Program',5,'2005')     ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')                                                  ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]')                                                 ;

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','C How to Program',5,'2007')     ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')                                             ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]')                                       ;

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','Internet & World Wide Web How to Program',3,'2004')    ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')                                                                 ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]')                                            ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (3,'[telefone removido]')                                   ;

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('[telefone removido]','Operating Systems',3,'2004')        ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'[telefone removido]')                                                    ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'[telefone removido]')                                                    ;
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (4,'[telefone removido]')                                                    ;
M

rsrs

Criado 15 de junho de 2012
Ultima resposta 16 de jun. de 2012
Respostas 21
Participantes 2