Escolar Documentos
Profissional Documentos
Cultura Documentos
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
Banco de Dados II
Continuação...
Edição de Scripts, SQL DDL: Construção do Esquema (tabelas)
Linguagem SQL - DDL
▪ Criando tabelas em um Banco de Dados
▪ Sintaxe geral
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
Linguagem SQL - DDL
▪ Principais Tipos de Dados
✓ CHAR(M) – String que ocupa tamanho fixo entre 0 e 255 caracteres
✓ VARCHAR(M) – String de tamanho variável, até 65535 caracteres.
✓ MEDIUMTEXT – Permite armazenar até 16.777.215 caracteres.
✓ BLOB (64KB) / MEDIUMBLOB(16MB)/ LONGBLOB(4GB) – Campo binários ‘Binary Large Objects’, são usados para
armazenar grandes quantidades de dados, como imagens.
✓ DATE – Uma data de 01/01/1000 a 31/12/9999, no formato YYYY-MM-DD
✓ DATETIME – Uma combinação de data e hora de 01/01/1000 00:00:00 a 31/12/9999 23:59:59, no formato YYYY-
MM-DD HH:MM:SS
✓ TIME – Hora apenas, no formato HH:MM:SS
✓ YEAR(M) – Ano nos formatos de 2 ou 4 dígitos; Se forem 2 (YEAR(2)), ano vai de 1970 a 2069; para 4 (YEAR(4)), vai
de 1901 a 2155. O padrão é 4.
Linguagem SQL - DDL
▪ Principais Tipos Inteiros
BIGINT
INT
MEDIUMINT
SMALLINT
TINYINT
Aluno ( foto, matriculaAluno, nome, email, login, senha, logradouro, bairro, município, estado, cep, codigoCurso,
codigoCurso como chave estrangeira referencia Curso(codigoCurso) );
Professor ( foto, matriculaProfessor, nome, email, login, senha, codigoDepartamento, codigoDepartamento
como chave estrangeira referencia Departamento(codigoDepartamento) );
Departamento ( codigoDepartamento, nomeDepartamento );
Disciplina ( codigoDisciplina, nomeDisciplina, descricaoCurricular );
Curso ( codigoCurso, nomeCurso );
Exercício – Estudo de Caso
Escrever um script SQL para implementação do modelo lógico abaixo (Relacionamentos):
Cursa ( matriculaAluno, codigoDisciplina, notaFinal, matriculaAluno como chave estrangeira referencia
Aluno(matriculaAluno), codigoDisciplina como chave estrangeira referencia Disciplina(codigoDisciplina) );
Realizou ( codigoDisciplina, matriculaAluno, ano, semestre, notaFinal, codigoDisciplina como chave estrangeira
referencia Disciplina(codigoDisciplina), matriculaAluno como chave estrangeira referencia
Aluno(matriculaAluno) );
Possui ( codigoDisciplina, codigoCurso, codigoDisciplina como chave estrangeira referencia
Disciplina(codigoDisciplina), codigoCurso como chave estrangeira referencia Curso(codigoCurso) );
Habilitacao ( codigoProfessor, codigoDisciplina, dataHabilitacao, codigoProfessor como chave estrangeira
referencia Professor(matriculaProfessor), codigoDisciplina como chave estrangeira referencia
Professor(matriculaProfessor) );
Regencia ( codigoProfessor, codigoDisciplina, ano, semestre, codigoProfessor como chave estrangeira referencia
Professor(matriculaProfessor), codigoDisciplina como chave estrangeira referencia
Disciplina(codigoDisciplina) );
preRequisito ( codigoDisciplina, codigoDisciplinaPreRequisito, codigoDisciplina como chave estrangeira referencia
Disciplina(codigoDisciplina), codigoDisciplinaPreRequisito como chave estrangeira referencia
Disciplina(codigoDisciplina) );
Exercício – Estudo de Caso
▪ Dica 1:
✓ Chave Primária Multivalorada;
✓ Mais de uma Chave Estrangeira na mesma Tabela;
Realizou
matriculaAluno | codigoDisciplina Possui
codigoCurso | codigoDisciplina
Curso
codigoCurso | codigoDepartamento Habilitacao Regencia
matriculaProfessor | codigoDisciplina matriculaProfessor | codigoDisciplina
Departamento Professor
codigoDepartamento | nomeDepartamento matriculaProfessor | codigoDepartamento
Sugestão de Leitura
• usuário: root
• senha: desenv1
Instalação MySQL
mysql> SHOW DATABASES;
Instalação MySQL
mysql> SHOW DATABASES;
mysql> SELECT * FROM usuarios WHERE nome like '%Maria%' ORDER BY codigo ASC;
Aluno ( foto, matriculaAluno, nome, email, login, senha, logradouro, bairro, município, estado, cep, codigoCurso,
codigoCurso como chave estrangeira referencia Curso(codigoCurso) );
Insert into Aluno (foto, matriculaAluno, nome, email, login, senha, logradouro,
bairro, municipio, estado, cep, codigoCurso) values
Aluno ( foto, matriculaAluno, nome, email, login, senha, logradouro, bairro, município, estado, cep, codigoCurso,
codigoCurso como chave estrangeira referencia Curso(codigoCurso) );
Insert into Aluno (foto, matriculaAluno, nome, email, login, senha, logradouro,
bairro, municipio, estado, cep, codigoCurso) values
1 2
Aluno ( foto, matriculaAluno, nome, email, login, senha, logradouro, bairro, município, estado, cep, codigoCurso,
codigoCurso como chave estrangeira referencia Curso(codigoCurso) );
Cursa ( matriculaAluno, codigoDisciplina, notaFinal, matriculaAluno como chave estrangeira referencia Aluno(matriculaAluno),
codigoDisciplina como chave estrangeira referencia Disciplina(codigoDisciplina) )
Realizou ( codigoDisciplina, matriculaAluno, ano, semestre, notaFinal, codigoDisciplina como chave estrangeira
referencia Disciplina(codigoDisciplina), matriculaAluno como chave estrangeira referencia
Aluno(matriculaAluno) );
Update Realizou
set notaFinal = notaFinal*0.1
where matriculaAluno = 123 AND codigoDisciplina = 246;
Update Aluno
set email = ’joao@jotmail.com’
where matriculaAluno = 123;
Linguagem SQL - DML
▪ SELECT
▪ Sintaxe geral
SELECT <listaDeCampos>
FROM nomeTabela
WHERE CONDICAO;
Aluno ( foto, matriculaAluno, nome, email, login, senha, logradouro, bairro, município, estado, cep, codigoCurso,
codigoCurso como chave estrangeira referencia Curso(codigoCurso) );