Você está na página 1de 58

Tecnologias e

INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
PIAUÍ Linguagens para
Banco de Dados
Campus Piripiri

SQL
PROF.: JONATHAS JIVAGO DE ALMEIDA CRUZ
SQL 2

 A álgebra relacional fornece uma notação formal e


concisa para representar consultas
 Os sistemas comerciais exigem uma linguagem mais
amigável
 A SQL é a linguagem de consulta mais influente
comercialmente
 Embora ela seja descrita como uma linguagem de
consulta ela pode fazer muito mais do que
simplesmente consultar no banco de dados
SQL 3

 Structured Query Language - SQL, ou Linguagem de


Consulta Estruturada ou SQL.
 Trata-se de uma linguagem específica para a
manipulação de tabelas de dados;
 A linguagem padrão universal para manipular bancos
de dados relacionais através dos SGBDs.
SQL 4

 A SQL possui várias partes


1 – Linguagem de definição de dados (DDL)
2 – Linguagem de manipulação de dados (DML)
3 – Definição de Views
4 – Controle de Transações
5 – Autorização
Linguagens do Banco de Dados 5

 DML - Linguagem de Manipulação de Dados


 Recuperação de Informações
 Inserção de novas informações
 Exclusão de informações
 Modificação de informações armazenadas no
banco de dados
Linguagens do Banco de Dados 6

 DDL - Linguagem de Definição de Dados


 Definição do Esquema
 Restrições de domínio
 Integridade referencial
SQL VS MYSQL 7

 Só para constarmos o MySQL não é uma extensão do


SQL.
 O MySQL é um Sistema de Gerenciamento de Banco de
Dados
 O SQL é a linguagem para definição e manipulação
dos dados no SGBD.
SQL VS MYSQL 8

 Para utilizar as características e o funcionamento do SQL


é preciso se servir de um Sistema de Gerenciamento de
Bancos de Dados (SGBD), isto é, de um ambiente no
qual possamos utilizar os comandos desta linguagem
para manipular dados.
SQL – REGRAS (CONVENÇÕES) 9

 Todas as palavras-chave das instruções SQL serão


escritas em maiúsculo;
 Sempre no final de cada instrução, deve ser terminado
com um ponto-e-virgula (;)
Instalação do MySQL 10

 Baixar o MySQL do site oficial e executar o instalador


 http://dev.mysql.com/downloads/mysql/
Instalação do MySQL 11
Porque o MySQL? 12
CONEXÃO COM MYSQL 13

 Precisamos utilizar um comando para acessar o prompt


do MySQL.
 Ao instalarmos o MySQL é obrigatório criar um usuário e
senha para o acesso dos Banco de Dados.
 O usuário é root e a senha é root.
 Estas informações (usuário e senha) são necessários
para acessar o banco de dados.
CONEXÃO COM MYSQL 14

 Abrir o Prompt Comando do Windows.


 Atalho: Win + R
 Executar: cmd
CONEXÃO COM MYSQL 15

 Abrir o Prompt Comando do Linux


mysql –u usuario –p
Como criar um Banco de Dados 16

 Para criar de um banco de dados o comando é simples.


mysql> CREATE DATABASE meu-banco;
 CREATE DATABASE seguido do nome desejado do banco
de dados.
Mostrar Banco de Dados Existentes 17

 Podemos verificar rapidamente a existência do BD


recém-criado, bem como a de todos os outros criados
anteriormente, utilizando a instrução SHOW DATABASES
(mostrar bancos de dados);
mysql> SHOW DATABASES;
Deletar um Banco de Dados 18

 Para excluir um banco de dados, usa-se o comando


DROP DATABASE, seguido do nome do banco de dados
que deseja deletar.

mysql> DROP DATABASE meu-banco;


Cuidado ao Deletar 19

 É preciso ressaltar que, ao apagar um banco de dados,


todas as suas tabelas e os dados nelas contidos
também serão apagados e, portanto, perdidos de
maneira irreversível.

 ENTÃO, CUIDADO!!! ☺
Usar um banco de Dados 20

 Como vimos, podemos criar vários bancos de dados,


porém, podemos manipular apenas um por vez. Assim,
antes de começar, é preciso selecionar qual será o
banco de dados que queremos alterar.
 Isso é feito utilizando o comando USE (“usar” em inglês),
seguido pelo nome do banco de dados em questão.
Usar um banco de Dados 21

 Comando para utilizar um banco de dados:


mysql> USE meu-banco;
 Esse comando é sempre necessário quando se quer
realizar qualquer o operação (inserir dados, alterar
relações, remover índices, etc.) no banco de dados.
Como criar tabelas 22

 A regra base do comando para criar uma tabela no


banco de dados é o comando para criar tabela,
seguido do nome da tabela.
 Também é necessário informar os campos da tabela,
seu tipo e seu tamanho.
Como criar tabelas 23
Comando
SQL para
criar tabelas

 mysql> CREATE TABLE Pessoa (


nome CHAR (15),
sobrenome CHAR (20)
Nome da
); Tabela

Atributo da Tipo de Tamanho do


Tabela Dados Campo
Tipos de dados em SQL 24

 Existem vários tipos possíveis de dados no SQL, os mais comuns


são:
1. INT ou INTEGER: Para inteiros de tamanho normais
2. DOUBLE: pra números com ponto flutuante
3. NUMERIC: valor numérico com n dígitos e d casas decimais
4. TIMESTAMP ou DATE: Para data e hora e pode ser atribuídos
automaticamente;
5. CHAR e VARCHAR: Para caracteres até no máx. 255 de tamanho;
6. TEXT ou LONGTEXT: Para textos longos;
Tipos de dados em SQL 25

7. TIME: Para horas


Mostrar Tabelas 26

 Para exibir a lista de tabelas do banco de dados que


está usando atualmente, basta utilizar o comando:
mysql> SHOW TABLES;
Remover Tabelas 27

 Para remover uma tabela do banco de dados que está


usando atualmente, basta utilizar o comando:
mysql> DROP TABLE <tabela>;
Exemplo de Tabela 28

int(11) varchar(100) int(2) text

Aluno
matricula nome idade endereco

CREATE TABLE aluno (


matricula int(11) NOT NULL AUTO_INCREMENT,
nome varchar(100),
idade int(2),
endereco text,
PRIMARY KEY (matricula) );
Mostrar Estrutura Da Tabela 29

 Podemos também analisar a estrutura de uma tabela


de maneira aprofundada usando o comando DESCRIBE
(“descrever”, em inglês), seguido pelo nome da tabela.
mysql> DESCRIBE minha-tabela;
OU
mysql> EXPLAIN minha-tabela;
OU
mysql> DESC minha-tabela;
Inserir Valores Na Tabela 30

 O comando de INSERIR é um dos mais utilizados.


 Para inserir valores em uma determinada tabela, basta seguir a
regra:
mysql> INSERT INTO nome_da_tabela (‘campo1’, ‘campo2’,
...) VALUES (‘valor1’, ‘valor2’, ...);
Ex.: Inserir dados na tabela Alunos 31

Alunos
matricula nome idade endereco
1 Juca 32 Rua Melinda
2 Melissa 20 Rua Dom Pedro
3 Thiago 17 Rua Quinze

INSERT INTO alunos (nome, idade, endereço) VALUES


('Juca’, 32, ‘Rua Melinda’) ;
Selecionar Valores Da Tabela 32

 É possível selecionar valores da tabela, utilizando o comando


SELECT do SQL.
 O comando SELECT é, basicamente, a ferramenta principal para
consultar informações de um banco de dados, por isso, é
comumente chamado de query.
mysql> SELECT dados_desejados FROM nome_tabela;
Alterar Tabela 33

 Para alterar uma tabela, basta utilizar ALTER TABLE


seguido do nome da tabela na qual deseja-se alterar e
qual operação de alteração quer fazer.
 Operações: Adicionar novo campo, renomear nome da
tabela e etc.

 As operações estão em cores destacadas.


Renomear, Adicionar, Modificar e 34

Excluir Atributos
 Comando para renomear o nome de uma tabela:
mysql> ALTER TABLE pessoas RENAME TO cadastros;
 Comando para adicionar um atributo:
mysql> ALTER TABLE pessoas ADD COLUMN idade INT(3);
 Comando para alterar o tipo de um atributo:
mysql> ALTER TABLE pessoas MODIFY idade INT(5);
 Comando para remover um atributo:
mysql> ALTER TABLE pessoas DROP idade;
 Comando para renomear um atributo:
mysql> ALTER TABLE pessoas CHANGE idade age INT(5);
 Configurar valor default
mysql> ALTER TABLE pessoas ALTER idade SET DEFAULT 5;
Atualizar campos 35

 Esse comando atualiza os valores de campos em tabelas:


mysql> UPDATE <nome_da_tabela>
SET atributo_1=valor_1, atributo_2=valor_2, ...
WHERE algum_atributo=algum_valor;
Atividade 36

 Façam as seguintes tabelas


editora No entanto, sabemos que
livros são publicados
id nome email
por editoras.
1 Oreilly oreilly@email.com
2 Wrox wrox@email.com
Hum! Como efetivamos um
3 Apress apress@email.com
relacionamento usando
4 Casa do Código cc@email.com SQL? E como ficam as
tabelas?
livro
id titulo preco
1 Aprendendo C# 89.90
2 Introdução ao JSF 2 122.90
3 JSF 2 Avançado 149.90
4 A lógica do Jogo 39.90
37

Mapeamento de
Relacionamentos
Temos a seguinte situação: 38

id id

1 N
nome editora Publicar livro titulo

email preco
Relacionamentos e chaves 39

estrangeiras:
 Devemos seguir as seguintes etapas:
1. As entidades são transformadas em tabelas;
2. Os atributos são transformados em colunas da tabela
3. Em seguida deve ser mapeado o relacionamento, obedecendo-
se a cardinalidade. OBS.: Para cada tipo de cardinalidade,
temos regras a serem seguidas.
Mapeando Relacionamento com 40

Cardinalidade 1:N
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
Editora
id nome email

Livro
Nesse momento, devemos
id titulo preco idEditora
mapear o relacionamento
entre as tabelas!
Adicionando Chave Estrangeira 41

 O seguinte comando adiciona uma chave estrangeira a uma


tabela já criada:
mysql> ALTER TABLE <tabela1>
ADD CONSTRAINT fk_tabela1_tabela2
FOREIGN KEY (<atributo_chave_estrangeira>)
REFERENCES tabela2(atributo_chave_primária);
Adicionar Chave Estrangeira 42

 O seguinte comando adiciona uma chave estrangeira a uma tabela


durante a criação da tabela:
mysql> CREATE TABLE <tabela1>(
<atributo_1> <tipo de dado>[NOT NULL], ...,
PRIMARY KEY (<atributo_1>,<atributo_2>, ...),
CONSTRAINT fk_tabela1_tabela2 FOREIGN KEY (<atributo>)
REFERENCES <tabela2>(atributo_chave_primária));
Listando Restrições (chaves, índices) 43

das tabelas
 Comandos para exibir a estrutura da tabela
mysql> EXPLAIN <tabela>;
mysql> DESCRIBE <tabela>;
mysql> DESC <tabela>;
mysql> SHOW COLUMNS FROM <tabela>;
 Os comandos listados acima não exibem os índices e nem as
chaves estrangeiras presentes nas tabelas. O comando que faz
isso é o seguinte:
mysql> SHOW CREATE TABLE <tabela>;
Remover Chave Estrangeira 44

 Esse comando apaga a chave estrangeira;


mysql> ALTER TABLE tabela1
DROP FOREIGN KEY fk_tabela1_tabela2;
 Esse comando apaga o índice criado na tabela;
mysql> ALTER TABLE tabela1
DROP INDEX fk_tabela1_tabela2;
Mapeando de Relacionamento 45

com Cardinalidade 1:1

cpf
codigo
1 1
nome Professor Gerenciar Projeto
Descrição
endereco
Mapeamento da Cardinalidade 46

1:1
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
Professor
cpf nome endereco

Projeto
Nesse momento, devemos
codigo descricao cpf
mapear o relacionamento
entre as tabelas!
Mapeamento da Cardinalidade 47

1:1
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
Professor
CPF nome endereco codigo

Projeto
Nesse momento, devemos
codigo descricao
mapear o relacionamento
entre as tabelas!
Mapeando de Relacionamento 49

com Cardinalidade N:N

CPF
codigo
N N
nome Professor Ministrar Disciplina
nome
endereco
Mapeamento da Cardinalidade 50

N:N
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
Professor
cpf nome endereco

cpf codigo
Disciplina
codigo nome
Nesse mapeamento, devemos
criar uma nova tabela!
51

Mapeamento de
Particularidades do MER
Mapeamento de Atributo 52

multivalorado

CPF Nome

Professor Telefone
Atributo multivalorado mapeado 53

para o modelo relacional


 Como resultados das etapas 1 e 2 temos a criação da tabelas:
professor
cpf nome

telefone_professor
cpf telefone

Nesse mapeamento, devemos


criar uma nova tabela!
Mapeando de Atributo composto 54

CPF Nome
Rua

Cidade
Professor Endereço
Estado

CEP
Telefone
Atributo composto mapeado para 55

o modelo relacional
 Como resultados das etapas 1 e 2 temos a criação da tabelas:
professor
cpf nome endereco
rua cidade estado cep

telefone_professor
cpf telefone

Nesse mapeamento, o endereço


é desmembrado em seus
subatributos!
Mapeamento de relacionamento 56

recursivo
matricula Nome

Aluno
1 N

Monitorar
Mapeamento de relacionamento 57

recursivo
 Como resultados das etapas 1 e 2 temos a criação da tabela:
aluno
matricula nome matricula_monitor

Nesse mapeamento, devemos


expandir a tabela com um
novo atributo!
Uffffaa!!!!!! Acabamos! 58
Outras particularidades 59

 Mapeamento de relacionamentos
 Ternários,
 Quaternários,
 ...
 Mapeamento de generalizações/especializações
 Mapeamento de agregação

Você também pode gostar