Introdução a SQL

Propaganda
INSTITUTO FEDERAL DE EDUCAÇÃO,
CIÊNCIA E TECNOLOGIA DO RIO
GRANDE DO NORTE
INTRODUÇÃO À SQL
Docente: Éberton da Silva Marinho
e-mail: [email protected]
24/05/2017
SUMÁRIO

SQL
DDL
 DML

SQL (STRUCTURED QUERY
LANGUAGE)
SQL
SQL: Linguagem de Consulta Estruturada
 Conjunto de comandos responsáveis pela
definição das tabelas, comandos e atualização dos
SGBD's relacionais
 Partes da SQL







Linguagem de Definição de Dados (DDL)
Linguagem de Manipulação de Dados (DML)
Permite definir regras de integridade
Definição de Views
Controle de transação
Autorização
LINGUAGEM DE DEFINIÇÃO DE
DADOS (DDL)
LINGUAGEM DE DEFINIÇÃO DE DADOS

Permite definir






O esquema de cada relação
O domínio dos valores associados a cada atributo
As regras de integridade
O conjunto de índices para manutenção de cada
relação
Informações sobre segurança e autoridade sobre cada
relação
A estrutura de armazenamento físico de cada relação
TIPOS DE DOMÍNIO









Char(n): Uma string de caracteres de tamanho fixo n
Varchar(n): Uma string de caracteres de tamanho
variável com n caracteres máximo
Int: inteiro
Smallint: inteiro pequeno
Numeric (p,d): número de ponto flutuante e precisão d
casas decimais
Real, double precision: números de ponto flutuante
Float: número de ponto flutuante com precisão de n
dígitos
Date: para representar datas
Time: para representar horários
BANCO DE DADOS BASE
CRIAÇÃO DE UM ESQUEMA DE BD
Cria um banco de dados onde as tabelas e
relações serão colocadas
 Exemplo

CREATE SCHEMA BDSistemaVendas;
DEFINIÇÃO BÁSICA DE ESQUEMA SQL

Criar uma tabela

create table r(A1 D1, A2 D2, ..., An Dn,
<restrição-de-integridade1>,
<restrição-de-integridade2>,
...,
<restrição-de-integridaden>);
r: nome da tabela
 An: nome do atributo
 Dn: tipo do domínio
 restrição-de-integridaden

REGRAS DE INTEGRIDADE

Chaves primárias
 primary key (A1, A2, ..., An)
 check (P)
 not null: caso queiramos dados obrigatórios


Onde P é um predicado
Exemplo
CREATE TABLE Clientes (
idCliente INT NOT NULL AUTO_INCREMENT ,
nome VARCHAR(200) NOT NULL ,
dataNascimento DATE NOT NULL ,
sexo CHAR NOT NULL ,
cpf VARCHAR(11) NOT NULL ,
endereco VARCHAR(200) NOT NULL ,
PRIMARY KEY (idCliente) );
EXERCÍCIO

Agora crie a tabela produto
DEFINIÇÃO BÁSICA DE ESQUEMA SQL

Excluir uma tabela
Drop table r

Exemplo
DROP TABLE clientes;

Alterar tabela
ALTER TABLE r add A D;
 ALTER TABLE r drop A;


Exemplo
ALTER TABLE clientes add telefone char(12);
INTEGRIDADE REFERENCIAL


Quando queremos que um conjunto de valores que
aparece em uma relação também apareça em outra
relação
Chaves estrangeiras podem ser especificadas como
parte da instrução SQL


FOREIGN KEY (chave estrangeira) REFERENCES
tabela
Se alguma ação violar alguma regra de integridade, o
banco pode realizar as seguintes ações

FOREIGN KEY(chave estrangeira) REFERENCES
tabela
on delete cascade
on update cascade
DEFINIÇÃO BÁSICA DE ESQUEMA SQL

Chaves estrangeiras


FOREIGN KEY (chave_estrangeira) REFERENCES Tabela
(chave_primária));
Exemplo
CREATE TABLE CuponsFiscais (
ccf INT NOT NULL AUTO_INCREMENT ,
data DATE NOT NULL ,
hora TIME NOT NULL ,
formaPagamento INT NOT NULL ,
vlTotal DOUBLE NOT NULL ,
idCliente INT NOT NULL ,
PRIMARY KEY (ccf) ,
FOREIGN KEY (idCliente)
REFERENCES Clientes (idCliente));
EXERCÍCIO

Agora crie a tabela ItensCupom
LINGUAGEM DE MANIPULAÇÃO
DE DADOS (DML)
INSERÇÃO DE DADOS SQL

Permite inserir uma tupla no BD
Os valores inseridos devem permanecer no domínio
dos atributos

Forma padrão

INSERT INTO r values (‘value1’, value2, ..., value3);
 INSERT INTO r (A1, A2, ..., A3) values (‘value1’, value2,
..., value3);


Exemplo

INSERT INTO clientes (nome, dataNascimento, sexo, cpf,
endereco, telefone) values ( ‘Maria José’, ‘2000-03-07’, ‘F’,
‘09890998812’, ‘av. Afonso Pena’, ‘8434540987’);
ESTRUTURAS BÁSICAS DE CONSULTAS SQL

Cláusula SELECT

SELECT a1, a2, ..., an FROM r1, r2, ..., rn where P;
Onde a é um atributo
 Onde r é uma tabela
 Onde P é um predicado


Exemplos

SELECT nome, endereco FROM Clientes;
ESTRUTURAS BÁSICAS DE CONSULTAS SQL

Cláusula SELECT

Distinct


All


SELECT distinct nome FROM Clientes;
SELECT * from Clientes
Expressões aritméticas

SELECT vlTotal * 0.9 FROM CuponsFiscais;
ESTRUTURAS BÁSICAS DE CONSULTAS SQL

Cláusula WHERE

Conectivos lógicos


Operadores de comparação


AND, OR e NOT
<, <=, >, >=, = e <>
Exemplo

SELECT * FROM CuponsFiscais WHERE vlTotal > 500;
ESTRUTURAS BÁSICAS DE CONSULTAS SQL

Cláusula WHERE

BETWEEN
SELECT * FROM CuponsFiscais WHERE vlTotal
BETWEEN 1000 AND 5000;
 SELECT * FROM CuponsFiscais WHERE vlTotal >= 1000
AND vlTotal <= 5000

ESTRUTURAS BÁSICAS DE CONSULTAS SQL
Ligação entre Tabelas
 Cláusula FROM

SELECT nome, cpf, data, hora, vlTotal
FROM clientes, cuponsfiscais
WHERE clientes.idCliente = cuponsfiscais.idCliente;
OPERAÇÃO DE RENOMEAÇÃO

Utilizado para renomear relações das consultas
nome-antigo AS novo-nome
 Pode aparecer tanto na cláusula SELECT quanto
FROM
 Exemplos



SELECT nome, cpf, data, hora, vlTotal
FROM clientes, cuponsfiscais
WHERE clientes.idCliente = cuponsfiscais.idCliente
SELECT nome, cpf, data, hora, vlTotal
FROM clientes AS c, cuponsfiscais AS cf
WHERE c.idCliente = cf.idCliente
OPERAÇÕES COM STRINGS
Uma string é definida por caracteres entre
apóstrofo
 Um apóstrofo pode ser inserido em uma string
usando dois apóstrofos


Exemplo:
Caixa d’agua
 Pode ser escrita como: ‘Caixa d’’agua’


A operação utilizada para correspondência é o
operador like:

SELECT nome, endereco FROM clientes
WHERE endereco like ‘lula gomes’;
OPERAÇÕES COM STRINGS

Podemos especificar padrões de string através
dos caracteres:
%: corresponde a qualquer substring
 _: corresponde a qualquer caracter


Exemplos
‘Maria%’: localiza qualquer string começando Maria
 ‘%José%’: localiza qualquer string contendo José
 ‘_ _ _’: localiza qualquer string com exatamente três
caracteres
 ‘_ _ _%’: localiza qualquer string com pelo menos três
caracteres

OPERAÇÕES COM STRINGS
Para trabalhar com os caracteres _ e %, a SQL
utiliza caracteres de escape
 Exemplos

like ‘ab\%cd%’: localiza as string iniciadas com
ab%cd
 like ‘ab\\cd%’: localiza as string iniciadas com ab\cd


O operador not permite negar uma afirmação
not like ‘abc%’: localiza as string que não começam
com abc
 not like ‘%abc%’: localiza as strings que não possuem
abc na string

OPERAÇÕES COM STRINGS

Concatenação de strings

like CONCAT(‘Maria’, ‘ ’, ‘José’)

É o mesmo que ‘Maria José’
upper(string): coloca a string em maiúsculo
 low(string): coloca a string em minúsculo

ORDENAÇÃO DE EXIBIÇÃO DE TUPLAS
ORDER BY atributo [asc|desc]: ordena o
resultado de uma seleção de forma ascendente ou
descendente tendo como parâmetro o atributo
 Podemos utilizar vários parâmetros como critério
de ordenação


Exemplo
SELECT * FROM cliente
ORDER BY nome asc
 SELECT * FROM cuponsfiscais
ORDER BY vlTotal, data desc

FUNÇÕES AGREGADAS
Funções agregadas: são aquelas que tomam uma
coleção de valores como entrada e retornam um
único valor
 Funções






avg (atributo): calcula a média aritmética de um
conjunto de valores passados
minimum (atributo): retorna o menor valor dentre
um conjunto de valores
maximum (atributo): retorna o maior valor dentre um
conjunto de valores
sum (atributo): retorna a soma de um conjunto de
valores
count (atributo): conta as tuplas de uma seleção
AGRUPAMENTO


Quando desejamos aplicar funções de agregação em
grupos de tuplas usamos GROUP BY
Exemplo



SELECT nome, avg(vlTotal)
FROM clientes AS c, cuponsfiscais AS cf
WHERE c.idCliente = cf.idCliente
GROUP BY nome
Podemos também aplicar predicados a agrupamentos
Exemplo

SELECT nome, avg(vlTotal)
FROM clientes AS c, cuponsfiscais AS cf
WHERE c.idCliente = cf.idCliente
GROUP BY nome
HAVING avg(vlTotal) > 1200
EXCLUSÃO
DELETE: exclui tuplas seguindo um
determinado critério
 Exemplos


DELETE FROM Clientes

Deleta todas as tuplas de clientes
DELETE FROM clientes WHERE nome = ‘José’
 DELETE FROM cuponsfiscais WHERE vlTotal
BETWEEN 1000 and 5000


Deleta cuponsfiscais entre 1000 e 5000 reais
ATUALIZAÇÃO
UPDATE: modifica o valor de atributos de uma
ou várias tuplas sob um determinado critério
 Exemplos

UPDATE cuponsfiscais SET vlTotal = vlTotal * 0.9;
 UPDATE cuponsfiscais SET vlTotal = vlTotal * 0.9
WHERE vlTotal >= 3000;

AULA PRÁTICA
DATA DA PROVA

Dia 21/06/2017: Prova Prática
DÚVIDAS


e-mail: [email protected]
Endereço eletrônico da disciplina:
 http://docente.ifrn.edu.br/ebertonmarinho
36
Download