Você está na página 1de 45

SQL

Glaice Kelly da Silva Quirino


Setembro, 2014

Agenda
Introduo
Histrico
Comandos DDL
Comandos DML
Comandos DCL
Importancia do SQL

Introduo
Structure Query Language (SQL) Linguagem de
Consulta Estruturada.
Permite:

Consultas;

manipulao de dados;

definies de estrutura e de segurana do banco de


dados.

Vrios SGBDs utilizam SQL.

Introduo

Introduo
H pequenas variaes entre os SGDBs.
Dentro da SQL, h vrias funes e comandos que so
divididos em grupos:

DDL

DML

DCL

Histrico
197
0

Lanamento da primeira verso.


Structure English Query Language (SEQUEL).

197
6

Foi revisada e ampliada;


Nome mudou para SQL.

198
6

A ANSI e a ISO criaram e adaptaram um padro;


Lanamento do SQL - 86.

198
9

A IBM lanou seu prprio padro personalizado, chamado


de SQL 89.

Histrico
199
2

Lanamento da SQL - 92

199
9

SQL3

200
3

SQL:2003

200
8

SQL:2008

Comandos DDL
DDL - Data Definition Language (Linguagem de
Definio de Dados).
Permite:

Criao, alterao, excluso da estrutura das tabelas.

Define como os dados so estruturados.

Create
Create:

Cria um objeto, que pode ser uma tabela ou at mesmo


um banco de dados.

CREATE DATABASE nome do banco de Dados;


CREATE DATABASE biblioteca;

Create
CREATE TABLE nome da tabela (
Descrio do campo 1
Descrio das chaves );

CREATE TABLE livro (


cd_livro INT NOT NULL,
nm_livro VARCHAR(20),
PRIMARY KEY (cd_livro));

Create
Devemos definir para cada atributo o seu respectivo tipo. Os
tipos mais comuns de dados so:
CHAR (tamanho) sequncia de caracteres (string) de
comprimento fixo. O tamanho especificado entre
parnteses. O tamanho mximo permitido de 255
caracteres.
VARCHAR (tamanho) - sequncia de caracteres (string) com
tamanho varivel. A quantidade mxima de caracteres que
poder ser armazenada no campo especificada entre
parnteses.

Create
INT tipo numrico que aceita valores inteiros.
Podemos representar com esse tipo qualquer valor
inteiro na faixa entre -2.147.483.648 e 2.147.483.647.
NUMERIC(n,d) tipo numrico que aceita valores
reais (n indica a quantidade total de nmeros e d
indica a quantidade do total que corresponde a casas
decimais).
Exemplo: NUMERIC(5,2) corresponde a nmeros com 5
dgitos com at duas casas decimais, como 256,12.

Create
TIME tipo tempo no formato hora:minuto:segundo.
DATE tipo data no formato ano-ms-dia.

Ex: 21 de agosto de 2014 => 2014-08-21


Ex: 2 horas e 30 minutos => 02:30:00

Create

Create

CREATE TABLE Clientes (


cpf INT NOT NULL,
nome VARCHAR(40),
PRIMARY KEY (cpf));

Create

CREATE TABLE compras (


cd_compra INT NOT NULL,
datahora DATE,
cpf INT,
PRIMARY KEY (cd_produto),
CONSTRAINT c1 FOREIGN KEY
(cpf) REFERENCES clientes(cpf) );

Create

CONSTRAINT nome da constraint FOREIGN KEY


(nome do atributo)
REFERENCES
nome da tabela a qual este atributo a PK
(nome desse campo dentro dessa tabela)

Create
CONSTRAINT significa restrio e impede que o
usurio insira no campo de chave estrangeira um valor
que seja diferente de quaisquer valores inseridos na PK
da tabela clientes.
C1 apenas o nome dado para a restrio criada.

DROP
DROP:

Usado para excluir tabelas ou banco de dados.

DROP DATABASE nome do banco de dados;


DROP TABLE nome da tabela ;

DROP DATABASE biblioteca;


DROP TABLE livro;

ALTER
ALTER:

Altera a estrutura de uma tabela

ALTER TABLE nome da tabela(


ADD COLUMN nome do campo);

ALTER TABLE livro (


ADD COLUMN autor_livro VARCHAR(50) );

ALTER
Ainda possvel substituir o ADD e alterar da seguinte
forma:

DROP = exclui colunas

RENAME = renomeia colunas

CHANGE = alterar colunas

Comandos DML
DML - Data Manipulation Language (Linguagem de
Manipulao de Dados)
Comandos para:

Alteraes , inseres e excluses de dados dentro das


tabelas.

INSERT
INSERT

Insere um registro dentro dos campos das tabelas.

INSERT INTO nome da tabela (nome do campo)


VALUES (valor do campo);

INSERT INTO livro (cd_livro)


VALUES (1);

INSERT
Os dados do tipo CHAR, VARCHAR, DATE, TIME (texto em
geral) devem ser representados entre aspas simples ().
Dados do tipo NUMERIC(n,d) aceita valores reais (n indica
a quantidade total de nmeros e d indica a quantidade do
total que corresponde a casas decimais).
Exemplo: NUMERIC(5,2) corresponde a nmeros com 5
dgitos com at duas casas decimais, como 256,12.

INSERT
Dados do tipo TIME devem seguir o formato
hora:minuto:segundo.
Dados do tipo DATE devem seguir o formato anoms-dia.
Observe ainda que as casas decimais dos nmeros
devem ser separadas por pontos ao invs de vrgulas;
Os valores do tipo VARCHAR podem conter acentos e
espaos em branco.

INSERT

INSERT INTO produto (nm_livro, autor_livro)


VALUES (O Hobbit, J. R. R. Tolkien);

INSERT INTO livro VALUES


(2,O Milagre, Nicolas Sparks);

DELETE
DELETE:

Para deletar dados:

DELETE FROM nome da tabela


WHERE descrio dos parmetros

DELETE FROM livro


WHERE cd_livro = 1

DELETE
Ateno: a clusula WHERE opcional no comando
DELETE;
Se ela no for informada voc pode excluir todas as
linhas de uma tabela, mas no exclui a tabela do
Banco de dados.
Para excluir a tabela inteira (dados e estrutura) do
banco de dados voc deve utilizar o comando DROP
(j explicado anteriormente).

SELECT
SELECT

Tem a funo de extrair dados de uma tabela

SELECT nome do campo FROM nome da tabela ;


SELECT nome do campo 1, nome do campo 2 FROM
nome da tabela ;

SELECT
SELECT cd_livro,nm_livro FROM livro;

cd_livro

nm_Livro

O Hobbit

O Milagre

SELECT

SELECT * FROM produto;

cd_livro

nm_Livro

autor_livro

O Hobbit

J.R.R. Tolkien

O Milagre

Nicolas Sparks

SELECT
Para limitar as consultas, trazer resultados mais
limpos e onerar menos os recursos do servidor,
utilizam-se a clusula WHERE e:

operadores lgicos: AND, OR e LIKE

operadores aritmticos: +, e /

operadores de comparao: = , < e !.

SELECT
SELECT nm_livro WHERE cd_livro = 1;

SELECT nm_livro WHERE cd_livro = 1 AND autor_livro


LIKE J. R. R. Tolkien

nm_Livro
O Hobbit

UPDATE
Uma instruo UPDATE permite alterar:

Uma coluna de uma linha da tabela;

Vrias colunas de uma linha;

Uma coluna em vrias linhas;

Vrias colunas em vrias linhas;

UPDATE
Para obter o que foi descrito acima usamos:

A clusula SET para escolher a(s) coluna(s);


Atributo = valor;

A clusula WHERE para escolher a(s) linha(s);


Condio de seleo;

UPDATE
Se a condio no WHERE no for informada, a
atualizao ser realizada em toda a tabela, ento,
voc deve tomar muito cuidado ao atualizar um campo
sem a clusula WHERE.
Voc pode utilizar o UPDATE com um nico atributo ou
com um conjunto de atributos;
Para isso preciso adicionar mais pares de atributo =
valor na clusula SET. Coloque vrgula aps cada um
dos pares de atributo = valor;

UPDATE
Sintaxe:
UPDATE nome_da_tabela
SET atributo = valor
WHERE condio;
Exemplo:
UPDATE livro
SET titulo = O Casamento
WHERE cd_livro = 2;

Comandos DCL
DCL - Data Control Language (Linguagem de Controle
de Dados)
Possui comandos responsveis pelo controle de acesso
ao banco de dados.
Esse processo extremamente importante para
manter a segurana das informaes constantes no
banco de dados.

Comandos DCL
Cada usurio tem uma determinada necessidade em
relao aos dados armazenados.
Na maioria dos casos, os acessos so controlados por
funes e departamentos ou, tecnicamente falando,
por tabelas.
As permisses de acesso podem se dar para um
conjunto de dados.

GRANT
O comando GRANT, que concede acesso a uma tabela
especfica a um determinado usurio, possui a seguinte
sintaxe:
GRANT lista de privilgios ON Nome da tabela TO
usurio
GRANT SELECT ON livro TO Kelly
GRANT INSERT ON livro TO Mauricio
GRANT UPDATE ON livro TO Charles
GRANT DELETE ON livro TO Alice

GRANT
Caso queira conceder todos os privilgios ao usurio:

GRANT ALL ON livro TO Dario;


GRANT ALL ON livro TO Marta WITH GRANT
OPTION;

REVOKE
REVOKE:
Assim como um administrador ou usurio avanado
pode dar acesso a outro usurio, ele tambm pode
revog-lo, ou seja, retirar o acesso do usurio.
REVOKE INSERT ON cliente FROM Paulo
REVOKE INSERT, SELECT ON cliente FROM Paulo

REVOKE
Algumas vantagens da utilizao da linguagem SQL:

Independncia entre fabricantes.

Portabilidade entre computadores.

Reduo dos custos de treinamento.

A desvantagem:

fato de ser to padronizada pode levar a uma natural


inibio da criatividade, pois o desenvolvedor retrai-se a
solues nicas j predispostas na linguagem.

Referncias
Apostila do curso de Bancos de Dados I - Senai
SILBERSCHATZ, Abraham; KORTH, Henry F.;
SUDARSHAN, S.. Sistema de banco de dados. 3 ed. So
Paulo: Pearson Makron Books, 2005, Cap. 4
Elmasri, Navath, Sistemas de Banco de Dados, 4
edio, 2005.
http://www.w3schools.com/sql

44

Obrigada!
gksquirino@inf.ufes.br

45

Você também pode gostar