Вы находитесь на странице: 1из 7

FACULDADE DE TECNOLOGIA TECBRASIL

Cursos Superiores de Tecnologia

SQL – Structured Query Language


Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas
linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM, desenvolveu a SQL
como forma de interface para o sistema de BD relacional denominado SYSTEM R, início dos anos 70.
Em 1986 o American National Standard Institute (ANSI), publicou um padrão SQL.

A SQL estabeleceu-se como linguagem padrão de Banco de Dados Relacional.

O nascimento da linguagem SQL deu-se à necessidade de executar as operações relacionais,


incluindo diferença, divisão, interseção, junção, produto cartesiano, projeção e união. Hoje em dia
pode-se contar no mercado com vários pacotes relacionais que possuem a SQL. No mundo da
informática, destaca-se o ORACLE , que tomou a iniciativa de implementar todos os comandos que já
são padrão da SQL e criou uma linguagem complementar para tratamento individualizado de tuplas
denominado de PL/SQL (Programming Language/SQL).

A linguagem SQL é subdivida em três categorias:

 DDL (Data Definition Language): Linguagem de definição de dados, ou seja, apresenta


uma série de comandos que permitem a criação/alteração/exclusão de tabelas,
constraints e relacionamentos.

 DML (Data Manipulation Language): Linguagem de manipulação de dados, ou seja,


apresenta uma série de comandos que permitem inserir/alterar/excluir/consultar dados de
uma ou várias tabelas.

 DCL (Data Control Language): Linguagem de controle de dados, ou seja, apresenta


comandos utilizados para controle de acesso aos dados.

PL/SQL (PROGRAMMING LANGUAGE/SQL)

Tem como função, ampliar a linguagem SQL para oferecer construções combinadas de bloco
procedural estruturado com manipulação de dados não procedural do SQL. Inclui:

. Declaração de variáveis;
. Atribuições;
. Controle condicional;
. Laços;
. Exceções.

ESCREVENDO COMANDOS SQL

Seguem-se as seguintes regras:

 Os comandos SQL podem ser escritos em uma ou mais linhas;


 As cláusulas são geralmente alocadas em linhas separadas;
 Tabulações podem ser usadas;
 As palavras dos comandos é que não podem ser separadas através das linhas;
 Os comandos SQL não são casos sensitivos, isto é, não há diferenciação entre Maiúsculas e
Minúsculas;

Comandos DDL (Data Definition Language)

Comando CREATE

Este comando permite a criação de objetos no banco de dados. Abaixo são citados alguns
objetos que podem ser criados:
 Tabelas
 Funções
 Procedimentos
 Seqüências
 Sinônimos
 Triggers
 Usuários
 Visões

Para criação de Tabelas:

Sintaxe:
CREATE TABLE < nome_tabela >
( nome_atributo1 < tipo > [ NOT NULL ],
nome_atributo2 < tipo > [ NOT NULL ],
......
nome_atributoN < tipo > [ NOT NULL ] ) ;
onde:
nome_table - indica o nome da tabela a ser criada.
nome_atributo - indica o nome do campo a ser criado na tabela.
tipo - indica a definição do tipo de atributo ( number(n,m), varchar2(n),
char(n), date... ).
n - número de dígitos ou de caracteres
m - número de casas decimais

Exemplo:

A seguir código para a criação da tabela Departamento e seu índice de chave primária:

Create table Depto


(CodDep number(3) not null,
DescDep varchar2(50) not null,
Constraint depto_pk primary key (CodDep)
);

Vamos analisar o código necessário para a criação da tabela de empregados, apresentado a


seguir:
create table Empregado
(CodEmp number(5) not null,
Nome varchar2(50) not null,
Sexo char(1) not null
CodDep number(3) not null,
DtAdmissao date not null,
CPF number(11) not null,
Salario number(10,2) not null,
Constraint codemp_pk primary key (CodEmp),
Constraint coddepto_fk foreign key (CodDep)
references Depto (CodDep),
Constraint CPF_UK unique key,
Constraint Sal_CK check (salario>0),
Constraint Sexo_CK check (sexo in (‘f’,’m’),
);

A Tabela de Empregados não poderia ter sido criada antes da Tabela de Departamento, pois
contém uma referência direta àquela tabela. Quando declaramos que CodDep é chave estrangeira,
promovemos de fato a ligação do cadastro de empregados como o cadastro de departamentos.

Comando DROP

Este comando elimina a definição de um objeto, seus dados e referências.

Sintaxe para eliminar a definição de uma tabela:

DROP TABLE < nome_tabela > ;

Exercício 1: Escreva os comandos para criação do modelo relacional abaixo:

Acervo Emprestimo Associado


Livros
PK codAcervo PK,FK1 codAcervo PK codSocio
PK,FK1 codAcervo PK,FK2 codSocio
titulo PK dtEmprestimo nome
autor endereco
publicacao dtDevolucao

Periodicos Monografias

PK,FK1 codAcervo PK,FK1 codAcervo Multa

PK,FK1 codAcervo
edicao curso
PK,FK1 codSocio
tipo
PK,FK1 dtEmprestimo

valor

1 Associado, Acervo
2 Livros, Periodicos, Monografia
3 Emprestimo
4 Multa
Comando ALTER

Este comando permite alterar a estrutura de objetos no banco de dados. Abaixo são citados
alguns objetos que podem ser alterados:
 Tabelas
 Seqüências
 Usuários

Para alterar Tabelas:

1. Adicionando colunas/atributos a uma Tabela:

Sintaxe:
ALTER TABLE < nome_tabela > ADD
( nome_atributo1 < tipo > [ NOT NULL ],
nome_atributo2 < tipo > [ NOT NULL ],
......
nome_atributoN < tipo > [ NOT NULL ] ) ;

onde:
nome_table - indica o nome da tabela a ser alterada.
nome_atributo - indica o nome do campo a ser criado na tabela.
tipo - indica a definição do tipo de atributo ( number(n,m), varchar2(n),
char(n), date... ).
n - número de dígitos ou de caracteres
m - número de casas decimais

Exemplo:

A seguir código para adicionar a coluna Data de Admissão na tabela EMPREGADO:

Alter table Empregado Add


(dtAdmissao DATE);

2. Modificando colunas/atributos de uma Tabela:

Sintaxe:
ALTER TABLE < nome_tabela > MODIFY
( nome_atributo1 < tipo > [ NOT NULL ],
......
nome_atributoN < tipo > [ NOT NULL ] ) ;

Exemplo:

A seguir código para alterar o tamanho da coluna Nome na tabela EMPREGADO:

Alter table Empregado Modify


(Nome VARCHAR2(100));

Importante: Não é possível alterar nome de atributo/coluna. Para isto, é necessário excluir a
coluna e criá-la novamente com o nome desejado.

3. Excluir colunas/atributos de uma Tabela:

Sintaxe:
ALTER TABLE < nome_tabela > DROP COLUMN nome_atributo1;

4. Adicionando constraints em uma Tabela:

Constraint de Chave Primária

Sintaxe:
ALTER TABLE < nome_tabela > ADD CONSTRAINT <nome_constraint>
PRIMARY KEY (<atributos_chave>);

Constraint de Chave Estrangeira

Sintaxe:
ALTER TABLE < nome_tabela > ADD CONSTRAINT <nome_constraint>
FOREIGN KEY (<atributos_chave >)
REFERENCES <tabela_ref> (<atributo_chave_tabela_ref>);

Constraint de Restrição de Valores

Sintaxe:
ALTER TABLE < nome_tabela > ADD CONSTRAINT <nome_constraint>
CHECK (<condicao>);

5. Removendo constraints de uma Tabela:

Sintaxe:
ALTER TABLE < nome_tabela > DROP CONSTRAINT <nome_constraint>;

6. Habilitando/Desabilitando constraints de uma Tabela:

Sintaxe:
ALTER TABLE < nome_tabela > ENABLE/DISABLE CONSTRAINT <nome_const>;

Exercício 2

Utilizando as tabelas geradas no exercício da aula anterior, escreva os seguintes comandos:

a) Escreva o comando SQL para criar a seguinte tabela:


Funcionário (codFunc, nomeFunc)

b) Escreva o comando SQL para adicionar a coluna Data de Admissão na tabela Funcionário.
c) Escreva o comando SQL para adicionar a coluna “codFunc” na tabela Empréstimo.

d) Escreva o comando SQL para adicionar a constraint de chave estrangeira da nova coluna criada
na tabela Empréstimo referenciando-a a tabela Funcionário.

e) Escreva os comandos SQL necessários para alterar a chave primária da tabela MULTA, de
modo que uma nova coluna denominada SEQ deverá fazer parte da chave juntamente com os
demais atributos.

f) Desabilite a constraint de chave estrangeira da tabela LIVROS.

g) Altere o tamanho da coluna Endereço da tabela de ASSOCIADO para 200 caracteres.

create table Acervo


(
codAcervo number(5) not null,
titulo varchar2(50) not null,
constraint codAcervopk primary key (codAcervo)
);

create table Monografia


(
curso varchar2(50),
codAcervo number(5) not null,
constraint codAcervomonofk foreign key (codAcervo) references Acervo (codAcervo)
);

create table Periodicos


(
edicao varchar2(10),
tipo varchar2(20),
codAcervo number(5) not null,
constraint codAcervoperiofk foreign key (codAcervo) references Acervo (codAcervo)
);

create table Associado


(
nome varchar2(50),
endereco varchar2(50),
codSocio number(5) not null,
constraint codSociopk primary key (codSocio)
);

create table Livros


(
autor varchar(50)not null,
publicacao varchar2(20) not null,
codAcervo number(5) not null,
constraint livros_fk foreign key (codAcervo) references Acervo (codAcervo),
constraint livros_pk primary key (codAcervo)
);
create table Emprestimo
(
codAcervo number(5) not null,
codSocio number(5) not null,
dtEmprestimo date not null,
dtDevolucao date,
constraint emprestimo_pk primary key (codAcervo, codSocio, dtEmprestimo),
constraint emp_acervo_fk foreign key (codAcervo) references Acervo (codAcervo),
constraint emp_socio_fk foreign key (codSocio) references Associado (codSocio)
);

create table Multa


(
codAcervo number(5) not null,
codSocio number(5) not null,
dtEmprestimo date not null,
valor number(10,2),
constraint multa_pk primary key (codAcervo, codSocio, dtEmprestimo),
constraint multa_fk foreign key (codAcervo, codSocio, dtEmprestimo) references emprestimo
(codAcervo, codSocio, dtEmprestimo)
);

Вам также может понравиться