Sunteți pe pagina 1din 10

Serviço Nacional de Aprendizagem Comercial

SQL – Curso Programação WEB - JAVA

O SQL,Structured Query Language, ou Linguagem de Consulta Estruturada, é uma


linguagem de pesquisa declarativa para banco de dados relacional.

DDL - Linguagem de Definição de Dados


O segundo grupo é a DDL (Data Definition Language - Linguagem de Definição de Dados).
Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos
bancos de dados de SQL comerciais tem extensões proprietárias no DDL.
Os comandos básicos da DDL são poucos:

 CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
 DROP apaga um objeto do banco de dados.

Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar
um objeto, por exemplo, adicionando uma coluna a uma tabela existente.
outros comandos DDL:

 ALTER TABLE
 CREATE INDEX
 ALTER INDEX
 DROP INDEX
 CREATE VIEW
 DROP VIEW

DML - Linguagem de Manipulação de Dados


Primeiro há os elementos da DML (Data Manipulation Language - Linguagem de Manipulação
de Dados). A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar
dados.
 INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente.
 UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente.
 DELETE permite remover linhas existentes de uma tabela.

DCL - Linguagem de Controle de Dados


O terceiro grupo é o DCL (Data Control Language - Linguagem de Controle de Dados). DCL
controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem
acesso para ver ou manipular dados dentro do banco de dados.
Duas palavras-chaves da DCL:
 GRANT - autoriza ao usuário executar ou setar operações.
 REVOKE - remove ou restringe a capacidade de um usuário de executar operações.
outros comandos DCL:
 ALTER PASSWORD
 CREATE SYNONYM

DTL - Linguagem de Transação de Dados


 BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado
para marcar o começo de uma transação de banco de dados que pode ser completada ou
não.
 COMMIT envia todos os dados das mudanças permanentemente.
 ROLLBACK faz com que as mudanças nos dados existentes desde o último COMMIT ou
ROLLBACK sejam descartadas.
COMMIT e ROLLBACK interagem com áreas de controle como transação e locação. Ambos
terminam qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência
de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da
implementação.

DQL - Linguagem de Consulta de Dados


Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando
SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do
resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando
elaborar consultas das mais simples às mais elaboradas.
Cláusulas
As cláusulas são condições de modificação utilizadas para definir os dados que deseja
selecionar ou modificar em uma consulta.
FROM - Utilizada para especificar a tabela que se vai selecionar os registros.
WHERE – Utilizada para especificar as condições que devem reunir os registros que serão
selecionados.
GROUP BY – Utilizada para separar os registros selecionados em grupos específicos.
HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo.
ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica.
DISTINCT – Utilizada para selecionar dados sem repetição.

Operadores Lógicos
AND – E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam
corretos.
OR – OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto.
NOT – Negação lógica. Devolve o valor contrário da expressão.

Operadores Relacionais
< – Menor que
> – Maior que
<> – Diferente de
!= – Diferente de (não é padrão ISO)
<= – Menor ou Igual que
>= – Maior ou Igual que
= – Igual a
BETWEEN – Utilizado para especificar um intervalo de valores.
LIKE – Utilizado na comparação de um modelo e para especificar registros de um banco de
dados."Like" + extensão % vai significar buscar todos resultados com o mesmo início da
extensão.

Funções de Agregação
As funções de soma se usam dentro de uma cláusula SELECT em grupos de registros para
devolver um único valor que se aplica a um grupo de registros.
AVG – Utilizada para calcular a média dos valores de um campo determinado.
COUNT – Utilizada para devolver o número de registros da seleção.
SUM – Utilizada para devolver a soma de todos os valores de um campo determinado.
MAX – Utilizada para devolver o valor mais alto de um campo especificado.
MIN – Utilizada para devolver o valor mais baixo de um campo especificado.

Sistemas de Banco de Dados que usam SQL


 Apache Derby
 Caché
 DB2
 Firebird
 HSQLDB (banco de dados implementado em Java)
 Informix
 Ingres
 InterBase
 Microsoft Access
 Microsoft SQL Server
 MySQL
 Oracle
 PointBase Micro (banco de dados relacional implementado em Java)
 PostgreSQL
 SQLite
 LiteBase Mobile (dedicado à plataformas móveis como: Palm OS, Pocket PC, WinCE,
Symbian)
 Sybase Adaptive Server Enterprise
 Teradata (primeiro RDBMS com arquitetura paralela do mercado)

Demonstrações:

Considere a seguinte proposição:

Suponha a criação de uma base de dados de nome “senac” que possua um schema chamado
“Java” onde são postadas 03 tabelas: “album”, “cantores” e “musicas”.

Utilizando os comandos SQL:

Criação da base senac:

CREATE DATABASE senac Parte obrigatória: este comando cria a


tabela

Parte opcional:
WITH OWNER = postgres
Owner: Determina o dono da tabela
ENCODING = 'UTF8'
Enconding: Tipo de codificação para
LC_COLLATE = 'Portuguese_Brazil.1252'
trafego do dado
LC_CTYPE = 'Portuguese_Brazil.1252' Connection Limit: O valor -1 não impõe
CONNECTION LIMIT = -1; limites de conecções

A parte opcional é preenchida


automaticamente pelo PostgreSQL
Criação do schema Java:

CREATE SCHEMA java Parte obrigatória: este comando cria o schema

AUTHORIZATION postgres; Parte opcional: Autoriza o uso pelo PostgreSQL

Criação das tabelas:

Tabela album

Parte obrigatória:
Create Table: Cria a tabela.
( ): Os campos devem ser colocados
CREATE TABLE java.album dentre parênteses obedecendo a ordem:
( codigo integer NOT NULL, Nome do campo, tipo e atributo de
titulo character varying(50), obrigatoriedade:
tipo integer, Exemplo:
autor character varying(100), código -> nome do campo;
interprete integer, Integer -> tipo do campo;
ano date, NOT NULL -> atributo de obrigatoriedade;
saldo integer, Quando este atributo não for informado o
CONSTRAINT cod_pidx PRIMARY KEY campo não exige seu preenchimento;
(codigo) Constraint: Adiciona um elemento a
) tabela;
Primary Key: Cria um arquivo de índice de
chave primária para uma coluna da tabela.
Exemplo:
Constraint cod_pidx Primary Key (codigo):
Adiciona o arquivo cod_pidx com a coluna
codigo como chave primária.

Parte opcional:
WITH ( OIDS = FALSE): Desabilita a
identificação de colunas em face da
presença de uma chave primária. Quando
OIDS não for mencionado e não existir
WITH ( OIDS=FALSE); chave primária a tabela NÃO PODERÁ
ALTER TABLE java.album OWNER TO postgres; SER EDITADA.
ALTER TABLE java=album OWNER TO postgres:
Garante ao postgres o direito de alterar
as colunas da tabela

A parte opcional é preenchida


automaticamente pelo PostgreSQL
Tabela musicas

CREATE TABLE java.musicas


( codigo integer NOT NULL, titulo character varying(100), album integer, duracao time with
time zone, estilo integer, CONSTRAINT codmus_pidx PRIMARY KEY (codigo))

Tabela cantores

CREATE TABLE java.cantores


( codigo integer NOT NULL, nome character varying(100), estilo integer, nacional boolean,
CONSTRAINT codcan_pidx PRIMARY KEY (codigo))

Exclusão de uma base

DROP nome da tabela

Alteração de uma base

Exemplos:

CREATE TABLE frutas


( codigo integer NOT NULL, nome_comum character varying(35), nome_cient character
varying(35), peso integer, observacao character varying(100), CONSTRAINT codigo_idx
PRIMARY KEY (codigo))

Como não foi indicado o nome do schema a tabela será criada no schema public.

Exemplo 1:
ALTER TABLE frutas
SET SCHEMA java; Move a tabela para o schema Java;

Exemplo 2:
ALTER TABLE java.frutas
RENAME TO feira; Renomeia a tabela frutas para feira;

Exemplo 3:
ALTER TABLE java.feira
ADD COLUMN distribuidor character varying(50); Adiciona a coluna distribuidor do tipo
character varying e tamanho 50 à tabela feira;

Exemplo 4:
ALTER TABLE java.feira
ALTER COLUMN distribuidor SET NOT NULL; Determina a obrigatoriedade de
preenchimento da coluna distribuidor;

Exemplo 5:
ALTER TABLE java.feira
DROP CONSTRAINT codigo_idx; Deleta o arquivo código_idx (chave primária)

Exemplo 6:
ALTER TABLE java.feira
ADD CONSTRAINT distr_idx PRIMARY KEY (distribuidor); Cria o arquivo distr_idx com a
coluna distribuidor como chave primária;

Incluindo dados em uma base

Exemplos:

INSERT INTO java.album


VALUES(1,'Mão e terras',1,'Zeca Baleiro',1,'now',10);
INSERT INTO java.album
VALUES(2,'Blue Night',4,'Jack Stwart',1,'yesterday',5);
INSERT INTO java.album
VALUES(3,’Morenas',1,Maria Gadu,2,'2010/10/03',10);
INSERT INTO java.album
VALUES(4,'Billy Joe',4,'Jack Stwart',3,'2010/10/20',5);
INSERT INTO java.album
VALUES(5,'Athens',3,’Diversos’,2,'2010/10/02',8);
INSERT INTO java.album
VALUES(6,'American Jail',4,'Diversos',2,'2010/10/08',8);
INSERT INTO java.album
VALUES(7,'Athens',3,’Diversos’,2,'2010/10/02',8);
INSERT INTO java.album
VALUES(8,'American Jail',4,'Diversos',2,'2010/10/08',8);

Inseri os dados expressos nas posições específicas das respectivas colunas da tabela album:

VALUES ( 1,' Mão e terras', 1, 'Zeca Baleiro', 1, 'now', 10 );

(codigo, titulo, tipo, autor, interprete, ano, saldo)

Album:
Preencha a tabela “cantores” com os seguintes dados:

Preencha a tabela “musicas” com os seguintes dados:

Alterando dados em uma base

Observe os registros : 5 e 7, e, 6 e 8 da tabela album, note que são semelhantes a única coluna
diferenciada é a coluna da chave (não aceita repetição), para consertar esta duplicidade usa-se
o comando UPDATE que altera dados em uma tabela.

Exemplos:

Exemplo 01:
UPDATE "java"."album"
SET titulo = 'A man a horse and a gun'
WHERE codigo = 7

Exemplo 02:
UPDATE "java"."album"
SET (titulo, autor) = ('Beep boop','Mahaju')
WHERE codigo = 8

Exemplo 03:
UPDATE "java"."album"
SET (autor) = ('Mahaju')
WHERE titulo = 'American Jail'
ATENÇÃO: Quando não for mencionada uma condição, (clausula where), todas as linhas são
alteradas

Observe as alterações realizadas na tabela album:

Excluindo dados em uma base

Observe os dados da tabela cantores, note que os cantores : Michael Jackson, Paul Macartney
e Johny Muschesse não possuem um álbum próprio nem interpretam nenhuma música de
algum álbum.

Exemplo 01: Excluindo o cantor Michael Jackson


DELETE FROM java.cantores
WHERE nome = 'Michael Jackson'

Exemplo 02: Excluindo o cantor Johny Muschesse


DELETE FROM java.cantores
WHERE codigo = 8

Observe a tabela cantores.

Consultando dados em uma base

As consultas em tabelas exigem a presença do comando SELECT para seleção das colunas que
devem ser mostradas, FROM para determinar a tabela onde estão as colunas.

Exemplo 01:
SELECT codigo, titulo, autor Seleciona as colunas codigo, titulo e autor
FROM Java.album da tabela Java.album

Exemplo 02: A máscara * (asterisco), indica que todas as colunas foram selecionadas:
SELECT * Seleciona todas as colunas
FROM Java.album da tabela Java.album

O comando SELECT pode vir acompanhado da claúsula WHERE, que promove condições para a
seleção dos dados de uma ou mais colunas.
Exemplo 03:
SELECT * Seleciona todas as colunas
FROM Java.album da tabela Java.album
WHERE codigo > 4 onde o código é maior que 4

Exemplo 04:
SELECT * Seleciona todas as colunas
FROM Java.album da tabela Java.album
WHERE tipo < 4 and saldo < 10 onde o tipo é menor que 4 e o saldo é menor que 10

Exemplo 05: A clausula LIKE complementa o dado com qualquer sequencia de caracter na
posição do %:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE nome LIKE 'Maria%' onde o primeiro nome é Maria

Exemplo 06:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE nome LIKE '%Gadu' onde o último nome é Gadu

Exemplo 07:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE nome LIKE '%Ma%' onde o nome possua as letras Ma

Exemplo 08: A máscara _ (underline), indica que qualquer caracter pode ocupar sua posição:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE nome LIKE '%M_ria%' onde o nome possua as letras M ria e qualquer caracter
pode assumir a posição do underline

Exemplo 09: A clausula BETWEEN determina uma faixa para a seleção do dado:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE codigo BETWEEN 2 AND 5 onde o código é um valor entre 2 e 5

Exemplo 10: A clausula IN determina um conjunto de valores de dados para uma coluna:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE codigo IN (2,4,6) onde o código é igual a 2 ou igual a 4 ou igual a 6

Exemplo 11: A clausula IS NULL verifica se uma coluna não foi preenchida:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE nome IS NULL onde o nome nunca foi preenchido (é igual a nada)

Exemplo 12: A clausula IS NOT NULL verifica se uma coluna foi preenchida:
SELECT * Seleciona todas as colunas
FROM Java.cantores da tabela Java.cantores
WHERE nome IS NOT NULL onde o nome foi preenchido (é igual a qualquer valor )

Ordenando dados em uma base

Vimos que as consultas em tabelas exigem a presença do comando SELECT para seleção das
colunas que devem ser mostradas, FROM para determinar a tabela onde estão as colunas
e usamos o comando ORDER BY para determinar uma ordem para as consultas.

Exemplo 01:
SELECT * Seleciona todas as colunas
FROM Java.album da tabela Java.album
ORDER BY titulo, autor ordenando por titulo e autor

Consultas em várias tabelas

Considere ainda as relações:

União de tabelas

A união de tabelas seguem o principio das chaves, onde uma coluna de chave primária de uma
tabela é comparada uma coluna de outra tabela servindo assim como chave estrangeira para a
união.

Exemplo:
SELECT * Seleciona todas as colunas
FROM java.cantores, java.album, java.musicas das tabelas cantores,album e musicas
WHERE java.album.codigo = java.musicas.album onde a coluna código de álbum é igual
a coluna álbum de musicas
and java.cantores.codigo = java.album.interprete a coluna código de cantores é igual a
coluna interprete de álbum

Observe

S-ar putea să vă placă și