Criando um banco de dados em MySQL – Ubuntu 10.10

Estou trabalhando com o Ubuntu 10.10 desde seu lançamento. A melhor distribuição do Linux, na minha opnião, tem todos os recursos necessários a um analista. Hoje vou começar a trabalhar com um banco de dados simples. Trabalhando desde a instalação do MySQL até consultas em tabelas criadas.

O primeiro passo é instalar o servidor MySQL. Clique no menu Aplicativos, vá em Acessórios e abra um Terminal [ou ctrl+alt+T].

Digite:  sudo apt-get install mysql-server, este comando instala o mysql usando os privilégios de super-usuário, por isso a senha de root deve ser digitada se requisitada. Durante a instalação um prompt se abrirá pedindo uma nova senha para o usuário root do banco de dados. É importante anotar esta senha, o ideal é escolher uma palavra simples, que não se esqueça.

Ao término da instalação é preciso logar no MySQL antes de criarmos a nossa primeira base de dados.

Digite: mysql -u root -p , a senha cadastrada será requisitada, dando acesso ao SGBD. Uma vez que se tenha acessado o Sistema Gerenciador de Banco de Dados, passamos a usar os comandos SQL. É fundamental que os comandos sigam a sintaxe apresentada e TERMINEM COM PONTO E VIRGULA (;).

Crie uma base de dados com o seguinte comando: create database biblioteca;

Para visualizar as bases de dados existentes,inclusive a que acabamos de criar, digite show databases;

Em seguida vamos acessar a base de dados criada, digite: use biblioteca;

Sempre que você entrar no MySQL via terminal, deverá repetir o comando de acesso(mysql -u root -p), e em seguida escolher a base de dados na qual está trabalhando (use biblioteca;).

Para verificar as tabelas presentes na nossa base de dados usamos o seguinte comando: show tables;

É claro que o retorno deve ser Empty set, uma vez que ainda não criamos nenhuma tabela. Então vamos criar nossa primeira tabela.

create table Generos(
idGenero int(6) auto_increment primary key,
genero varchar(30));

A primeira linha da tabela abre a criação da mesma definindo seu nome (no caso Generos);

Na linha dois definimos o primeiro campo da tabela, que é o atributo identificador, o nome de cada campo é opcional, porém recomendamos o uso de nomes que lembrem a utilidade do campo. Após cada nome de campo temos o tipo de dados que será usado. Em sequida temos o parâmetro AUTO_INCREMENT que aumenta o valor do campo automaticamente a cada inserção, sendo o atributo identificador, no fim da linha, foi definido que ele é chave primária através do parâmetro Primary Key. Na última linha temos o fechamento do parenteses da primeira linha além do ponto-e-virgula para terminar o comando de criação.

Com a separação dos gêneros da tabela principal, nós podemos fazer correções nos dados de forma mais eficiente, assim como os autores, sobre os quais pode-se registrar mais informações numa tabela a parte.

create table Autores(
  idAutor int(6) auto_increment primary key,
  nome varchar(50),
  nacionalidade varchar(30),
  historia blob);

Agora vamos a tabela Livros:

create table Livros(
  idLivro int(6) auto_increment primary key,
  titulo varchar(60),
  genero int(6),
  autor int(6),
  idioma varchar(20),
  ano char(4),
  foreign key (genero) references Generos(idGenero),
  foreign key (autor) references Autores(idAutor));

Depois de criar estas 3 tabelas temos um banco de dados inicial. Usando o comando show tables; o MySQL exibe as tabelas criadas. Para analisar a estrutura de cada tabela usamos o comando describe; ou sua abreviação desc. Digite os itens a seguir e veja os resultados:

desc Livros;
desc Autores;
desc Generos;

Agora vamos alimentar o banco de dados, por temos duas chaves estrangeiras na tabela livros, é preciso que as outras tabelas sejam preenchidas primeiro. Vou começar com a inserção de três itens na tabela Generos e em seguida na tabela Autores.

insert into Generos (genero) values ('Romance'),('Terror'),('Aventura');
insert into Autores (nome, nacionalidade, historia) values ('Machado de Assis', 'Brasileiro','Joaquim Maria Machado de Assis (21 de junho de 1839 — 29 de setembro de 1908) foi um escritor brasileiro, amplamente considerado como o maior nome da literatura nacional');
insert into Autores (nome, nacionalidade, historia) values ('Stephen King','Estados Unidos','Stephen Edwin King (Portland, 21 de setembro de 1947) é um mestre do terror.');

Nos exemplos acima é possível perceber duas formas de inserção de dados, na tabela Generos eu inseri 3 linhas em um único comando, enquanto os autores foram inseridos em separado. Além da flexibilidade do SGBD eu quis mostrar a usabilidade de cada forma. Quando os dados são curtos e constantes inserções múltiplas são úteis, mas se temos uma quantidade maior de informações é conveniente inserir uma linha de cada vez. Um último passo é muito importante para registrar as inserções no banco de dados, trata-se do comando Commit. Sempre que uma alteração é feita nos registros de uma tabela é preciso digitar commit; para ter certeza que a alteração seja registrada, seja ela uma inserção, deleção ou atualização.

O próximo passo é alimentar a tabela Livros, mas antes disso vamos realizar algumas consultas.

O Comando Select é a base da Consulta Estruturada, através dele podemos obter informações de uma ou mais tabelas, exibindo os dados da forma desejada. Comecemos com o mais simples de todos os select, o SELECT ALL. Digite:

Select * from Generos;
Select * from Autores;

Este comando retorna todos os registros de uma tabela. Você também pode filtrar as informações a serem obtidas com este comando. As possibilidades são muitas, então vou mostrar alguns exemplos.

1. Selecionar os países registrados na tabela autores.

select nacionalidade from Autores;

2. Selecionar os autores com suas nacionalidades.

select nome, nacionalidade from Autores;

3. Selecionar os generos sem os códigos.

select genero from Generos;

4. Selecionar somente os códigos e nomes dos autores.

select idAutor, nome from Autores;

Percebam que em todos os exemplos, basta escolher o nome dos campos que se deseja a informação. Sabendo consultar essas informações podemos fazer o primeiro registro na tabela livros.

insert into Livros (titulo, genero, autor, idioma, ano) values ('Memórias Póstumas de Brás Cubas',1,1,'Português','1881');

insert into Livros (titulo, genero, autor, idioma, ano) values ('Roadwork',2,1,'Inglês','1981');

insert into Livros (titulo, genero, autor, idioma, ano) values('O Cemitério',2,2,'Português','1983');


Percebam que nos espaços referentes ao gênero e autor, eu inseri o código correspondente na tabela original. Assim o código para Machado de Assis é igual a 1 (select idAutor, nome from Autores;); o mesmo vale para o gênero.

Pra terminar podemos consultar este último registro e salvá-lo com um commit.

select * from Livros;
commit;

Avançado

Talvez alguém possa estar se perguntando por quê não  inserir os nomes e gêneros dos livros diretamente na tabela Livros. Quando tivermos uma interface gráfica, poderemos elaborar as consultas de forma que todas as informações apareçam juntas, tornando o banco de dados mais robusto.

About these ads

4 Respostas to “Criando um banco de dados em MySQL – Ubuntu 10.10”

  1. Fernando Says:

    Nossa, não imaginava ser tão complicado. Sempre que preciso fazer um backup ligo no suporte da minha hosting. Eu hspedo na inter.net e eles me auxiliam em tudo.

  2. Criando uma página PHP com conexão ao Banco de Dados – Ubuntu 10.10 « Analise de Sistemas Says:

    [...] Agora vamos ver a conexão funcionando. Crie o banco de dados conforme o post http://analisedesistemas.wordpress.com/2011/01/19/criando-um-banco-de-dados-em-mysql-ubuntu-10-10 [...]


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: