Vous êtes sur la page 1sur 15

Linguagem de Consulta - SQL

SQL Structured Query Language


Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987 a IBM lana seu prprio padro - SAA-SQL; Criada extenso para o padro SQL - a SQL-89, em 1989; Verso em uso do padro ANSI-ISO: SQL-92; Em 1999, aprovada SQL-3.
1

Linguagem de Consulta - SQL


Os comandos SQL podem ser agrupados em algumas classes:
Linguagem de Definio de Dados (DDL): proporciona comandos para definio, excluso e modificao de relaes (tabelas), bem como definio de ndices; Linguagem de Manipulao de Dados (DML): linguagem de consulta baseada em lgebra e clculo relacional. Engloba tambm comandos para insero, excluso e modificao de tuplas; Outras: DML incorporada, definio de vises, autorizao, integridade e controle de transaes.
2

Linguagem de Consulta - SQL


Autor
cod_autor nome nascimento (1,1)

Escreve

Exemplo Modelo Entidade-Relacionamento

(1,n)

Livro
(1,n)

titulo cod_autor cod_editora valor publicacao volume

Publicado

Editora
(1,1)

cod_editora razao endereco CGC cidade


3

Linguagem de Consulta - SQL


Exemplo Modelo Relacional
AUTOR ( COD_AUTOR, NOME, NASCIMENTO) LIVRO (TITULO, COD_AUTOR, COD_EDITORA, VALOR REAL, PUBLICACAO, VOLUME) Cod_Autor referencia AUTOR Cod_Editora referencia EDITORA EDITORA( COD_EDITORA, RAZAO, CGC, ENDERECO, CIDADE )
4

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - comandos bsicos
Create Table - define a estrutura de uma tabela, suas restries de integridade; cria a tabela vazia. Drop Table - elimina a tabela da base de dados; Alter Table - permite modificar a definio de uma tabela, adicionando novas colunas (campos), excluindo campos, modificando chaves primrias e estrangeiras.
5

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Create Table
CREATE TABLE Nome_Tabela ( atributo 1 tipo [tamanho] (null/not null), atributo 2 tipo [tamanho] (null/not null), ... atributo n tipo [tamanho] (null/not null), PRIMARY KEY (campo), FOREIGN KEY (campo) REFERENCES Tabela UNIQUE KEY (campo) )
6

Linguagem de Consulta - SQL


Alguns Tipos de Dados Aceitos (Padro SQL-92)
char (n) - character int - integer smallint; real; float (n); date : ano com 4 dgitos, ms e dia do ms; time : horrio, em horas, minutos e segundos.
7

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Create Table
Autor ( Cod_Autor, Nome, Nascimento ) CREATE TABLE Autor ( Cod_Autor integer Nome char(30) Nascimento date

NOT NULL, NOT NULL, NULL

PRIMARY KEY (Cod_Autor))


8

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Create Table Editora( Cod_Editora, Razao, CGC,Endereco, Cidade )
CREATE TABLE Editora ( Cod_Editora integer NOT NULL, Razao char(40) NOT NULL, CGC char (14) NOT NULL Endereco char(40) NOT NULL, Cidade char(25) NOT NULL, PRIMARY KEY (Cod_Editora), UNIQUE KEY (CGC) )

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Create Table
Livro (Titulo, Cod_Autor, Cod_Editora,ValorReal, Publicacao, Volume) Cod_Autor referencia AUTOR Cod_Editora referencia EDITORA CREATE TABLE Livro ( Titulo char(30) NOT NULL, Cod_Autor integer NOT NULL, Cod_Editora integer NOT NULL, ValorReal real NOT NULL, Publicacao date NOT NULL, Volume integer, PRIMARY KEY (Titulo, Cod_Autor), FOREIGN KEY (Cod_Autor) REFERENCES AUTOR, FOREIGN KEY (Cod_Editora) REFERENCES EDITORA)

10

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - DROP Table DROP TABLE Nome_Tabela DROP TABLE Editora OBS : no exclui se tiverem livros referenciando uma editora. Clusula ON DELETE CASCADE
11

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Drop Table
CREATE TABLE Livro ( Titulo char(30) NOT NULL, Cod_Autor integer NOT NULL, Cod_Editora integer NOT NULL, ValorReal real NOT NULL, Publicacao date NOT NULL, Volume integer, PRIMARY KEY (Titulo, Cod_Autor), FOREIGN KEY (Cod_Autor) REFERENCES AUTOR, FOREIGN KEY (Cod_Editora) REFERENCES EDITORA ON DELETE CASCADE)

12

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Alter Table ALTER TABLE Nome_Tabela ADD Campo Tipo Tamanho ALTER TABLE Livro ADD Lingua char(15) OBS: Inclui o campo Lingua na tabela Livro, do tipo varchar com tamanho 15
13

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Alter Table ALTER TABLE Nome_Tabela DROP Campo

ALTER TABLE Livro DROP Lingua OBS: Exclui o campo Lingua da tabela Livro.

14

Linguagem de Consulta - SQL


Linguagem de Definio de Dados (DDL) - Alter Table Caso tenha sido esquecida a declarao de chave estrangeira

ALTER TABLE Livro ADD FOREIGN KEY(Cod_Editora) REFERENCES Cidade

15

Linguagem de Consulta - SQL


Linguagem de Manipulao de Dados (DML) Comandos Bsicos de Manipulao de Dados Sintaxe bsica de uma instruo de Consulta SELECT lista de colunas (campos) FROM lista de tabelas WHERE condio

16

Linguagem de Consulta - SQL


Linguagem de Manipulao de Dados (DML) Comandos Bsicos de Manipulao de Dados
O modelo bsico de execuo SQL o seguinte: feito o produto cartesiano das tabelas envolvidas (caso haja mais de uma); so selecionadas as linhas da tabela que obedecem a condio estabelecida; feita a projeo sobre as colunas que vo ao resultado.

17

Linguagem de Consulta - SQL


Linguagem de Manipulao de Dados (DML) Comandos Bsicos de Manipulao de Dados
Projeo SELECT lista de colunas(campos) FROM lista de tabelas Produto Cartesiano WHERE condio Seleo

18

Linguagem de Consulta - SQL


Exemplo: selecionar todas as informaes sobre os livros publicados no ano de 2000
SELECT Titulo, CodEditora,ValorReal, Publicacao,Volume FROM Livro WHERE publicacao = 2000 OU SELECT * FROM Livro WHERE publicacao = 2000
19

Linguagem de Consulta - SQL


Operadores Utilizados para a Condio Where
=, <>, <, <=, >=, and, not, or (j conhecidos) BETWEEN AND : condio entre um limite de valores LIKE : a coluna pesquisada tem que ser do char ou varchar % - indica um conjunto de caracteres - um caracter
20

10

Linguagem de Consulta - SQL


Exemplo Clusula Between And : selecionar todas as informaes sobre os livros publicados entre os anos de 1980 e 2000
SELECT * FROM Livro WHERE publicacao BETWEEN 1980 AND 2000

21

Linguagem de Consulta - SQL


banco de dados Exemplo Clusula like : selecionar todos os livros cujos ttulos iniciem com a palavra banco
SELECT * FROM Livro WHERE Ttulo LIKE banco% Exemplo: banco de jardim

22

11

Linguagem de Consulta - SQL


Exemplo Clusula like : selecionar todos os livros cujos ttulos terminem com a palavra banco
SELECT * FROM Livro WHERE Ttulo LIKE %banco Exemplo: caixa de banco

23

Linguagem de Consulta - SQL


Exemplo Clusula like : selecionar todos os livros cujos ttulos tenham a palavra banco
SELECT * FROM Livro WHERE Ttulo LIKE %banco% Exemplo: Sistemas de Banco de Dados

24

12

Linguagem de Consulta - SQL


Exemplo Clusula like : selecionar todos os livros cujos ttulos iniciem com a letra Be tenham a terceira letra do ttulo N
SELECT * FROM Livro WHERE Ttulo LIKE B_N% Exemplo: BANCO DE DADOS

25

Linguagem de Consulta - SQL


JUNO DE RELAES
Mostrar os dados da editora que publicou o livro de ttulo Banco de Dados SELECT Editora.Codigo, Editora.CGC, Editora.Razao .... FROM Editora, Livro WHERE Editora.CodEditora = Livro.CodEditora AND Livro.Ttulo = Banco de Dados
Produto Cartesiano Filtro do Produto Cartesiano
26

13

Linguagem de Consulta - SQL


JUNO DE RELAES - Utilizando Apelidos
Mostrar os dados da editora que publicou o livro de ttulo Banco de Dados SELECT Editora.Codigo, Editora.CGC, Editora.Razao .... FROM Editora E, Livro L WHERE E.CodEditora = L.CodEditora AND Livro.Ttulo = Banco de Dados

27

Linguagem de Consulta - SQL


Obter o nome do autor dos livros da editora Santa Maria, que tenham, nos ttulos do livro, a frase Banco de Dados
Em primeiro lugar, o que precisamos ? Nome do autor : Autor Editoras de Santa Maria - nome da editora somente em : Editora Ter no ttulo do Livro a frase Banco de Dados - ttulo : Livro LIVRO X EDITORA X AUTOR

28

14

Linguagem de Consulta - SQL


Obter o nome do autor dos livros da editora Santa Maria, que tenham, nos ttulos do livro, a frase Banco de Dados
Em primeiro lugar, o que precisamos ? Nome do autor : Autor Editoras de Santa Maria - nome da editora somente em : Editora Ter no ttulo do Livro a frase Banco de Dados - ttulo : Livro LIVRO X EDITORA X AUTOR Condies: Editora - Santa Maria WHERE Razao = Santa Maria Livro - frase Banco de Dados WHERE Ttulo LIKE %Banco de Dados% Relacionamentos dos produtos cartesianos: Livros da Editora : Livro.CodEditora = Editora.CodEditora Autor dos Livros : Livro.CodAutor = Autor.CodAutor

29

Linguagem de Consulta - SQL


Obter o nome do autor dos livros da editora Santa Maria, que tenham, nos ttulos do livro, a frase Banco de Dados JUNO SELECT Autor.Nome FROM Autor,Editora,Livro WHERE Editora.Nome = Santa Maria AND Livro.Titulo like %Banco de Dados% AND Editora.CodEditora = Livro.CodEditora AND Autor.CodAutor = Livro.CodAutor
30

15

Vous aimerez peut-être aussi