Você está na página 1de 25

Programação

Em Banco de Dados

Prof. Thiago Henrique da Silva


Silva.thiagohenrique@gmail.com

1
Aula 1:
História e conceitos
Básicos de SQL

2
História:

• Structured Query Language, ou Linguagem de


Consulta Estruturada ou SQL é uma linguagem de
pesquisa declarativa para Banco de Dados Relacional
Relacional.
• Muitas das características originais do SQL foram
inspiradas na álgebra relacional.
• O SQL foi desenvolvido originalmente no início dos
anos 70 nos laboratórios da IBM em San Jose, dentro
do projeto RR, que tinha como objetivo demonstrar a
viabilidade da implementação do modelo relacional
proposto
p p p
por E.F. Codd.

3
• O nome original da linguagem era SEQUEL, acrônimo
para “Structured
Structured English Query Language”
Language (Linguagem
de Consulta Estruturada em Inglês).
g g
• O SQL se diferencia de outras linguagens de consulta
a banco de dados no sentido em que a consulta SQL
especifíca a FORMA DO RESULTADO e não o caminho
para chegar a ela
ela.
• A ANSI (American National Standards Institute) definiu
um ppadrão do SQL
Q em 1986 e ISSO em 1987.

4
A linguagem SQL é dividida em diversas partes, as mais
comuns são:

DDL: Data Definition Language,


g g , ou linguagem
g g de definição
ç
de dados. A parte da SQL usada para criar (definir
completamente) um banco de dados, modificar sua
estr t ra e destr
estrutura destruí-lo
í lo q
quando
ando você
ocê não precisar mais deledele.
Aqui é definido os esquemas de relação, indices,visões,
etc. ((Exemplos:
p create,, alter,, drop,etc).
p, )

5
DML: Data Manipulation
p Language,
g g , ou linguagem
g g de
manipulação de dados. Executa a manutenção do banco de
dados. Com esta ferramenta eficiente, você pode
especificar
ifi exatamente
t t o que deseja
d j ffazer com os ddados
d
contidos no seu banco de dados - inseri-los, alterá-los ou
extraí-los.
extraí los. Aqui é definido as pesquisas que serão feitas no
banco de dados baseado tanto na álgebra relacional quanto
no calculo relacional de tuplas (linha ou record).
(E
(Exemplos:
l iinsert,
t update,
d t select,
l t ttruncate,
t etc).
t )

6
DCL: Data Control Language.
Language Proteção contra várias
formas de danos a seu banco de dados. Usado
corretamente,, a DCL fornece segurança
g ç ao seu banco de
dados, o grau de proteção depende da implementação. Se
sua implementação não oferecer proteção suficiente,
adicione
di i esta
t proteção
t ã ao programa aplicativo.
li ti
(Exemplo: GRANT, REVOKE).

7
Constraint (Restrições):
As restrições são limites aplicados aos dados que uma
pessoa poded iinserir
i em uma ttabela
b l dde um bbanco d
de d
dados.
d
As Constraints principais são:

Chave Primária (Primary key / PK): Coluna, ou grupo de


colunas, que permite a identificação única de um registro
na tabela.
t b l
Exemplo:

Oracle 10: create table teste1(cod number(3)not null constraint PK_cod primary key)

MySQL: create table teste1( cod int(3)not null, primary key(cod))

8
Constraint (Restrições):

Chave E
Ch Estrangeira
t i (Foreign
(F i kkey / FK):
FK) CColuna,
l ou grupo
de colunas, que estabelece o relacionamento com a chave
primária de outra tabela.

Exemplo:

Oracle 10: create table teste2(cod2 number(3) constraint FK_teste2_cod references


teste1)

MySQL: foreign key cod2 (cod) references teste1

9
Constraint (Restrições):

Default
D f lt :Serve
S para incluir
i l i um conteúdo
t úd padrão
d ã na ttabela
b l
todas as vezes que uma linha for incluída. Deve-se
especificar a palavra
palavra-chave
chave DEFAULT, seguida do
conteúdo-padrão.
Exemplo:

Oracle 10: create table teste5(quantidade number(2) default 1)

MySQL: create table teste3(quantidade int default 1)

10

10
Constraint (Restrições):

NOT NULL:Indica
NULL I di que o conteúdo
t úd dda coluna
l não
ã pode
d ser
nulo.

Exemplo:

O l 10
Oracle 10: create
t table
t bl teste1(cod
t t 1( d number(3)not
b (3) t null
ll constraint
t i t PK_cod
PK d primary
i kkey))

MySQL: create table teste1( cod int(3)not null, primary key(cod))

11

11
Constraint (Restrições):

UNIQUE: Indica
UNIQUE I di que nãoã pode
d h haver repetição
ti ã ddo conteúdo
t úd
da coluna, o valor deve ser único, a princípio a única
diferença para uma FK é que ela permite NULL.

Exemplo:

Oracle 10: create table teste6(cpf number(11) unique)

MySQL: create table teste6(cpf int(11) unique)

12

12
Constraint (Restrições):

CHECK: Definição
CHECK D fi i ã d de d
domínio.
í i V
Vocêêddefine
fi quais
i são
ã os
valores possíveis para aquele campo, como "verdadeiro ou
falso" ou "F
falso F ou M",
M , etc.

Exemplo:

Oracle 10: alter table teste6 add sexo char(1) check (UPPER(SEXO)='M'or
UPPER(SEXO) = 'F')

MySQL: alter table teste6 add sexo char(1) check (UPPER(SEXO)='M'or


UPPER(SEXO) = 'F')

13

13
Tipo de Dados:

Tipos de Dados no DB2 9 Tipo de Dados no SQL Server 2005 Tipo de Dados no Oracle 10g

BIGINT BIGINT NUMBER(19)

INTEGER INT NUMBER(10)

SMALLINT SMALLINT NUMBER(5)

TINYINT ( )
NUMBER(3)

DECIMAL(N,D) ou 
DECIMAL(N,D) ou NUMERIC(N,D) NUMBER(N,D)
NUMERIC(N,D)

MONEY NUMBER(19,4)

SMALLMONEY NUMBER(10 4)
NUMBER(10,4)

DOUBLE ou FLOAT FLOAT NUMBER

REAL REAL NUMBER

14

14
Tipo de Dados:
Armazenamento de Chars de 
CHAR(N) CHAR(N) CHAR(N)
tamanho fixo

Armazenamento de Chars de 
VARCHAR(N) VARCHAR(N) VARCHAR2(N)
tamanho Variável

Armazenamento de longas 
CLOB TEXT CLOB
cadeias de chars

Armazenamento de chars 
Unicode de tamanho fixo  CHAR(N) NCHAR(N) NCHAR(N)
(inferior a 254)

Armazenamento de chars 
Unicode de tamanho variável  VARCHAR(N) VARCHAR(N) VARCHAR2(N)
(inferior a 32.672)

Armazenamento de longas 
NTEXT NCLOB
cadeias de chars Unicode

15

15
Tipo de Dados:

DB2 9 SQL Server 2005 ORACCLE 10g

TIPO DE DADOS ARMAZENA TIPO DE DADOS ARMAZENA TIPO DE DADOS ARMAZENA

data em três partes:  data e hora com  Data e hora com 


DATE DATETIME DATE
ano, mês e dia
ê d precisão de 3.33ms
ã d precisão de 1s
ã d

DATA e hora com 
hora em três partes: 
hora em três partes:
TIME SMALLDATETIME precisão de 1 
hora, minuto e segundo
minuto

Momento:ano,mês,dia,
Momento com 
TIMESTAMP hora,minuto,segundo e  TIMESTAMP
precisão de 1ms
microsegundo

16

16
Utilizando DDL:

CREATE: É o comando utilizado para a criação de Tabelas.

E
Exemplo:
l
Comando Nome da Nome da Tipo da Restrições
Criação Tabela Coluna Coluna

Oracle 10: create table teste1(cod number(3)not null constraint PK_cod primary key)

Comando Nome da Nome da Tipo da Restrições


Criação Tabela Coluna Coluna

MySQL: create table teste1(cod int(3)not null, primary key(cod)

17

17
Utilizando DDL:

No exemplo anterior apenas incluimos 1 coluna, para incluir


mais colunas é só utilizar a virgula “,”.
E
Exemplo:l
Virgula

Oracle 10: create table teste1(cod number(3), Nome varchar2(50), cpf number(11))

Virgula

MySQL: create table teste1(cod int(3), Nome varchar(50), cpf int(11))

18

18
Utilizando DDL:

ALTER:É o comando utilizado para alterar tabelas, os mais


comuns são ADD e MODIFY e DROP.
E
Exemplo:l ADD
Comando Nome da COMANDO Nome da Tipo da Restrições
Alteração Tabela ADD Coluna Coluna

Oracle 10: alter table teste2 add cpf number(11)not null unique

Comando Nome da COMANDO Nome da Tipo da Restrições


Alteração Tabela ADD Coluna Coluna

MySQL: alter table teste2 add cpf int(11)not null unique

19

19
Utilizando DDL:

ALTER:É o comando utilizado para alterar tabelas, os mais


comuns são ADD e MODIFY e DROP.
E
Exemplo: l MODIFY
Comando Nome da COMANDO Nome da Tipo da Restrições
Alteração Tabela MODIFY Coluna Coluna

Oracle 10: alter table teste2 modify cpf number(14)not null unique

Comando Nome da COMANDO Nome da Tipo da Restrições


Alteração Tabela MODIFY Coluna Coluna

MySQL: alter table teste2 modify cpf int(14)not null unique

20

20
Utilizando DDL:

ALTER:É o comando utilizado para alterar tabelas, os mais


comuns são ADD e MODIFY e DROP.
E
Exemplo: l DROP
Comando Nome da COMANDO Comando Nome da
Alteração Tabela DROP COLUMN Coluna

Oracle 10: alter table teste4 drop column cod

Comando Nome da COMANDO Comando Nome da


Alteração Tabela DROP COLUMN Coluna

MySQL: alter table teste4 delete column cod

21

21
Utilizando DDL:

DROP:É o comando utilizado para deletar/eliminar tabelas.

E
Exemplo:
l
Comando Nome da
DROP Tabela

Oracle 10: drop table teste4

Comando Nome da
DROP Tabela

MySQL: drop table teste4

22

22
BIBLIOGRAFIA:

‰ [SILBERSCHATZ,1999]
[SILBERSCHATZ 1999] SILBERSCHATZ,A.,
SILBERSCHATZ A KORTHKORTH,H.H F
F.,
SUDARSHAN,S.; Sistema de Banco de Dados, 3ª ed.,Editora
Makron Books, São Paulo, 1999. (Capítulo 4).

‰ [ELMASRI, 2005] ELMASRI, R., NAVATHE, S. B. ; Sistema de


Banco de Dados, 4ª ed., Editora Makron Books, São Paulo,
2005. (Capítulo 8).

‰ [DATE,
[DATE 2004] DATE,
DATE C.C J.;
J ; Introdução a Sistemas de Banco
de Dados, 8ª ed., Editora Campus, São Paulo 2004. (Capítulo 4).

23

23
BIBLIOGRAFIA:
BIBLIOGRAFIA

‰ [COSTA,2007] COSTA,Rogério Luís de C.; SQL Guia Prático,


2ª ed.,Editora Brasport, Rio de Janeiro, 2007. (Capítulo 2).

‰ [MACHADO, 2008] MACHADO,Felipe, ABREU,Maurício;


Projeto de Banco de Dados, 15ª ed., Editora ERICA, São Paulo,
2008. (Capítulo 14).

‰ [[TAYLOR,, 2001]] TAYLOR,Allen


, G.;; SQL
Q para
p Dummies,,
Editora Campus, São Paulo 2001, Capítulo 2).

24

24
BIBLIOGRAFIA:

‰ [OLIVEIRA,
[OLIVEIRA 2002] OLIVEIRA,
OLIVEIRA Celso Henrique,
Henrique SQL: Curso
Prático, Novatec, São Paulo 2002, Capítulo 4).

‰ HTTP://www.wikipedia.org/wiki/Sql,
HTTP // iki di / iki/S l São
Sã P
Paulo
l FFevereiro
i 2009

25

25