Buscar

SQL - Introdução

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SQL
PROF.: JONATHAS JIVAGO DE ALMEIDA CRUZ
INSTITUTO FEDERAL DE 
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
PIAUÍ
Campus Piripiri
Tecnologias e 
Linguagens para 
Banco de Dados
SQL
 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
2
SQL
 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.
3
SQL
 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
4
Linguagens do Banco de Dados
 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
5
Linguagens do Banco de Dados
 DDL - Linguagem de Definição de Dados
 Definição do Esquema
 Restrições de domínio
 Integridade referencial
6
SQL VS MYSQL
 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.
7
SQL VS MYSQL
 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. 
8
SQL – REGRAS (CONVENÇÕES)
 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 (;)
9
Instalação do MySQL
 Baixar o MySQL do site oficial e executar o instalador
 http://dev.mysql.com/downloads/mysql/
10
Instalação do MySQL 11
Porque o MySQL? 12
CONEXÃO COM MYSQL
 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.
13
CONEXÃO COM MYSQL
 Abrir o Prompt Comando do Windows.
 Atalho: Win + R
 Executar: cmd
14
CONEXÃO COM MYSQL
 Abrir o Prompt Comando do Linux
mysql –u usuario –p
15
Como criar um Banco de Dados
 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.
16
Mostrar Banco de Dados Existentes
 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; 
17
Deletar um Banco de Dados 
 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; 
18
Cuidado ao Deletar
 É 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!!! ☺
19
Usar um banco de Dados
 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.
20
Usar um banco de Dados
 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.
21
Como criar tabelas
 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.
22
Como criar tabelas
 mysql> CREATE TABLE Pessoa ( 
nome CHAR (15), 
sobrenome CHAR (20) 
); 
Nome da 
Tabela
Tamanho do 
Campo
Tipo de 
Dados
Atributo da 
Tabela
Comando 
SQL para 
criar tabelas
23
Tipos de dados em SQL
 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;
24
Tipos de dados em SQL
7. TIME: Para horas
25
Mostrar Tabelas
 Para exibir a lista de tabelas do banco de dados que
está usando atualmente, basta utilizar o comando:
mysql> SHOW TABLES; 
26
Remover Tabelas
 Para remover uma tabela do banco de dados que está
usando atualmente, basta utilizar o comando:
mysql> DROP TABLE <tabela>;
27
Exemplo de Tabela
matricula nome idade endereco
Aluno
CREATE TABLE aluno (
matricula int(11) NOT NULL AUTO_INCREMENT,
nome varchar(100),
idade int(2),
endereco text,
PRIMARY KEY (matricula) );
int(11) varchar(100) int(2) text
28
Mostrar Estrutura Da Tabela
 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;
29
Inserir Valores Na Tabela 
 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’, ...);
30
Ex.: Inserir dados na tabela Alunos
matricula nome idade endereco
1 Juca 32 Rua Melinda 
2 Melissa 20 Rua Dom Pedro
3 Thiago 17 Rua Quinze
Alunos
INSERT INTO alunos (nome, idade, endereço) VALUES
('Juca’, 32, ‘Rua Melinda’) ;
31
Selecionar Valores Da Tabela
 É 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; 
32
Alterar Tabela 
 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. 
33
Renomear, Adicionar, Modificar e 
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;
34
Atualizar campos
 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; 
35
Atividade
 Façam as seguintes tabelas
id nome email
1 Oreilly oreilly@email.com
2 Wrox wrox@email.com
3 Apress apress@email.com
4 Casa do Código cc@email.com
editora
id titulopreco
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
livro
No entanto, sabemos que 
livros são publicados 
por editoras.
Hum! Como efetivamos um 
relacionamento usando 
SQL? E como ficam as 
tabelas?
36
Mapeamento de 
Relacionamentos 
37
Temos a seguinte situação:
editora
id
nome
email
livro
id
titulo
preco
Publicar
N1
38
Relacionamentos e chaves 
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.
39
Mapeando Relacionamento com 
Cardinalidade 1:N
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
id nome email
Editora
id titulo preco
Livro
Nesse momento, devemos 
mapear o relacionamento 
entre as tabelas!
idEditora
40
Adicionando Chave Estrangeira
 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); 
41
Adicionar Chave Estrangeira
 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)); 
42
Listando Restrições (chaves, índices) 
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>;
43
Remover Chave Estrangeira
 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;
44
Mapeando de Relacionamento 
com Cardinalidade 1:1
Professor
cpf
nome
endereco
Projeto
codigo
Descrição
Gerenciar
11
45
Mapeamento da Cardinalidade 
1:1
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
cpf nome endereco
Professor
codigo descricao
Projeto
Nesse momento, devemos 
mapear o relacionamento 
entre as tabelas!
cpf
46
Mapeamento da Cardinalidade 
1:1
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
CPF nome endereco
Professor
codigo descricao
Projeto
Nesse momento, devemos 
mapear o relacionamento 
entre as tabelas!
codigo
47
Mapeando de Relacionamento 
com Cardinalidade N:N
Professor
CPF
nome
endereco
Disciplina
codigo
nome
Ministrar
NN
49
Mapeamento da Cardinalidade 
N:N
 Como resultados das etapas 1 e 2 temos a criação das tabelas:
cpf nome endereco
Professor
codigo nome
Disciplina
cpf codigo
Nesse mapeamento, devemos 
criar uma nova tabela!
50
Mapeamento de 
Particularidades do MER
51
Mapeamento de Atributo 
multivalorado
Professor Telefone
CPF Nome
52
Atributo multivalorado mapeado 
para o modelo relacional
 Como resultados das etapas 1 e 2 temos a criação da tabelas:
cpf nome
professor
telefone_professor
Nesse mapeamento, devemos 
criar uma nova tabela!
cpf telefone
53
Mapeando de Atributo composto
Professor
Telefone
CPF Nome
Endereço
Rua
Cidade
Estado
CEP
54
Atributo composto mapeado para 
o modelo relacional
 Como resultados das etapas 1 e 2 temos a criação da tabelas:
cpf nome
professor
telefone_professor
Nesse mapeamento, o endereço 
é desmembrado em seus 
subatributos!
cpf telefone
enderecorua cidade estado cep
55
Mapeamento de relacionamento 
recursivo
Monitorar
Aluno
1 N
matricula Nome
56
Mapeamento de relacionamento 
recursivo
 Como resultados das etapas 1 e 2 temos a criação da tabela:
matricula nome
aluno
Nesse mapeamento, devemos 
expandir a tabela com um 
novo atributo!
matricula_monitor
57
Uffffaa!!!!!! Acabamos! 58
Outras particularidades
 Mapeamento de relacionamentos
 Ternários,
 Quaternários,
 ...
 Mapeamento de generalizações/especializações
 Mapeamento de agregação
59

Continue navegando