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);

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 • Modeloproposto 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 • ODiagrama 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.
  • 6.
  • 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éricosInteiros • 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 Datae 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; USEESCOLA; 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 umcampo 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 otamanho 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 databela 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 dadosna 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 natabela 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 natabela 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 natabela 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 oaluno 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 todosos 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ódigoe 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 todosos 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 todosos 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 todosos 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 todosos 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 onú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 amaior 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 • Estaclá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 aquantidade 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 comouma 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 aquantidade 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 emuma 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ódigoe 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ódigode 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);