SlideShare uma empresa Scribd logo
1 de 51
INSTÂNCIAS E ESQUEMAS
• Instância: Os dados atuais armazenados no Banco
de Dados em um momento particular. Também
chamado estado do banco de dados.
• Esquema: Descrição da estrutura de um Banco de
Dados. Pode ser textual ou gráfico. Conhecido
também como o projeto geral do banco de dados.
INDEPENDÊNCIA DE DADOS
• Capacidade de modificar os esquemas de um banco
de dados sem afetar um esquema de nível superior.
Existem dois níveis de independência:
• Física: capacidade de modificar o esquema físico sem que
haja qualquer necessidade de reescrever alguma aplicação.
Usada para promover melhorias no desempenho.
• Lógica: capacidade de modificar o esquema lógico sem que
haja qualquer necessidade de reescrever alguma aplicação.
Necessárias quando uma estrutura lógica é alterada (ex:
inserção de novas moedas num sistema)
MODELO DE DADOS
• Conceituais (Alto Nível)
• Entidade-Relacionamento
• Objeto-Relacional (BDII)
• Orientado a Objeto (BDII)
• Implementação (Lógicos)
• Relacional
• Rede (BD mais antigos)
• Hierárquico (BD mais antigos)
• Físicos
MODELO ENTIDADE-
RELACIONAMENTO
• Modelo proposto por Peter Chen, baseado na
percepção do mundo real.
• Formado por um conjunto de objetos básicos
denominados entidades e nos relacionamentos entre
tais objetos.
• Tal modelo permite especificar a estrutura lógica do
banco de dados.
MODELO ENTIDADE-
RELACIONAMENTO
• O Diagrama Entidade-Relacionamento (DER)
permite representar graficamente a estrutura lógica
de um banco de dados.
• De um modo geral, para nos auxiliar na elaboração
de um DER, podemos dizer que os substantivos de
uma frase são as entidades e os verbos são os
relacionamentos entre as entidades.
MODELO ENTIDADE-
RELACIONAMENTO
LINGUAGEM SQL
COMANDOS DDL
• Usados para criar bancos de dados e tabelas, além de
alteração na estrutura das tabelas (acrescentar um campo,
mudar as características de um campo, excluir um campo)
• Não trabalham com dados
• Principais instruções:
• CREATE
• ALTER
• DROP
LINGUAGEM SQL - DDL
• Criação de um banco de dados
create database nome do banco;
• Criação de uma tabela
create table nome da tabela (descrição dos campos);
• Na descrição dos campos, especificamos o nome do
campo, tipo de dado, tamanho(se necessário) e
restrições
LINGUAGEM SQL - DDL
Algumas restrições:
• primary key: define o campo como chave primária
• not null: define que o campo deverá ser de preenchimento
obrigatório
• auto_increment: define que o campo será autoincrementado
(autonumeração)
• Foreign key – define o campo como chave estrangeira
TIPOS DE DADOS
Numéricos Inteiros
• Tinyint ( pequeno de -128 a 127)
• Smallint ( pequeno -32768 a 32768 )
• Int ( normal – de –8388608 a 8388607 )
• Bigint
• Numéricos Decimais
• Float
• Double
• Decimal
TIPOS DE DADOS
Data e hora
• Date
data no formato ano-mês-dia
• Datetime
combinação de data e hora (aa-mm-dd hh:mm:ss)
• Timestamp
combinação de data e hora com formato variado
• Time
hora no formato hh:mm:ss
• Year
armazena um ano
TIPOS DE DADOS
Caracter
• Char(n)
Conjunto de caracteres com tamanho fixo(n)
• Varchar(n)
Conjunto de caracteres de tamanho variável
EXEMPLO
CREATE DATABASE ESCOLA;
USE ESCOLA;
CREATE TABLE Aluno (
IDAluno Int PRIMARY KEY not null auto_increment,
NomeAluno Varchar(60) not null,
Sexo Char not null,
DataNascimento Date,
Telefone Varchar(15));
EXEMPLO
CREATE TABLE Professor (
IDProfessor Int PRIMARY KEY not null auto_increment,
NomeProfessor Varchar(60) not null,
CTPS Varchar(6) not null,
Email Varchar(200));
CREATE TABLE Curso (
IDCurso Int PRIMARY KEY not null auto_increment,
NomeCurso Varchar(30) not null,
Horas Int not null,
IDProfessor Int not null,
FOREIGN KEY(IDProfessor) REFERENCES Professor
(IDProfessor));
EXEMPLO
CREATE TABLE Estuda (
IDEstuda Int PRIMARY KEY not null auto_increment,
IDCurso Int not null,
IDAluno Int not null,
NotaAlunoCurso Double not null,
FOREIGN KEY(IDCurso) REFERENCES Curso (IDCurso),
FOREIGN KEY(IDAluno) REFERENCES Aluno (IDAluno));
LINGUAGEM SQL - DDL
• Exclusão de um banco de dados
drop database nome do banco;
• Exclusão de uma tabela
drop table nome da tabela;
Exemplos:
drop database Escola;
drop table Aluno;
drop table Professor;
LINGUAGEM SQL - DDL
Alteração das colunas de uma tabela
• Acrescentar um campo
alter table nome da tabela
add campo/especificações;
• Remover um campo
alter table nome da tabela
drop campo;
• Alterar um campo
alter table nome da tabela
change campo novas especificações;
EXEMPLO
• Adicionar um campo chamado Celular à tabela
Professor:
alter table Professor add Celular varchar(15);
• Adicionar um campo chamado RG à tabela Aluno:
alter table ALuno add RG varchar(10);
• Adicionar um campo chamado NumDependentes à
tabela Professor:
alter table Professor add NumDependentes tinyint not null;
EXEMPLO
• Alterar o tamanho do campo Email para 150 caracteres:
alter table Professor change Email Email varchar(150);
• Alterar o nome do campo Telefone na tabela Aluno para
TelefoneAluno
alter table Aluno change Telefone TelefoneAluno varchar(15);
EXEMPLO
• Remover da tabela Professor o campo Email:
alter table Professor drop Email;
• Remover da tabela Aluno o campo DataNascimento:
alter table Aluno drop DataNascimento;
LINGUAGEM SQL – DML
• Inserção de dados em uma tabela
insert into nome da tabela values(lista de valores);
Obs.:
• Os valores devem estar separados por vírgulas e
devem respeitar a ordem dos campos na tabela.
• Quando um campo for auto_increment, seu valor deve
ser substituído pela sentença null
EXEMPLO
• Inserir dados na tabela ALUNO
insert into ALUNO values (null,”DANIELA DIAS”,”F”,”1989-04-
11”,”(31)32224411”);
insert into ALUNO values (null,”JULIANO DO CARMO”,”M”,”1989-
11-03”,”(31)33339987”);
insert into ALUNO values (null,”ISABEL MENDES”,”F”,”1990-01-
03”,”(31)37412200”);
insert into ALUNO values (null,”CARLOS PEIXOTO”,”M”,”1988-10-
01”,”(31)33347411”);
EXEMPLO
Inserir dados na tabela PROFESSOR
insert into PROFESSOR values
(null,”ALEXANDRE”,”123456”,”alexandre@yahoo.com.br”);
insert into PROFESSOR values
(null,”MARIA”,”111111”,”maria@terra.com.br”);
insert into PROFESSOR values
(null,”EDUARDO”,”123456”,”eduardo@ig.com.br”);
insert into PROFESSOR values
(null,”LUCIANA”,”938826”,”luciana@gmail.com”);
EXEMPLO
Inserir dados na tabela CURSO
insert into CURSO values (null,”VB.NET”,60,1);
insert into CURSO values (null,”PHP”,120,3);
insert into CURSO values (null,”JAVA”,80,4);
insert into CURSO values (null,”SQL”,40,1);
insert into CURSO values (null,”LÓGICA”,60,2);
EXEMPLO
Inserir dados na tabela ESTUDA
insert into ESTUDA values (null,3,1,70);
insert into ESTUDA values (null,3,2,75);
insert into ESTUDA values (null,1,4,90);
insert into ESTUDA values (null,1,2,55);
insert into ESTUDA values (null,2,3,50);
LINGUAGEM SQL – DML
• Alteração de dados em uma tabela
UPDATE tabela SET coluna = novo_valor_armazenado
• WHERE coluna = valor_filtro;
• ‘
LINGUAGEM SQL – DML
Exclusão de dados em uma tabela
delete from nome da tabela where condição;
Obs.:
• A condição dever ser representada por uma expressão
lógica que consiga localizar o registro a ser excluído
• Caso a condição localize mais de um registro, eles
serão excluídos.
• A condição é opcional. Se não for especificada, serão
excluídos TODOS os registros da tabela.
EXEMPLO
• Excluir o aluno cuja matrícula seja 7
delete from ALUNO where IDAluno=7;
• Excluir o professor de nome “ALEXANDRE”
delete from PROFESSOR where NomeProfessor =
“ALEXANDRE”;
• Excluir os cursos que tenham carga horária inferior
a 30
delete from CURSO where HORAS<30;
EXEMPLO
• Excluir todos os alunos cadastrados
delete from ALUNO;
• Excluir todos os cursos com mais de 60 horas
ministrados pelo professor com código 1
delete from CURSO where Horas>60 And IDProfessor = 1;
• Excluir todos os cursos que tenham a palavra
“CLIPPER” em qualquer lugar do nome
delete from CURSO where NomeCurso like “%CLIPPER%”;
LINGUAGEM SQL - DQL
• Parte da linguagem SQL destinada a executar
operações de consultas (recuperação) de registros,
ou seja, permite visualizar o conteúdo parcial ou
total de tabelas.
• Representada pela instrução SELECT.
• Como o formato desta instrução é muito extenso,
vamos apresentando suas sentenças aos poucos.
LINGUAGEM SQL - DQL
• select campos from nome da tabela;
• Neste formato, podemos visualizar alguns ou todos
os campos de todos os registros de uma tabela.
• No lugar de campos, descrevemos o nome da cada
campo que deve aparecer na listagem, separados
por vírgulas.
• Caso queira que todos os campos apareçam na
listagem, use o caracter *
EXEMPLO
• Visualizar código e nome de todos os alunos
cadastrados
select IDAluno, NomeAluno from ALUNO;
• Visualizar código, nome e carga horária de todos os
cursos cadastrados
select IDCurso, NomeCurso, Horas from CURSO;
• Visualizar nome e email de todos os professores
cadastrados
select NomeProfessor, Email from PROFESSOR;
EXEMPLO
• Visualizar todos os campos dos alunos cadastrados
select * from ALUNO;
• Visualizar todos os campos dos cursos cadastrados
select * from CURSO;
• Visualizar todos os campos dos professores
cadastrados
select * from PROFESSOR;
LINGUAGEM SQL - DQL
A sentença WHERE
• Vem após a especificação do nome da tabela
• Permite criar uma ou mais condições, que serão usadas para
selecionar os registros retornados pela consulta
• Aceita os operadores lógicos AND, OR, NOT
EXEMPLO
• Visualizar todos os campos dos alunos do sexo feminino
(F)cadastrados
select * from ALUNO where SEXO = “F”;
• Visualizar todos os campos dos cursos que tenham
carga horário igual ou superior a 80 horas
select * from CURSO where HORAS >= 80;
• Visualizar todos os campos dos cursos lecionados pelo
professor de código 2 que tenham até 40 horas
select * from CURSO where IDPROFESSOR = 2 and HORAS <=40;
LINGUAGEM SQL - DQL
• A sentença ORDER BY
• Numa consulta, os registros são apresentados conforme
ordem de armazenamento na tabela
• Através da sentença ORDER BY, é possível definir novos
campos e forma de ordenação(crescente/decrescente)
• Deve ser colocada após a sentença WHERE
• Podem ser definidos quantos campos o usuário quiser. Caso
haja coincidência de valores no primeiro campo, a
ordenação será feita pelo segundo. Isso vale para os demais
campos citados.
• Para ordenação decrescente, deve ser usada a sentença
DESC
EXEMPLO
• Visualizar todos os campos dos alunos do sexo feminino
(F)cadastrados
select * from ALUNO where SEXO = “F” order by NOMEALUNO;
• Visualizar todos os campos dos cursos que tenham
carga horário igual ou superior a 80 horas
select * from CURSO where HORAS >= 80 order by NOMECURSO;
• Visualizar todos os campos dos cursos lecionados pelo
professor de código 2 que tenham até 40 horas
select * from CURSO where IDPROFESSOR = 2 and HORAS <=40
order by NOMECURSO desc;
LINGUAGEM SQL - DDL
• Operadores IN, LIKE e BETWEEN
• São usados nas comparações definidas na sentença
WHERE.
• IN : Testa se o valor do campo está contido numa
lista de valores pré-estabelecidos. Pode substituir
uma sequência de condições, com o mesmo campo,
que utilize o operador OR.
• BETWEEN: Testa se o valor do campo está no
intervalo definido
• LIKE: faz comparação aproximada, localizando parte
de uma sequência de caracteres em um campo.
EXEMPLOS
• Listar todos os dados dos cursos que tenham carga
horária de 40, 60 ou 80 horas
select * from CURSOS where HORAS in (40,60,80);
• Listar todos os dados dos cursos que tenham a
palavra “PROGRAMAÇÃO” no nome
select * from CURSOS where NOMECURSO like
“%PROGRAMAÇÃO%”;
• Listar todos os dados dos cursos que tenham carga
horária entre 50 e 90 horas
select * from CURSOS where HORAS between 50 and 90;
LINGUAGEM SQL - DQL
• Funções de agregação
• São funções da linguagem que servem para agrupar
informações, agregando numa única linha o conteúdo de
vários registros
• Principais funções de agregação:
• COUNT
• MIN
• MAX
• SUM
• AVG
LINGUAGEM SQL - DQL
• COUNT
• Retorna a quantidade de registros existentes
• MIN
• Retorna o menor valor de um campo em um grupo de registros
• MAX
• Retorna o maior valor de um campo em um grupo de registros
• SUM
• Retorna a soma dos valores de um campo em um grupo de
registros
• AVG
• Retorna a média dos valores de um campo em um grupo de
registros
EXEMPLOS
• Contar o número de cursos
select count(*) from curso;
• Contar o número de cursos que tem número de
horas igual ou superior a 80
select count(*) from curso where horas>=80;
• Retornar a menor quantidade de horas,
considerando todos os cursos
select min(horas) from curso;
• Retornar a menor quantidade de horas,
considerando todos os cursos com número de horas
acima de 50
select min(horas) from curso where horas > 50;
EXEMPLOS
• Retornar a maior quantidade de horas, considerando
todos os cursos
select max(horas) from curso;
• Retornar a nota média dos alunos que estão
matriculados no curso 1
select avg(NotaAlunoCurso) from estuda where idcurso=1;
• Retornar a soma das notas do aluno de matrícula 1:
select sum(NotaAlunoCurso) from estuda where idaluno = 1;
GROUP BY
• Esta cláusula serve para agrupar os registros, a partir do
campo especificado. Assim, o resultado de uma consulta
é dado em função destes grupos. Com os grupos
formados é possível aplicar outras funções de agregação
(sum, count, max, etc)
EXEMPLO
• Mostrar a quantidade de alunos, por sexo
select sexo, count(*) from aluno group by sexo;
• Mostrar a nota média dos alunos, por curso
select idcurso, avg(notaalunocurso) from estuda group by
idcurso;
• Mostrar a quantidade de alunos, por curso
select idcurso, count(*) from estuda group by idcurso;
HAVING
• Funciona como uma sentença WHERE, mas é
aplicada ao grupo de registros selecionado pela
sentença GROUP BY
• Permite especificar uma ou mais condições que serão
analisadas após o agrupamento dos registros pelo
GROUP BY. Só serão selecionados os grupos que
atenderem às condições estabelecidas.
• IMPORTANTE: Quando usamos a cláusula HAVING, a
seleção não é feita registro a registro, mas sim grupo a
grupo.
EXEMPLO
• Mostrar a quantidade de alunos por sexo, apenas quando
essa quantidade for superior a 5
select idcurso, count(*) from estuda group by idcurso having
count(*) > 5
• Mostrar a nota média dos alunos, por curso, somente quando
esta média for igual ou superior a 70
select idcurso, avg(notaalunocurso) from estuda group by idcurso
having avg(notaalunocurso) >=70;
• Mostrar a quantidade de alunos, por curso, considerando apenas
os cursos com 6 ou mais alunos
select sexo, count(*) from aluno group by sexo having count(*) > 6;
SUBCONSULTAS
• Consiste em uma instrução SELECT adicionada
dentro de outra instrução SELECT
• A segunda instrução é executada e retorna um valor,
que servirá de entrada para a primeira consulta
• Assim, numa subconsulta, temos dois “momentos”:
no primeiro, a consulta mais interna é executada e
retorna um ou mais valores; no segundo, é
executada a consulta principal, retornando os
registros que atendam às condições que utilizam os
valores retornados na primeira consulta
SUBCONSULTAS
• Uma subconsulta é utilizada quando não se sabe os
valores a serem usados na criação das condições
• Devemos observar a compatibilidade entre o campo
usado na comparação e o valor retornado
• Uma subconsulta pode retornar mais de um valor;
neste caso, na comparação da consulta principal,
devemos usar o operador IN
EXEMPLOS
• Listar código e nome dos cursos que são lecionados
pelo mesmo professor que leciona o curso “PHP”
select idcurso, nomecurso from curso where idprofessor = (select
idprofessor from curso where nomecurso = "PHP");
• Listar nome e carga horária dos cursos que tem
carga horária igual ou superior ao curso “JAVA”
select nomecurso, horas from curso where horas > (select
horas from curso where nomecurso = "JAVA");
EXEMPLOS
• Listar código de aluno e código de curso dos alunos
matriculados no(s) mesmo(s) curso(s) que o aluno
de matricula 1
select idaluno, idcurso from estuda where idcurso in (select idcurso
from estuda where idaluno = 1);

Mais conteúdo relacionado

Mais procurados

Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4Ed W. Jr
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQLArley Rodrigues
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLCarlos Santos
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlHelder Lopes
 
Seminário de banco de dados i
Seminário de banco de dados iSeminário de banco de dados i
Seminário de banco de dados ijoaofonsecaf
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)Dirceu Resende
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysqlArley Rodrigues
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysqlLeo Frazão
 

Mais procurados (19)

Sql - introdução
Sql -  introduçãoSql -  introdução
Sql - introdução
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
A Estrutura da Linguagem SQL
A Estrutura da Linguagem SQLA Estrutura da Linguagem SQL
A Estrutura da Linguagem SQL
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySql
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Aula2 - SQL
Aula2 - SQLAula2 - SQL
Aula2 - SQL
 
Seminário de banco de dados i
Seminário de banco de dados iSeminário de banco de dados i
Seminário de banco de dados i
 
DDL Resumo ddl
DDL Resumo ddlDDL Resumo ddl
DDL Resumo ddl
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
 

Semelhante a Banco de dados comandos sql

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Elaine Cecília Gatto
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darinTicianne Darin
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxSaraR49
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxAugustoNicolau2
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
Conceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados MysqlConceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados Mysqlbinhoetec
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6Wagner Bianchi
 

Semelhante a Banco de dados comandos sql (20)

Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darin
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
07 sql - parte 01
07   sql - parte 0107   sql - parte 01
07 sql - parte 01
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptx
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Bd ii material
Bd ii   materialBd ii   material
Bd ii material
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Sql
SqlSql
Sql
 
Conceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados MysqlConceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados Mysql
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 

Banco de dados comandos sql

  • 1. INSTÂNCIAS E ESQUEMAS • Instância: Os dados atuais armazenados no Banco de Dados em um momento particular. Também chamado estado do banco de dados. • Esquema: Descrição da estrutura de um Banco de Dados. Pode ser textual ou gráfico. Conhecido também como o projeto geral do banco de dados.
  • 2. INDEPENDÊNCIA DE DADOS • Capacidade de modificar os esquemas de um banco de dados sem afetar um esquema de nível superior. Existem dois níveis de independência: • Física: capacidade de modificar o esquema físico sem que haja qualquer necessidade de reescrever alguma aplicação. Usada para promover melhorias no desempenho. • Lógica: capacidade de modificar o esquema lógico sem que haja qualquer necessidade de reescrever alguma aplicação. Necessárias quando uma estrutura lógica é alterada (ex: inserção de novas moedas num sistema)
  • 3. MODELO DE DADOS • Conceituais (Alto Nível) • Entidade-Relacionamento • Objeto-Relacional (BDII) • Orientado a Objeto (BDII) • Implementação (Lógicos) • Relacional • Rede (BD mais antigos) • Hierárquico (BD mais antigos) • Físicos
  • 4. MODELO ENTIDADE- RELACIONAMENTO • Modelo proposto por Peter Chen, baseado na percepção do mundo real. • Formado por um conjunto de objetos básicos denominados entidades e nos relacionamentos entre tais objetos. • Tal modelo permite especificar a estrutura lógica do banco de dados.
  • 5. MODELO ENTIDADE- RELACIONAMENTO • O Diagrama Entidade-Relacionamento (DER) permite representar graficamente a estrutura lógica de um banco de dados. • De um modo geral, para nos auxiliar na elaboração de um DER, podemos dizer que os substantivos de uma frase são as entidades e os verbos são os relacionamentos entre as entidades.
  • 7. LINGUAGEM SQL COMANDOS DDL • Usados para criar bancos de dados e tabelas, além de alteração na estrutura das tabelas (acrescentar um campo, mudar as características de um campo, excluir um campo) • Não trabalham com dados • Principais instruções: • CREATE • ALTER • DROP
  • 8. LINGUAGEM SQL - DDL • Criação de um banco de dados create database nome do banco; • Criação de uma tabela create table nome da tabela (descrição dos campos); • Na descrição dos campos, especificamos o nome do campo, tipo de dado, tamanho(se necessário) e restrições
  • 9. LINGUAGEM SQL - DDL Algumas restrições: • primary key: define o campo como chave primária • not null: define que o campo deverá ser de preenchimento obrigatório • auto_increment: define que o campo será autoincrementado (autonumeração) • Foreign key – define o campo como chave estrangeira
  • 10. TIPOS DE DADOS Numéricos Inteiros • Tinyint ( pequeno de -128 a 127) • Smallint ( pequeno -32768 a 32768 ) • Int ( normal – de –8388608 a 8388607 ) • Bigint • Numéricos Decimais • Float • Double • Decimal
  • 11. TIPOS DE DADOS Data e hora • Date data no formato ano-mês-dia • Datetime combinação de data e hora (aa-mm-dd hh:mm:ss) • Timestamp combinação de data e hora com formato variado • Time hora no formato hh:mm:ss • Year armazena um ano
  • 12. TIPOS DE DADOS Caracter • Char(n) Conjunto de caracteres com tamanho fixo(n) • Varchar(n) Conjunto de caracteres de tamanho variável
  • 13. EXEMPLO CREATE DATABASE ESCOLA; USE ESCOLA; CREATE TABLE Aluno ( IDAluno Int PRIMARY KEY not null auto_increment, NomeAluno Varchar(60) not null, Sexo Char not null, DataNascimento Date, Telefone Varchar(15));
  • 14. EXEMPLO CREATE TABLE Professor ( IDProfessor Int PRIMARY KEY not null auto_increment, NomeProfessor Varchar(60) not null, CTPS Varchar(6) not null, Email Varchar(200)); CREATE TABLE Curso ( IDCurso Int PRIMARY KEY not null auto_increment, NomeCurso Varchar(30) not null, Horas Int not null, IDProfessor Int not null, FOREIGN KEY(IDProfessor) REFERENCES Professor (IDProfessor));
  • 15. EXEMPLO CREATE TABLE Estuda ( IDEstuda Int PRIMARY KEY not null auto_increment, IDCurso Int not null, IDAluno Int not null, NotaAlunoCurso Double not null, FOREIGN KEY(IDCurso) REFERENCES Curso (IDCurso), FOREIGN KEY(IDAluno) REFERENCES Aluno (IDAluno));
  • 16. LINGUAGEM SQL - DDL • Exclusão de um banco de dados drop database nome do banco; • Exclusão de uma tabela drop table nome da tabela; Exemplos: drop database Escola; drop table Aluno; drop table Professor;
  • 17. LINGUAGEM SQL - DDL Alteração das colunas de uma tabela • Acrescentar um campo alter table nome da tabela add campo/especificações; • Remover um campo alter table nome da tabela drop campo; • Alterar um campo alter table nome da tabela change campo novas especificações;
  • 18. EXEMPLO • Adicionar um campo chamado Celular à tabela Professor: alter table Professor add Celular varchar(15); • Adicionar um campo chamado RG à tabela Aluno: alter table ALuno add RG varchar(10); • Adicionar um campo chamado NumDependentes à tabela Professor: alter table Professor add NumDependentes tinyint not null;
  • 19. EXEMPLO • Alterar o tamanho do campo Email para 150 caracteres: alter table Professor change Email Email varchar(150); • Alterar o nome do campo Telefone na tabela Aluno para TelefoneAluno alter table Aluno change Telefone TelefoneAluno varchar(15);
  • 20. EXEMPLO • Remover da tabela Professor o campo Email: alter table Professor drop Email; • Remover da tabela Aluno o campo DataNascimento: alter table Aluno drop DataNascimento;
  • 21. LINGUAGEM SQL – DML • Inserção de dados em uma tabela insert into nome da tabela values(lista de valores); Obs.: • Os valores devem estar separados por vírgulas e devem respeitar a ordem dos campos na tabela. • Quando um campo for auto_increment, seu valor deve ser substituído pela sentença null
  • 22. EXEMPLO • Inserir dados na tabela ALUNO insert into ALUNO values (null,”DANIELA DIAS”,”F”,”1989-04- 11”,”(31)32224411”); insert into ALUNO values (null,”JULIANO DO CARMO”,”M”,”1989- 11-03”,”(31)33339987”); insert into ALUNO values (null,”ISABEL MENDES”,”F”,”1990-01- 03”,”(31)37412200”); insert into ALUNO values (null,”CARLOS PEIXOTO”,”M”,”1988-10- 01”,”(31)33347411”);
  • 23. EXEMPLO Inserir dados na tabela PROFESSOR insert into PROFESSOR values (null,”ALEXANDRE”,”123456”,”alexandre@yahoo.com.br”); insert into PROFESSOR values (null,”MARIA”,”111111”,”maria@terra.com.br”); insert into PROFESSOR values (null,”EDUARDO”,”123456”,”eduardo@ig.com.br”); insert into PROFESSOR values (null,”LUCIANA”,”938826”,”luciana@gmail.com”);
  • 24. EXEMPLO Inserir dados na tabela CURSO insert into CURSO values (null,”VB.NET”,60,1); insert into CURSO values (null,”PHP”,120,3); insert into CURSO values (null,”JAVA”,80,4); insert into CURSO values (null,”SQL”,40,1); insert into CURSO values (null,”LÓGICA”,60,2);
  • 25. EXEMPLO Inserir dados na tabela ESTUDA insert into ESTUDA values (null,3,1,70); insert into ESTUDA values (null,3,2,75); insert into ESTUDA values (null,1,4,90); insert into ESTUDA values (null,1,2,55); insert into ESTUDA values (null,2,3,50);
  • 26. LINGUAGEM SQL – DML • Alteração de dados em uma tabela UPDATE tabela SET coluna = novo_valor_armazenado • WHERE coluna = valor_filtro; • ‘
  • 27. LINGUAGEM SQL – DML Exclusão de dados em uma tabela delete from nome da tabela where condição; Obs.: • A condição dever ser representada por uma expressão lógica que consiga localizar o registro a ser excluído • Caso a condição localize mais de um registro, eles serão excluídos. • A condição é opcional. Se não for especificada, serão excluídos TODOS os registros da tabela.
  • 28. EXEMPLO • Excluir o aluno cuja matrícula seja 7 delete from ALUNO where IDAluno=7; • Excluir o professor de nome “ALEXANDRE” delete from PROFESSOR where NomeProfessor = “ALEXANDRE”; • Excluir os cursos que tenham carga horária inferior a 30 delete from CURSO where HORAS<30;
  • 29. EXEMPLO • Excluir todos os alunos cadastrados delete from ALUNO; • Excluir todos os cursos com mais de 60 horas ministrados pelo professor com código 1 delete from CURSO where Horas>60 And IDProfessor = 1; • Excluir todos os cursos que tenham a palavra “CLIPPER” em qualquer lugar do nome delete from CURSO where NomeCurso like “%CLIPPER%”;
  • 30. LINGUAGEM SQL - DQL • Parte da linguagem SQL destinada a executar operações de consultas (recuperação) de registros, ou seja, permite visualizar o conteúdo parcial ou total de tabelas. • Representada pela instrução SELECT. • Como o formato desta instrução é muito extenso, vamos apresentando suas sentenças aos poucos.
  • 31. LINGUAGEM SQL - DQL • select campos from nome da tabela; • Neste formato, podemos visualizar alguns ou todos os campos de todos os registros de uma tabela. • No lugar de campos, descrevemos o nome da cada campo que deve aparecer na listagem, separados por vírgulas. • Caso queira que todos os campos apareçam na listagem, use o caracter *
  • 32. EXEMPLO • Visualizar código e nome de todos os alunos cadastrados select IDAluno, NomeAluno from ALUNO; • Visualizar código, nome e carga horária de todos os cursos cadastrados select IDCurso, NomeCurso, Horas from CURSO; • Visualizar nome e email de todos os professores cadastrados select NomeProfessor, Email from PROFESSOR;
  • 33. EXEMPLO • Visualizar todos os campos dos alunos cadastrados select * from ALUNO; • Visualizar todos os campos dos cursos cadastrados select * from CURSO; • Visualizar todos os campos dos professores cadastrados select * from PROFESSOR;
  • 34. LINGUAGEM SQL - DQL A sentença WHERE • Vem após a especificação do nome da tabela • Permite criar uma ou mais condições, que serão usadas para selecionar os registros retornados pela consulta • Aceita os operadores lógicos AND, OR, NOT
  • 35. EXEMPLO • Visualizar todos os campos dos alunos do sexo feminino (F)cadastrados select * from ALUNO where SEXO = “F”; • Visualizar todos os campos dos cursos que tenham carga horário igual ou superior a 80 horas select * from CURSO where HORAS >= 80; • Visualizar todos os campos dos cursos lecionados pelo professor de código 2 que tenham até 40 horas select * from CURSO where IDPROFESSOR = 2 and HORAS <=40;
  • 36. LINGUAGEM SQL - DQL • A sentença ORDER BY • Numa consulta, os registros são apresentados conforme ordem de armazenamento na tabela • Através da sentença ORDER BY, é possível definir novos campos e forma de ordenação(crescente/decrescente) • Deve ser colocada após a sentença WHERE • Podem ser definidos quantos campos o usuário quiser. Caso haja coincidência de valores no primeiro campo, a ordenação será feita pelo segundo. Isso vale para os demais campos citados. • Para ordenação decrescente, deve ser usada a sentença DESC
  • 37. EXEMPLO • Visualizar todos os campos dos alunos do sexo feminino (F)cadastrados select * from ALUNO where SEXO = “F” order by NOMEALUNO; • Visualizar todos os campos dos cursos que tenham carga horário igual ou superior a 80 horas select * from CURSO where HORAS >= 80 order by NOMECURSO; • Visualizar todos os campos dos cursos lecionados pelo professor de código 2 que tenham até 40 horas select * from CURSO where IDPROFESSOR = 2 and HORAS <=40 order by NOMECURSO desc;
  • 38. LINGUAGEM SQL - DDL • Operadores IN, LIKE e BETWEEN • São usados nas comparações definidas na sentença WHERE. • IN : Testa se o valor do campo está contido numa lista de valores pré-estabelecidos. Pode substituir uma sequência de condições, com o mesmo campo, que utilize o operador OR. • BETWEEN: Testa se o valor do campo está no intervalo definido • LIKE: faz comparação aproximada, localizando parte de uma sequência de caracteres em um campo.
  • 39. EXEMPLOS • Listar todos os dados dos cursos que tenham carga horária de 40, 60 ou 80 horas select * from CURSOS where HORAS in (40,60,80); • Listar todos os dados dos cursos que tenham a palavra “PROGRAMAÇÃO” no nome select * from CURSOS where NOMECURSO like “%PROGRAMAÇÃO%”; • Listar todos os dados dos cursos que tenham carga horária entre 50 e 90 horas select * from CURSOS where HORAS between 50 and 90;
  • 40. LINGUAGEM SQL - DQL • Funções de agregação • São funções da linguagem que servem para agrupar informações, agregando numa única linha o conteúdo de vários registros • Principais funções de agregação: • COUNT • MIN • MAX • SUM • AVG
  • 41. LINGUAGEM SQL - DQL • COUNT • Retorna a quantidade de registros existentes • MIN • Retorna o menor valor de um campo em um grupo de registros • MAX • Retorna o maior valor de um campo em um grupo de registros • SUM • Retorna a soma dos valores de um campo em um grupo de registros • AVG • Retorna a média dos valores de um campo em um grupo de registros
  • 42. EXEMPLOS • Contar o número de cursos select count(*) from curso; • Contar o número de cursos que tem número de horas igual ou superior a 80 select count(*) from curso where horas>=80; • Retornar a menor quantidade de horas, considerando todos os cursos select min(horas) from curso; • Retornar a menor quantidade de horas, considerando todos os cursos com número de horas acima de 50 select min(horas) from curso where horas > 50;
  • 43. EXEMPLOS • Retornar a maior quantidade de horas, considerando todos os cursos select max(horas) from curso; • Retornar a nota média dos alunos que estão matriculados no curso 1 select avg(NotaAlunoCurso) from estuda where idcurso=1; • Retornar a soma das notas do aluno de matrícula 1: select sum(NotaAlunoCurso) from estuda where idaluno = 1;
  • 44. GROUP BY • Esta cláusula serve para agrupar os registros, a partir do campo especificado. Assim, o resultado de uma consulta é dado em função destes grupos. Com os grupos formados é possível aplicar outras funções de agregação (sum, count, max, etc)
  • 45. EXEMPLO • Mostrar a quantidade de alunos, por sexo select sexo, count(*) from aluno group by sexo; • Mostrar a nota média dos alunos, por curso select idcurso, avg(notaalunocurso) from estuda group by idcurso; • Mostrar a quantidade de alunos, por curso select idcurso, count(*) from estuda group by idcurso;
  • 46. HAVING • Funciona como uma sentença WHERE, mas é aplicada ao grupo de registros selecionado pela sentença GROUP BY • Permite especificar uma ou mais condições que serão analisadas após o agrupamento dos registros pelo GROUP BY. Só serão selecionados os grupos que atenderem às condições estabelecidas. • IMPORTANTE: Quando usamos a cláusula HAVING, a seleção não é feita registro a registro, mas sim grupo a grupo.
  • 47. EXEMPLO • Mostrar a quantidade de alunos por sexo, apenas quando essa quantidade for superior a 5 select idcurso, count(*) from estuda group by idcurso having count(*) > 5 • Mostrar a nota média dos alunos, por curso, somente quando esta média for igual ou superior a 70 select idcurso, avg(notaalunocurso) from estuda group by idcurso having avg(notaalunocurso) >=70; • Mostrar a quantidade de alunos, por curso, considerando apenas os cursos com 6 ou mais alunos select sexo, count(*) from aluno group by sexo having count(*) > 6;
  • 48. SUBCONSULTAS • Consiste em uma instrução SELECT adicionada dentro de outra instrução SELECT • A segunda instrução é executada e retorna um valor, que servirá de entrada para a primeira consulta • Assim, numa subconsulta, temos dois “momentos”: no primeiro, a consulta mais interna é executada e retorna um ou mais valores; no segundo, é executada a consulta principal, retornando os registros que atendam às condições que utilizam os valores retornados na primeira consulta
  • 49. SUBCONSULTAS • Uma subconsulta é utilizada quando não se sabe os valores a serem usados na criação das condições • Devemos observar a compatibilidade entre o campo usado na comparação e o valor retornado • Uma subconsulta pode retornar mais de um valor; neste caso, na comparação da consulta principal, devemos usar o operador IN
  • 50. EXEMPLOS • Listar código e nome dos cursos que são lecionados pelo mesmo professor que leciona o curso “PHP” select idcurso, nomecurso from curso where idprofessor = (select idprofessor from curso where nomecurso = "PHP"); • Listar nome e carga horária dos cursos que tem carga horária igual ou superior ao curso “JAVA” select nomecurso, horas from curso where horas > (select horas from curso where nomecurso = "JAVA");
  • 51. EXEMPLOS • Listar código de aluno e código de curso dos alunos matriculados no(s) mesmo(s) curso(s) que o aluno de matricula 1 select idaluno, idcurso from estuda where idcurso in (select idcurso from estuda where idaluno = 1);