Vous êtes sur la page 1sur 15

Fundamentos de Banco de Dados

SQL
SQL structured query language
linguagem padro comercial e completa de
definio e manipulao de banco de dados relaconais
SQL1: aprovado pelo grupo ANSI, em 1986
SQL2: aprovado em 1992
SQL3: aprovado em 1999
SQL4: em andamento
Linguagens
DDL (Data Definition Language)
DML (Data Manipulation Language)

DDL
3

SQL - DDL
Criao do banco de dados
CREATE DATABASE <CAMINHO E ARQUIVO>
[USER usuario PASSWORD senha]
Exemplo:
create database c:\dados\teste.gdb
user SYSDBA PASSWORD masterkey
Observao: para alterar o usurio de senha padro,
primeiramente deve-se cadastr-los no SGBD

SQL - DDL
Criao de tabelas

O comando CREATE TABLE: cria a tabela


solicitada
CREATE TABLE <nome da tabela>
( <descrio_das_colunas> )
( <descrio_das_restries> )

<tabela>: nome da nova tabela a ser criada


<descrio_das_colunas> : lista de colunas (campos) e
seus
respectivos tipos de dados ( char, integer, decimal, date, ...)
<descrio_das_restries>: restries de chaves,
integridade, domnio
5

SQL
Exemplo: criao da tabela de
diagnsticos
CREATE TABLE DIAGNOSTICOS(
CODIGODIAGNOSTICO INTEGER
NOT NULL,
DESCRICAO
VARCHAR(150)
NOT NULL,
CONSTRAINT "PKDIAGNOSTICOS" PRIMARY KEY
(CODIGODIAGNOSTICO)
);
6

SQL

Definio de chaves

Chave primria:

[constraint Pkdiagnostico] PRIMARY KEY (codigodiagnostico)

Chave estrangeira:

FOREIGN KEY (campo tabela atual) references <tabela referenciada>


(chave primaria na tabela referenciada) [clusula]
Clusulas:
- Delete: on delete restrict (default), on delete cascade, on delete
set null
- Update: on update restrict, on update cascade

SQL
Modelo Lgico
Cidades
# codigo integer, not null
Nome varchar(50), not null
UF varchar(2), not null
Pessoas
# codigo integer, not null
nome varchar(50), not null
@cidade integer

Modelo Fsico (SQL)


Create table cidades(
Codigo integer not null,
Nome varchar(50) not null,
Uf varchar(2) not null,
Primary key (codigo));
Create table pessoas(
Codigo integer not null,
Nome varchar(50) not null,
Cidade integer,
Primary key (codigo),
Foreign key (cidade) references
cidades (codigo));
8

SQL

Excluso de tabelas

DROP table <nome_tabela>

Alterao de tabelas:

alter table <tabela> <clusula de coluna>

Clusulas de colunas:

ADD adiciona um novo atributo


ALTER altera um atributo
DROP [COLUMN] apaga um atributo
DROP CONSTRAINT apaga uma constraint

SQL

Clusulas de excluses de chave


DROP PRIMARY KEY <nome da chave primria>
DROP FOREIGN KEY <nome da chave estrangeira>

Exemplos:

ADD
ALTER TABLE PACIENTE ADD ENDERECO VARCHAR(50);
adiciona nova coluna com valor vazio para todas as linhas
no pode ter especificao NOT NULL

ALTER
ALTER TABLE PACIENTE ALTER ENDERECO TYPE VARCHAR(70)

DROP
ALTER TABLE PACIENTE DROP ENDERECO;
ALTER TABLE PACIENTE DROP constraint fkpaciente
10

SQL

Clusula check
A clusula CHECK especifica restries de integridade, ou
testes, que as linhas novas ou atualizadas devem atender
para uma operao de insero ou de atualizao
completar. Cada restrio deve ser uma expresso que
produza um resultado booleano. Uma condio declarada
na definio da coluna deve fazer referncia apenas ao
valor desta coluna, enquanto uma condio declarada como
restrio da tabela pode fazer referncia a vrias colunas.
Atualmente, as expreses de CHECK no podem conter
subconsultas, nem fazer referncia a variveis que no
sejam colunas da linha atual.
check (expresso)
11

SQL

Clusula check

Exemplos:
01. CREATE table cidades (cod_cid integer not null,
nome_cid varchar(50) not null,
uf varchar(2) not null,
check(uf='RS' or uf='SC'));
02. ALTER table cidades add check(uf='RS' or uf='SC' or
uf='PR')

12

SQL

Clusula domain

Compreende uma enumerao dos valores para o domnio


em questo.

CREATE domain (expresso)


Exemplos:
CREATE domain dnome varchar(30)
CREATE table funcionarios(cod_fun integer not null,
nome_fun dnome not null)

13

SQL

ndices

Criar ndice

CREATE [unique] INDEX <nomeindice> on <nometabela>


(<coluna(s)>)

Exemplo:
Create unique index nomepac on pacientes (nome_pac)

Remover ndice

DROP index <nomeindice>

Exemplo:
DROP index nomepac

14

Alguns exemplos
== INSERO DE UM NOVO ATRIBUTO ===

ALTER TABLE PESSOAS ADD PESCID INTEGER NOT NULL;

== CRIAO DE CHAVE ESTRANGEIRA ==

ALTER TABLE PESSOAS ADD CONSTRAINT "FKPESSOA" FOREIGN KEY


(PESCID) REFERENCES CIDADES (CODCID);

== CRIAO DE CHAVE PRIMRIA ===


ALTER TABLE PESSOAS ADD CONSTRAINT "PKPESSOA" PRIMARY KEY
(CODPES);

15