• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nuno_Martins

EDIT: Dúvidas em MySQL

9 mensagens neste tópico

Quando se cria uma BD no MySQL Command Line Client, para onde é que essa BD vai?

Ou seja, através do explorador do windows onde é que eu a posso encontrar?

Não sei se é util mas estou a usar o MySQL Server 5.1

Cumps.

EDIT: Ver post mais abaixo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ninguém consegue dar uma ajudinha?  ;)

Tenho mais outra questão. Conhecem algum site onde eu possa fazer downloads de BDs MySQL onde seja possível ver o código usado ? Nada de muito complexo.

Eu quero fazer umas BDs para mim e queria ver alguns exemplos primeiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado bruno1234, foi uma boa ajuda  ;)

Entretanto comecei a fazer uma BD. Esta BD tem o objectivo de inserir todos os livros que tenho cá em casa. É coisa simples (penso eu). Decidi dividir a coisa em duas tabelas, uma para os livros de informática, outra para os livros de literatura.

Tabela de livros de informática:

CREATE TABLE livros_inf
(
inf_id TINYINT AUTO_INCREMENT PRIMARY KEY,
inf_titulo VARCHAR(50) NOT NULL,
inf_categoria VARCHAR(20) NOT NULL,
inf_autor VARCHAR(50) NOT NULL,
inf_coleccao VARCHAR(20),
inf_edicao TINYINT,
inf_ano YEAR NOT NULL,
inf_isbn VARCHAR(20) NOT NULL UNIQUE,
inf_n_paginas INT NOT NULL,
inf_tipo_capa VARCHAR(15) NOT NULL,
inf_descricao TEXT
);

Tabela de livros de literatura:

CREATE TABLE livros_lit
(
lit_id TINYINT PRIMARY KEY AUTO_INCREMENT,
lit_titulo VARCHAR(50) NOT NULL,
lit_categoria VARCHAR(20) NOT NULL,
lit_autor VARCHAR(50) NOT NULL,
lit_coleccao VARCHAR(20),
lit_edicao TINYINT,
lit_ano YEAR NOT NULL,
lit_isbn VARCHAR(20) NOT NULL UNIQUE,
lit_n_paginas INT NOT NULL,
lit_tipo_capa VARCHAR(15) NOT NULL,
lit_descricao TEXT
);

Ainda só fiz um insert:

INSERT INTO livros_inf (inf_titulo, inf_categoria, inf_autor, inf_coleccao, inf_edicao, inf_ano, inf_isbn, 
inf_n_paginas, inf_tipo_capa)
VALUES ('LINUX', 'Sistemas Operativos', 'Fernando Pereira', 'Curso Completo', 5, '2005', '978-972-722-489-0', 
611, 'Capa Mole');

1 - Gostava que no geral comentassem e criticassem as tabelas;

2 - Como podem ver nesse insert eu preenchi todos os campos à excepção do inf_descricao, como é que eu agora posso editar de modo a só preencher este que falta?;

3 - No tipo YEAR quando se insere valores usa-se plicas ou não?

4 - Andei a pesquisar mas fiquei sem entender na mesma. Qual é a diferença entre o TEXT e o BLOB? Ou melhor, para este caso qual se adequa mais? (pretendo adicionar aquelas descrições que vêm na capa de trás dos livros)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

1- Quanto às tabelas, eu n criava 2 em separado. Criava uma tabela livros com uma coluna q era uma chave estrangeira para uma tabela de tipos de livros.

Nessa tabela de tipos de livros tinha 2 campos: PK_Id, Descricao.

2- Podes fazer um update.

update tabela set campo = 'novo valor' where id=numero

3- Em MySql n tenho a certeza, mas é capaz de aceitar das 2 maneiras, é uma questão de experimentares.

4- Texto é apenas texto, BLOB é formato binário. Para o caso da descrição dos livros até podes usar varchar com um limite conhecido (5000 ou 6000, depende do tamanho das descrições). Assim controlas melhor a dimensão da coluna.

Caso precises de ter mm uma dimensão maior, então podes usar texto.

O BLOB poderias utilizar se tiveres a pensar ter quantidades de texto enormes, e nesse caso utilizavas compressão, e guardavas os bytes resultantes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado desde já pela resposta.

Fiquei um bocado baralhado quanto à resposta à primeira pergunta.

É possível dares um exemplo prático de como ficaria da forma como disses-te?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A tabela Livros ficava:

        id TINYINT PRIMARY KEY AUTO_INCREMENT,

        tipo_id TINYINT,

        titulo VARCHAR(50) NOT NULL,

        categoria VARCHAR(20) NOT NULL,

        autor VARCHAR(50) NOT NULL,

        coleccao VARCHAR(20),

        edicao TINYINT,

        ano YEAR NOT NULL,

        isbn VARCHAR(20) NOT NULL UNIQUE,

        n_paginas INT NOT NULL,

        tipo_capa VARCHAR(15) NOT NULL,

        descricao TEXT

A tabela tipos de livro ficava:

tipo_id tinyint PK

descricao varchar(20)

depois relacionavas o tipo_id como chave estrangeira da 1ª tabela.

Só uma obversão: O tinyint vai até 255 pode ser um range insuficiente para a quantidade de livros q tens.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá, peço desculpa por só agora poder vir dar algum feedback...

Muito sinceramente não consigo entender a situação que propuseste. Não percebo bem o que são as chaves estrangeiras, ou melhor, não percebo qual iria ser a sua funcionalidade neste caso.

Se pudesses esclarecer um pouco melhor... ou até mesmo dando um exemplo prático agradecia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O melhor q tens a fazer é pesquisar e ler sobre modelos relacionais de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora