Você está na página 1de 11

REGES - Rede Gonzaga de Ensino Superior

Banco de Dados
Prof. Me. Eng. Marcelo Contin

A Linguagem SQL

A Linguagem SQL significa Structured Query Language – Linguagem


Estruturada de Pesquisa.
Teve seus fundamentos no modelo relacional de Codd (1970).
Sua primeira versão recebeu o nome de SEQUEL (Structured English Query
Language) definida por D. Chamberlin nos laboratórios de pesquisa da IBM em
1974.
Em 1975, foi implementado um protótipo de aplicação dessa nova linguagem.
Entre 1976 e 1977, o SEQUEL foi revisado e ampliando, e teve seu nome
alterado para SQL por razões jurídicas.
A SQL se tornou um padrão no mundo dos ambientes de banco de dados
relacionais. Bastava agora se tornar de direito. Então em 1982 o American
National Standard Institute (ANSI) tornou a SQL padrão oficial de linguagem
em ambiente relacional.
Uma das razões da popularidade dos sistemas relacionais é a sua facilidade de
manipulação e entendimento.
A linguagem passou por aperfeiçoamentos: 1986 – 1992 – 1999 – 2013.
Atualmente a linguagem SQL assume um papel muito importante nos Sistemas
de Gerenciamento de Banco de Dados e pode ter muitos enfoques:

Fonte – Projeto de Banco de Dados – Uma visão prática

1
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

Linguagem interativa de Consulta (query AdHoc) – Por meio de comandos


SQL, os usuários podem montar consultas poderosas sem a necessidade de
criação de um programa, podendo utilizar forms ou ferramentas de montagem
de relatórios;
Linguagem para banco de dados distribuídos – A SQL auxilia na
distribuição dos dados por meio de vários nós conectados ao sistema de
computação. Auxilia também na comunicação de dados com outros sistemas;
Portabilidade entre computadores – A SQL pode ser utilizada em um
computador pessoal, passando por uma estação de trabalho, até um
computador de grande porte;
Inglês estruturado de alto nível – A SQL é formada por um conjunto bem
simples de sentença em inglês, e oferece um rápido e fácil entendimento;
Consulta interativa – A SQL provê um acesso rápido aos dados, fornecendo
aos usuários respostas a questões complexas em minutos ou segundos;
Múltiplas visões de dados – A SQL permite ao criador do banco de dados
levar diferentes visões dos dados a diversos usuários;
Definição dinâmica dos dados – Por meio da SQL, é possível alterar,
expandir ou incluir, dinamicamente, as estruturas dos dados armazenados com
a máxima flexibilidade.

Por ser uma linguagem de numerosas aplicações, a SQL pode manipular


objetos de diferentes classes entre as funções de um SGBD:

2
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

NOÇÕES GERAIS DA LINGUAGEM SQL

Os comandos SQL estão divididos em categorias de acordo com sua


funcionalidade:

Definição de Dados:
DDL (DATA DEFINITION LANGUAGE) - Permite ao usuário a definição da
estrutura e a organização dos dados armazenados e das relações que existem
entre eles.

Manipulação de Dados:
DML (DATA MANIPULATION LANGUAGE) – Permite ao usuário ou a um
programa de aplicação e inclusão, remoção ou atualização de dados
previamente armazenados no banco.

Consulta de Dados:
DQL (DATA QUERY LANGUAGE) – Permite ao usuário recuperar dados.

3
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

Controle de Dados:
DCL (DATA CONTROL LANGUAGE) – Permite ao usuário conceder ou
remover direitos de acesso aos usuários do banco de dados.

Transação de Dados:
DTL (DATA TRANSACTION LANGUAGE) – Permite ao usuário controlar as
transações do banco de dados.

Criação e Distribuição de Tabelas


São operações para criação das tabelas de uma aplicação em um ambiente de
banco de dados.
Para que esta operação seja efetivada, inicialmente precisamos criar o
DATABASE, ou seja, o banco de dados no qual ficam as tabelas do sistema.
Para isso vamos utilizar o comando CREATE DATABASE com a seguinte
forma:
CREATE DATABASE database_name
Para criar a Base de Dados, temos o seguinte comando:
CREATE DATABASE REGES

Criado o DataBase, ou seja, o banco de dados da aplicação, podemos então


partir para a criação das tabelas.

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte


forma:
CREATE TABLE <tabela>
(<descrição das colunas>,
<descrição das colunas>);
Em que:
<tabela> é o nome da tabela à ser criada;

4
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

<descrição das colunas> é uma lista de colunas (campos) e seus respectivos


tipos de dados.

Alguns campos podem receber o valor NULL (nulo).


O campo definido como chave primária, não pode receber NULL.

Para criar Tabela, temos o seguinte comando baseado no MER Congresso:

CREATE TABLE INSCRICAO_EVENTO


(
cod_insc_evento int PRIMARY KEY,
nom_partic_evento varchar(100),
num_cpf_partic_evento char(14),
dat_insc_partic_evento datetime,
sta_ativa_partic_evento char(1)
);

CREATE TABLE ENDERECO


(
cod_endere int PRIMARY KEY,
cod_insc_evento int,
des_endere varchar(100),
num_endere int,
des_bairro_endere varchar(80),
des_cidade_endere varchar(100),
cod_cep_endere int,
num_tel_cont varchar(10)

5
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

FOREIGN KEY (cod_insc_evento) REFERENCES INSCRICAO_EVENTO


(cod_insc_evento)
);
CREATE TABLE SALA
(
cod_sala int PRIMARY KEY,
num_sala int,
des_sala varchar(100)
);

CREATE TABLE INSCRICAO_TRABALHO


(
cod_insc_trab int PRIMARY KEY,
cod_insc_evento int,
cod_sala int,
des_titulo_trab varchar(100),
des_resumo_trab varchar(4000),
des_forma_apres_trab varchar(80)
FOREIGN KEY (cod_insc_evento) REFERENCES
INSCRICAO_EVENTO(cod_insc_evento),
FOREIGN KEY (cod_sala) REFERENCES SALA (cod_sala)
);

A Cláusula REFERENCE estabelece a restrição de integridade referencial


entre as tabelas, porém só podem incluir essas restrições se as tabelas
referidas na cláusula REFERENCE já foram criadas antes dela.
No SGBD a integridade referencial necessita de um acréscimo na estrutura da
sintaxe do comando com a inclusão da declaração de uma Constraint.

Constraint – são propriedades que devem ser declaradas para determinadas


colunas, como chaves primárias e chaves estrangeiras. Essas propriedades
implicam em regras de validação para essas colunas, objetivando impedir
operações de inclusão, alteração ou remoção que possam tornar os dados do
Banco de Dados inconsistentes. Quando desejamos criar a chave primária da
tabela no próprio comando CREATE, utilizamos a sintaxe dos comandos já
apresentados. Note que a chave primária já está definida juntamente com o
registro da tabela.

Como no MER Congresso, a tabela INSCRICAO_TRABALHO ainda não foi


criada, teríamos um erro ao executar esse comando primeiro. Para criar esta
tabela, devemos ter criado antes a tabela ISNCRICAO_EVENTO e SALA.

Da mesma forma, a tabela ENDERECO somente pode ser criada com a


restrição de integridade referencial se for após a criação de
INSCRICAO_EVENTO.

6
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

Eliminação de uma Tabela: Comando DROP


Para eliminar uma tabela criada, utiliza-se o comando DROP.
Formato: DROPE TABLE <tabela>;
Exemplo: DROPE TABLE INSCRICAO_EVENTO

Elimina a tabela INSCRICAO_EVENTO que foi previamente criada.

Alteração da Estrutura da Tabela: Comando


ALTER TABLE
É possível mudar várias das opções que foram definidas quando a tabela foi
originalmente criada. Colunas podem ser acrescentadas, modificadas ou
excluídas; por exemplo, o nome da coluna, comprimento e tipos de dados.
É importante considerar que a mudança de tipo de dados em uma coluna pode
causar truncamento dos dados ou mesmo ser impossível de realizar (exemplo:
Converter um tipo char em um tipo inteiro e já houver valores não numéricos
armazenados nessa coluna).

ADICIONANDO COLUNAS
ALTER TABLE tabela1
ADD coluna3 tipo;

ALTER TABLE tabela1


ADD COLUMN coluna3 tipo;

MODIFICANDO COLUNAS
Alterando a largura de uma coluna:
ALTER TABLE tabela1
MODIFY coluna2 tipo;

Alterando o nome de uma coluna:


ALTER TABLE tabela1
CHANGE coluna2 coluna4 tipo;

EXCLUINDO COLUNAS
ALTER TABLE tabela1
DROP coluna3;
7
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

ALTER TABLE tabela1


DROP coluna3 CASCADE CONSTRAINTS;
ALTERANDO O NOME DE UMA TABELA
RENAME TABLE tabela1 TO tabela10;

CRIANDO UMA TABELA COM BASE EM OUTRA


Criando uma tabela com todas as linhas e colunas de outra:

CREATE TABLE tabela7 AS SELECT * FROM tabela10;

Criando uma tabela com todas as linhas e algumas colunas selecionadas de


outra:

CREATE TABLE tabela7 AS SELECT coluna1,coluna2 FROM tabela10;

Inserir, Modificar e Apagar Registros


Adição de Registros à Tabela

Para incluir dados em uma tabela utilizamos o comando INSERT.

Formato:
INSERT INTO <nome da tabela>
(<nome das colunas>)
VALUES (<valores>);

Exemplo:
Adicionar o participante à tabela INSCRICAO_EVENTO

INSERT INTO INSCRICAO_EVENTO (cod_insc_evento, nom_partic_evento,


num_cpf_partic_evento, dat_insc_partic_evento,
sta_ativa_partic_evento)
VALUES (1, ´Juliana Paes´, ´134.383.264-87´, ´10/08/2017´, ´A´);
INSERT INTO INSCRICAO_EVENTO (cod_insc_evento, nom_partic_evento,
num_cpf_partic_evento, dat_insc_partic_evento,
sta_ativa_partic_evento)
VALUES (2, ´Grazielli Massafera´, ´827.284.610-74´, ´22/08/2017´, ´A´);

A Cláusula VALUES especifica os dados que serão inseridos na tabela,


utilizada para introduzir no comando uma lista de valores para cada coluna.

8
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

Se não for especificado os nomes de colunas, essa lista de valores deve estar
na ordem das colunas definidas no comando CREATE TABLE:

INSERT INTO INSCRICAO_EVENTO


VALUES (3, ´Fernanda Lima´, ´734.723.987-52´, ´23/08/2017´, ´A´);
INSERT INTO INSCRICAO_EVENTO
VALUES (4, ´Renata Fan´, ´186.384.762.-53´, ´29/08/2017´, ´A´);

Atualização de um Registro da Tabela


A atualização de dados em linhas existentes na tabela permite que:
 Se especifique uma determinada coluna e seja alterado seu conteúdo;
 Se indique uma linha específica ou uma condição de identificação de
linhas para que sejam alterados valores de determinadas colunas.
Para modificar os dados inseridos em uma tabela utilizamos o comando
UPDATE.

Formato:
UPDATE <nome da tabela>
SET <nome da coluna = valor
WHERE <condição>

Exemplo:
Alterar o nome do participante da tabela INSCRICAO_EVENTO de Fernanda
Lima para Isis Valverde.

UPDATE INSCRICAO_EVENTO
SET nom_partic_evento = ´ Isis Valverde´
WHERE nom_partic_evento = ´ Fernanda Lima´;

Exemplo 2:
Alterar o status de todos os participantes para desativado.

UPDATE INSCRICAO_EVENTO
SET sta_ativa_partic_evento = ´D´;

O resultado desse comando faz com que todos os participantes sejam


desativados.

9
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

Cláusula WHERE
A cláusula WHERE em um comando SELECT UPDATE, DELETE especifica
quais linhas queremos obter, com base em condições de seleção.
Chamamos isto de observar uma seleção horizontal de informações.

Alterando dados usando a cláusula WHERE


Utilizada para especificar as condições que devem reunir os registros que
serão selecionados.
A cláusula WHERE executa as seguintes funções:
 Especifica as linhas a serem atualizadas.
 Indica as linhas das tabelas de origem que se qualificam para fornecer
valores para a atualização se uma cláusula FROM também for
especificada.

Se nenhuma cláusula WHERE for especificada, todas as linhas da tabela serão


atualizadas.
É sempre seguida por uma expressão lógica que pode conter os seguintes
operadores:

Remoção de Registros da Tabela


Para excluir linhas de uma tabela utilizamos o comando DELETE.

Formato:
DELETE FROM <nome da tabela>
WHERE <condição>;

Exemplo:
Apagar todos os participantes com status desativado.

DELETE FROM INSCRICAO_EVENTO


WHERE sta_ativa_partic_evento = ´D´;

10
REGES - Rede Gonzaga de Ensino Superior
Banco de Dados
Prof. Me. Eng. Marcelo Contin

Exemplo 2:
Apagar todos os participantes com data de inscrição menor que 01/10/2017.

DELETE FROM INSCRICAO_EVENTO


WHERE dat_insc_partic_evento < ´01/10/2017´;

Transações COMMIT e ROLLBACK

Uma declaração COMMIT em SQL finaliza uma transação dentro de um


sistema de gerenciamento de banco de dados (SGBD) e torna visíveis aos
usuários todas as alterações.
O comando COMMIT efetiva a transação corrente.
A utilização do COMMIT fora de uma transação não causa nenhum problema,
mas provoca uma mensagem de advertência.

Para interromper a transação deve ser utilizado o comando ROLLBACK.


O comando ROLLBACK é utilizado para desfazer o trabalho realizado na
transação corrente, ou para desfazer manualmente o trabalho realizado por
uma transação distribuída duvidosa.

Referências Bibliográficas:

SILBERSCHATZ, A.; KORTH, H, F.; SUDARSHAN, S. Sistema de Banco de Dados,


6ª ed., Editora Campus, 2012.
ELMASRI, S.N. ;B.S. NAVATHE. Sistemas de Banco de Dados: Fundamentos e
Aplicações. 6ª ed., Pearson, 2011.
MACHADO, Felipe Nery; ABREU, Maurício. Projeto de Banco de Dados: Uma
Visão Prática. 16ª ed. São Paulo: Érica 2010.

Em relação a este material, é importante ressaltar que páginas da Internet são altamente dinâmicas, até o
próprio endereço. Devido a isto, existe a possibilidade de que, ao consultar alguma página, exista parte
deste material ou outras informações.

11

Você também pode gostar