Você está na página 1de 13

Criação de uma base de dados em MYSQL SERVER

1- CREATE DATABASE [nome da base de dados];


Exemplo: CREATE DATABASE João;
Para se começar a trabalhar com esta base de dados, devemos selecioná-lo:
2-USE João;
Como eliminar uma base de dados
3- DROP [Nome do Banco de Dados];
Exemplo: DROP database João;
Como criar tabelas numa base de dados
4- CREATE TABLE [Nome da Tabela] ([Nome do Campo 1] [Tipo do
Campo1], [Nome do Campo n] [Tipo do Campo n]);
Exemplo:
CREATE TABLE Estados
(uf char (2),
região VARCHAR (5)
);
Criação de tabelas com Chaves Primárias
CREATE TABLE [Nome da Tabela] ([Nome do Campo] [Tipo do
Campo] [auto_increment], [Nome do Campo 2] [Tipo do Campo 2],
PRIMARY KEY ([Nome do Campo n]))
Exemplo:
CREATE TABLE clientes
(idclientes INT (10) AUTO_INCREMENT,
nome VARCHAR (50),
cadastro DATE,
nascimento DATE,
PRIMARY KEY (idCliente)
);
Manipulação de tabelas
Exibir tabelas do base de dados aberto
5- SHOW TABLES;
SHOW COLUMNS IN [Nome da Tabela];
Ou
DESCRIBE [Nome da Tabela];
Exemplo: SHOW COLUMNS IN clientes;
OU
DESCRIBE clientes;

Tipos de dados
Na criação de colunas das tabelas, o desenvolvedor deve escolher o tipo de coluna que
mais se adeque ao tipo de informação que pretende armazenar. Por exemplo:

INTEIRO (INTEGER):

Este é o tipo de dados utilizado para armazenamento de números. Os números a serem


armazenados podem ser positivos ou negativos. Ex: -1234, 12, 295, 15344.

CARACTERES (CHAR, VARCHAR):

Este tipo é utilizado para armazenar informações do tipo texto.

Quando utilizado do tipo CHAR, define-se um tamanho que pode ser de 1 até 255 bytes.
Independentemente do tamanho escolhido, qualquer informação que for armazenado fará
com que os demais caracteres sejam preenchidos com espaços. Por exemplo ao gravar o
texto “Ola” o tamanho ocupado numa coluna criada originalmente como CHAR (50) será
de cinquenta caracteres, sendo “Ola” os três primeiros e o restante com espaços.

O tipo VARCHAR, por outro lado, permite a gravação de cadeias de caracteres sem
gravar o espaço restante. Por exemplo se a coluna tivesse sido criada como VARCHAR
(50), o conteúdo a ser gravado seria apenas as três letras “Ola”.

PONTO FLUTUANTE (FLOAT):

Permite a gravação de valores com casas decimais.

Exemplo: 45.10, 1.8, 14.567

DATA e HORA
DATE: armazena data no formato ano-mês-dia;

DATETIME: armazena data e hora no formato ano-mês-dia hora-minuto-segundo;

YEAR(2): armazena no formato de dois (2) dígitos;

YEAR(4): armazena no formato de dois (4) dígitos.

BLOB (Biary Large Object)

Tipo de dado binário, pode guardar desde textos até informações advindas de arquivos
que foram carregados (upload). Podem ser usados para guardar de forma eficiente
imagens ou outro tipo de ficheiros que possuem um tamanho que varia entre (4000bytes
e 2GB);

CLOB (Character Large Object)

Servem para ultrapassar as limitações de tamanho e guardar mais caracteres do que o que
é normalmente permitido.

ALTERAR TABELAS

Adicionar uma nova coluna

ALTER TABLE [Nome da Tabela] ADD COLUMN [Nome do Campo] [Tipo do


Campo];

Exemplo: ALTER TABLE Clientes ADD COLUMN Nascimento date;

Alterar o nome de uma coluna

ALTER TABLE [Nome da Tabela] CHANGE [Nome Atual do Campo] [Novo Nome
do Campo] [Tipo do Campo Novo];

Exemplo: ALTER TABLE Clientes CHANGE cadastro criação date;

Eliminar uma coluna

ALTER TABLE [Nome da Tabela] DROP [Nome do Campo];

Exemplo: ALTER TABLE Clientes DROP Nascimento;

Inserir registos numa tabela


INSERT INTO [tabela] VALUES ([Valor Campo 1], [ Valor Campo 2], [Valor
Campo 3]);

Exemplo: INSERT INTO produtos VALUES ('BC001', 'Caixa de Cereais', '1','2007-08-


19');

Contando o número de registos de uma tabela

SELECT COUNT(*) FROM [Nome da Tabela];

Exemplo: SELECT COUNT(*) FROM produtos;

Alterar registo de uma tabela

UPDATE [Nome da Tabela] SET [Campo 1] = [Valor], [Campo 2] = [Valor]

Exemplo: UPDATE produtos SET ativo=’1’;

Eliminar registos de uma tabela

DELETE FROM [Nome da Tabela] WHERE [Condição];

Exemplo: DELETE FROM produtos;

Exercício1
Projete uma base de dados que atenda às necessidades de controle dos cinemas e filmes
em uma determinada empresa de distribuição de filmes.

Elabora o modelo ER e Projete-a no Mysql Server.

Visão do negócio:

▪ Área de negócio: Departamento de Programação de filmes;

▪ Função Gerencial: Administração de Cinemas.

Após várias reuniões com os futuros usuários do sistema, relacionamos uma serie de
regras do negócio que serão a base para o desenvolvimento do diagrama ER:

▪ A empresa de distribuição possui vários cinemas em diversas localidades;

▪ Cada cinema possui uma identificação única, um nome fantasia, um


endereço completo, incluindo rua, avenida, bairro, Município, estado e
capacidade de lotação;
▪ Os filmes podem ser dos mais variados tipos e gêneros;

▪ Cada filme é registado com um título original, e se for filme estrangeiro,


possuirá também o título em português, género, duração, impropriedade e
pais de origem, informações sobre os actores que compõem o elenco e
director. Existirá um único director para cada filme;

▪ Alguns cinemas apresentam mais de um filme em cartaz, sendo, nesses


casos sessões alternadas com um filme e outro;

▪ As sessões possuem horários que variam de acordo com a duração do


filme, havendo sempre um intervalo de aproximadamente 15 minutos entre
elas;

▪ Ao actores de um filme podem, obviamente, atuar em diversos filmes,


assim como o director de um filme pode também ser actor nesse filme ou,
ainda mais, ser actor entre outro filme. Um actor possui as seguintes
características: um número de identificação, um nome, uma nacionalidade,
e uma idade;

▪ As sessões de cinema devem ter seu público registado diariamente, para


que se permita a totalização dos assistentes quando o filme sair de cartaz,
ou a qualquer instante.

Nas reuniões de levantamento, os usuários passaram as seguintes necessidades de


informação:

▪ Apuração do público por Município, por cinema e por sessão de cada


cinema;

▪ Permitir uma forma de consulta que, dado um determinado actor, sejam


localizados os cinemas onde estão em cartaz os filmes em que esse actor
atua. Exemplo: Quais cinemas (nomes) passam filmes em que actue a atriz
“Tatiana Durão”? Queremos obter somente os nomes dos cinemas,
independentemente dos filmes.

▪ Saber em quais cinemas estão sendo exibido um determinado género de


filme;

▪ Saber em quais cinemas estão sendo exibidos filmes nacionais.


Resolução exercício1
Primeiro temos que declarar a classe de objectos:

Temos duas classes de objectos: Filme e Cinema.

Filme, possui uma série de atributos que o caracterizam, além do que, podemos visualizar
que existem muitas ocorrências de filmes.

Cinema, possui atributos próprios que o caracterizam, além de ser fácil imaginar a
existência de diversos cinemas.

Estes objectos ou entidades caracterizam-se de seguinte modo, ou seja, possuem os


seguintes atributos:

Cinema Filme
Identificação do cinema Identificação do filme
Nome Título original
Endereço Título em português
Rua/Avenida Duração
Bairro Identificação do Director
Município País de origem
Província Gênero
Capacidade de lotação Impropriedade

Assim, um actor pode actuar nos mais diversos filmes e possui atributos independentes
de participação em filmes, e constitui-se numa entidade para armazenar informações
sobre os actores.

Neste sentido temos as seguintes entidades:

Filme Cinema Actor

Com os objectos ou entidades já identificados, para a modelagem é efectuar a análise dos


relacionamentos que são possíveis no mundo real entre essas entidades.

Um filme passa em um cinema;


Um filme passa em vários cinemas ao mesmo tempo; logo, temos um relacionamento
entre as entidades Cinema e Filme, mas qual será a sua cardinalidade correcta?

Tendo em conta as regras do negócio estabelecido, existe a informação de que um cinema


pode apresentar mais de um filme em cartaz. Por outro lado, sabemos que quando estamos
modelando, não estamos preocupados com o processo de informação, logo, um cinema
pode passar vários filmes em datas diferentes, caracterizando então que um cinema passa
mais de um filme.

Assim define-se a relação entre as entidades e sua cardinalidade.

Modelo Inicial

N N
Filme Passa Cinema

(um Cinema passa muitos (N) filmes, Um Filme passa em muitos (N) Cinemas)

A cardinalidade expressa no modelo inicial é de Muitos-para-Muitos. Observa-se que um


filme possui muitos actores e muitos actores participam (actuam) num filme. Assim
identifica-se uma nova entidade Actor.
N N
Cinema Passa Filme

Actua

Actor

Observa-se que no contexto que diz respeito ao filme possui um Director, e esse Director
pode também ser um actor, e por consequência possui os mesmos dados cadastrais de
actor. Assim, um Director dirige um filme, ou seja, todos os filmes são dirigidos por
alguém o actor.
N N
N
Cinema Passa Filme

Actua Di
rig
N e

Actor
Director
1

Quando se vai a um cinema para assistir um filme, vamos a um cinema que passa um
filme. Então, estando em frente ao cinema que passa um filme, vemos que existem sessões
para assistirmos. Logo, vamos fazer parte do público-alvo que assistiu a um determinado
filme num cinema específico, em uma localidade qualquer.

O objecto sessão só existe se antes existir um cinema que passa filme, ou seja, deve existir
um filme relacionado com um cinema para que exista uma ou mais sessões. Logo, a sessão
se constitui numa entidade que possui os seguintes atributos: data da sessão, hora da
sessão e público da sessão.

Um cinema, quando passa um filme, tem muitas sessões, e por outro sentido de leitura
dos fatos, uma sessão só está relacionada a um filme em um cinema. Isto mostra a
necessidade do uso de uma agregação.

N N
N
Cinema Passa Filme

1 N

Tem Actua Dirige

N N

Sessão Actor 1
Director
Um Cinema passa muitos filmes, e um filme passa em muitos Cinemas;

Quando um filme passa em um cinema, este tem muitas sessões;

Cada filme possui actores que participam dela, e um actor pode participar de muitos
filmes;

Todo filme tem um director que pode ser também um actor desse filme. Um director pode
dirigir muitos filmes.

Assim, de forma, mas detalhada podemos observar a modelação de dados como apresenta
a figura a seguir. Gênero

1
N N N
Cinema Passa Filme Tem

1 N
N

Tem Actua Dirige

N N

Sessão Actor
Director Filme Filme
1 naciona estrangeiro
l

Se prestarmos atenção na entidade filme, poderemos observar que existe um agrupamento


de nacionalidade de filmes: filme nacional e filme estrangeiro. Observando mais
atentamente a entidade filme, nota-se que a ocorrência de Gênero pode ter muitas
repetições.

Relacionamentos

Actua duração Passa


Código do actor Código do filme
Código do filme Identificação de cinema
Assim, apresenta-se as entidades e seus atributos:

Cinema Filme Actor


Identificação do cinema Código do filme Código do actor
Cinema Título em português Idade
Nome Título original Nome do actor
Endereço Impropriedade Nacionalidade
Rua/avenida Duração
Bairro País de origem
Município Gênero
Província
Capacidade

Sessão Gênero Filme nacional Filme estrangeiro


Data da sessão Código Título original Título original
Hora da sessão Descrição Título em português
Público da sessão

Após a modelagem de dados usemos mysql server:

1- Create database Cinemas;


2- Use Cinemas;
3- Criar as tabelas:
CREATE TABLE actor (
cdactor INTEGER NOT NULL,
nome_actor char (30) NULL,
idade INTEGER NULL,
nacionalidade char (20) NULL,
PRIMARY KEY (cdactor)
);

CREATE TABLE género (


Cd_genero INTEGER NOT NULL,
nome_genero char (30) NULL,
PRIMARY KEY (cd_genero)
);

CREATE TABLE filme (


cdfilme INTEGER NOT NULL,
cddirector INTEGER NULL,
titulo_original char (30) NULL,
titulo_brasil char (30) NULL,
impropriedade INTEGER NOT NULL,
duração INTEGER NULL,
origem char (15) NULL,
cd_genero INTEGER NULL,
PRIMARY KEY (cdfilme),
FOREIGN KEY (cddirector)
REFERENCES actor,
FOREIGN KEY (cd_genero)
REFERENCES género
);
CREATE INDEX XIF19filme ON filme (
cd_genero
);
CREATE INDEX XIF24filme ON filme (
Cddirector
);

CREATE TABLE elenco (


cdactor INTEGER NOT NULL,
cdfilme INTEGER NOT NULL,
numero_personagem INTEGER NOT NULL,
tempo_de_atuacao DATE NULL,
nome_personagem char (30) NULL,
PRIMARY KEY (cdactor, cdfilme, numero_personagem),
FOREIGN KEY (cdfilme)
REFERENCES filme,
FOREIGN KEY (cdactor)
REFERENCES actor
);
CREATE INDEX XIF22elenco ON elenco (
cdactor
CREATE INDEX XIF23elenco ON elenco (
cdfilme
);

CREATE TABLE cinema(


Cdcinema INTEGER NOT NULL,
nome_fantasia CHAR (30) NULL,
Logradouro CHAR (30) NULL,
Bairro CHAR (30) NULL,
Municipio CHAR (30) NULL,
Provincia CHAR (30) NULL,
Capacidade INTEGER NULL,
PRIMARY KEY (cdcinema)
);

CREATE TABLE passa (


cdcinema INTEGER NOT NULL,
cdfilme INTEGER NOT NULL,
data_inicio_exibicao DATE NULL,
data_fim_exibicao DATE NULL,
PRIMARY KEY (cdcinema, cdfilme),
REFERENCES filme,
FOREIGN KEY (cdcinema)
REFERENCES cinema
);
CREATE INDEX XIF17 passa ON passa (
cdcinema
);
CREATE INDEX XIF18passa ON passa (
cdfilme
);

CREATE TABLE sessão (


cdfilme INTEGER NULL,
cdcinema INTEGER NULL,
data_sessao DATE NULL,
publico INTEGER NULL,
horario_sessão DATE NULL,
FOREIGN KEY (cdcinema, cdfilme)
REFERENCES passa
);
CREATE INDEX XIF20 sessao ON sessão (
cdfilme,
cdcinema
);

Você também pode gostar