MySQL - Criando o Banco de Dados
MySQL - Criando o Banco de Dados
Rebeca Barros
Modelo Conceitual
Modelo Entidade-
Relacionamento (ER)
Modelo Lógico
Modelo Relacional
4
SQL
▪ SQL pode ser considerada um dos principais
motivos pelo sucesso dos bancos relacionais.
Como ela se tornou um padrão, os usuários
ficaram menos preocupados com a migração de
uma aplicação de outro sistema de banco de
dados pra um relacional.
▪ Mesmo que um usuário esteja insatisfeito com
um SGBD especifico, a conversão pra outro
SGBD não é tão custosa, pois ambos seguem os
mesmos padrões de linguagem.
5
SQL
▪ O resultado de uma consulta SQL é uma tabela
(também chamada, nesse contexto, de
conjunto-resultado ou, result set). Assim, uma
nova tabela permanente no BD relacional pode
ser criada armazenando o conjunto-resultado
de uma consulta. De forma semelhante, uma
consulta pode usar tanto tabelas permanentes
quanto conjuntos-resultados de outras
consultas.
6
SQL Componentes (Sublinguagens)
SQL
7
DDL
▪ Data Definition Language (DDL) consiste nos
comandos SQL que podem ser usados para definir o
esquema do banco de dados. Lida com a descrição
do esquema e é usado para criar e modificar a
estrutura do banco.
▪ Principais comandos:
▫ CREATE – usado para criar o banco de dados ou
objetos (como tabelas, índices, visões, etc..)
▫ DROP – usado para deletar objetos do banco de
dados;
▫ ALTER – usado para alterar a estrutura do banco
8
de dados.
DML
▪ Data Manipulation Language (DML) consiste nos
comandos SQL que lidam com a manipulação dos
dados presentes em um banco de dados.
▪ Principais comandos:
▫ SELECT – usado para recuperar dados do BD
▫ INSERT – usado para inserir dados em uma
tabela;
▫ UPDATE – usado para atualizar dados
existentes em uma tabela
▫ DELETE – usado para apagar dados de uma
tabela.
9
DCL
▪ Data Control Language (DCL) consiste nos
comandos SQL que lidam com acesso e permissões
e outras opções de controle em um banco de dados.
▪ Principais comandos:
▫ GRANT – concede a um usuário privilégios ao
banco de dados;
▫ REVOKE – revoca o direito de acesso de um
usuário
10
TCL
▪ Transaction Control Language (TCL) consiste nos
comandos SQL que lidam as transações dentro de
um banco de dados.
▪ Principais comandos:
▫ COMMIT – confirma uma transação;
▫ ROLLBACK – cancela uma transação no caso de
algum erro;
▫ SAVEPOINT – define um ponto salvo dentro da
transação;
▫ SET TRANSACTION – especifica as
características para uma transação.
11
TIPOS DE DADOS
MySQL
Tipos de Dados
Caracter/String
Tipos Númericos
Temporais
13
Tipos de Dados - Caractere
▪ Permite armazenar cadeias de caracteres
(letras, símbolos e números).
Tipo Descrição
CHAR(tamanho) Armazena uma string de tamanho fixo, especificado no
parênteses. Pode armazenar até 255 caracteres.
VARCHAR(tamanho) Armazena uma string de tamanho variável, o tamanho
máximo é especificado no parênteses. Pode armazenar
até 255 caracteres.
TINYTEXT Armazena uma string com tamanho máximo de 255
caracteres.
14 TEXT Armazena uma string com o máximo de 65,535 bytes
Tipos de Dados - Caractere
Tipo Descrição
BLOB Para BLOBs (Binary Large Objects). Suporta até
65,535 bytes.
MEDIUMTEXT Armazena string com tamanho máximo de 16,777,215
caracteres.
MEDIUMBLOB Para BLOBs (Binary Large Objects). Suporta até
16,777,215 bytes.
LONGTEXT Armazena string com tamanho máximo de
4,294,967,295 caracteres.
LONGBLOB Para BLOBs (Binary Large Objects). Suporta até
4,294,967,295 bytes.
15
Tipos de Dados - Caractere
Tipo Descrição
ENUM(x,y,z,etc.) Permite a entrada de valores pré-estabelecidos. É
possível armazenar até 65535 valores em uma lista
ENUM. Se um valor é inserido que não está na lista,
um valor vazio será inserido. Nota: Os valores são
organizados na ordem em que são definidos.
ENUM(‘M',‘F')
SET Similar ao ENUM mas o SET pode conter até 64 itens e
pode armazenar mais de uma escolha.
16
Tipos de Dados – Conjuntos de
Caracteres
▪ Para línguas que usam o alfabeto latino, como
inglês e português, há um número suficiente
pequeno de caracteres usados de forma a se
necessitar de apenas um byte para armazenar
cada um deles;
▪ Outras línguas como japonês, possuem um
número maior de caracteres, precisando de
mais bytes para armazenamento.
17
Tipos de Dados – Conjuntos de
Caracteres
▪ O MySQL pode armazenar dados de vários
conjuntos de caracteres e permite que você
defina o conjunto de caracteres específico para
o seu banco de dados e/ou para uma coluna da
sua tabela.
▪ O comando: SHOW CARACTER SET;
lista todos os conjuntos disponíveis no MySQL.
18
Tipos de Dados - Numéricos
▪ Permite armazenar números.
Tipo Escopo com sinal Escopo sem sinal
(unsigned)
TINYINT(tamanho) -128 a 127 0 a 255
SMALLINT(tamanho) -32768 a 32767 0 a 65535
MEDIUMINT(tamanho) -8388608 a 8388607 0 a 16777215
INT(tamanho) -2147483648 a 0 a 4294967295
2147483647
BIGINT(tamanho) -9223372036854775808 0 a 18446744073709551615
a
19
9223372036854775807
Tipos de Dados - Numéricos
Tipo Descrição
FLOAT(tamanho,d) Um número pequeno com ponto decimal. O número
máximo de dígitos pode ser especificado no parâmetro
tamanho. O número máximo de dígitos após o ponto
decimal pode ser especificado no parâmetro d.
DOUBLE(tamanho,d) Um número grande com ponto decimal. O número
máximo de dígitos pode ser especificado no parâmetro
tamanho. O número máximo de dígitos após o ponto
decimal pode ser especificado no parâmetro d.
DECIMAL(tamanho,d) Um DOUBLE armazenado como uma string,
permitindo um ponto decimal fixo. O número máximo
de dígitos pode ser especificado no parâmetro
tamanho. O número máximo de dígitos após o ponto
decimal pode ser especificado no parâmetro d.
20
Tipos de Dados - Temporais
▪ Permite armazenar datas e/ou horários.
Tipo Formato Padrão Valores Permitidos
DATE() YYYY-MM-DD '1000-01-01' até '9999-12-
31'
23
Excluir um Banco de Dados
24
Criando Tabelas
25
Criando Tabelas - Restrições
▪ DEFAULT: define um valor padrão para a coluna.
Sempre que uma nova linha for inserida, caso o
valor não seja informado, ela receberá o valor
definido em DEFAULT.
26
Criando Tabelas - Restrições
▪ NOT NULL: indica que o conteúdo da coluna não
pode ser nulo. Todas as colunas que pertencem
a chave primária da tabela devem possuir essa
restrição.
27
Criando Tabelas - Restrições
▪ UNIQUE: indica que não pode existir repetição
no conteúdo da coluna.
28
Criando Tabelas - Restrições
▪ CHECK: cria um domínio para uma coluna com
os possíveis valores que ela pode assumir.
29
Criando Tabelas - Restrições
▪ Chave Primária
30
Criando Tabelas - Restrições
▪ Chave Estrangeira
31
Criando Tabelas - Restrições
▪ Chave Estrangeira
▫ Ação determina qual ação o banco irá tomar
quando for excluída ou alterada uma linha da
tabela que contém referência a essa chave.
RESTRICT ou NO ACTION – não permite a
exclusão da chave primária
▫ CASCADE - exclui ou altera os registros
que se relacionam a ele
▫ SET NULL – altera o contéudo da coluna
para null
▫ SET DEFAULT – altera o contéudo da
32
coluna para o valor padrão
Considere o seguinte esquema relacional e crie o código SQL
para criação física do banco de dados bd_pratica;
33
Exemplo – Tabela Gravadora
34
Exemplo – Tabela CD