Buscar

Banco de Dados - Linguagem SQL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

BANCO DE DADOS APLICADO 
AO DESENVOLVIMENTO DE 
SOFTWARE 
Linguagem SQL 
1 
Introdução 
• Álgebra 
• Usuário preocupa-se com a ordem que as operações devem ser 
executadas 
• Preocupação com a performance e otimização 
• SQL 
• O nome SQL é derivado de Structured Query Language ou 
Linguagem de Consulta Estruturada. 
• Usuário apenas especifica qual o resultado desejado através de 
uma consulta declarativa, deixando a otimização com o SGBD 
2 
Conceitos Iniciais 
• Projetada e implementada no Centro de Pesquisa da IBM 
como interface de um banco de dados relacional experimental 
chamado System R 
• A SQL é agora a linguagem-padrão para os SGBDs relacionais 
comerciais. Isto decorre da sua simplicidade e facilidade de 
uso. 
• Ela se diferencia de outras linguagens de consulta a banco de 
dados no sentido em que uma consulta SQL especifica a forma 
do resultado e não o caminho para chegar a ele. 
• Ela é uma linguagem declarativa em oposição a outras 
linguagens procedurais. Isto reduz o ciclo de aprendizado 
daqueles que se iniciam na linguagem. 
 
3 
Conceitos Iniciais 
• SQL oferece um conjunto de comandos para uma 
variedade de tarefas diferentes, incluindo: 
• pesquisar, inserir, alterar e deletar linhas de uma tabela; 
• criar, deletar e alterar objetos de banco de dados; 
• controlar o acesso aos dados e objetos; 
• garantir a consistência dos dados. 
• SQL é utilizada por todos os tipos de usuários de um 
banco de dados relacional: 
• Administrador de sistemas; 
• Administrador de banco de dados; 
• Desenvolvedores de sistemas; 
• Usuários finais. 
4 
Conceitos Iniciais 
• SQL não é por si só um sistema de gerenciamento de banco 
de dados. A responsabilidade pelo armazenamento, 
gerenciamento físico e recuperação dos dados no disco é do 
SGBD. 
• SQL é uma "linguagem padrão" que interage entre o SGBD e 
os seus componentes ou outros gerenciadores. 
• SQL é uma linguagem de consulta interativa: o usuário tecla 
comandos num editor interativo que recupera e permite uma 
consulta fácil e rápida ao banco de dados. 
• SQL é uma linguagem de programação de banco de dados: 
programadores incluem comandos SQL em seus programas 
de aplicação para acessar os dados em um banco. 
5 
Vantagens da Linguagem SQL 
• Independência de fabricante; 
• Portabilidade entre computadores; 
• Redução dos custos com treinamento; 
• Inglês estruturado de alto nível; 
• Múltiplas visões dos dados. 
6 
SQL e Linguagens de Programação 
• Os comandos SQL podem ser embutidas em outra 
linguagem e utilizados para o acesso ao banco de dados 
• Java, C#, Delphi 
 
• Driver de conexão ao SGBD 
• JDBC (Java Database Connectivity) 
• ODBC (Open Database Connectity) 
7 
Regras Básicas 
• Regras Básicas para escrever comandos SQL 
• Os comandos podem ser escritos em mais de uma linha; 
• Cláusulas diferentes são colocadas usualmente em linhas 
diferentes; 
• Podem ser usadas tabulações; 
• Comandos podem ser escritos em letras maiúsculas ou 
minúsculas. 
8 
Regras Básicas 
• Regras para Nomeação 
• Deve começar com uma letra 
• Pode ter de 1 a 30 caracteres 
• Deve conter somente A–Z, a–z, 0–9, _, $ e # 
• Não deve duplicar o nome de outro objeto de propriedade do 
mesmo usuário 
• Não deve ser uma palavra reservada do SGBD 
 
9 
SQL> SELECT loc 
 2 FROM dept; 
A instrução SQL 
é informada 
Banco de 
Dados 
A instrução é enviada 
para o banco de dados 
LOC 
------------- 
NEW YORK 
DALLAS 
CHICAGO 
BOSTON 
Os dados são 
exibidos 
Comunicando-se com um 
SGBD Relacional usando SQL 
10 
SQL 
• Linguagem para: 
• Definição de dados: criação das estruturas 
• Data Definition Language (DDL) 
• Manipulação de dados: atualização e consultas 
• Data Manipulation Language (DML) 
 
11 
Outros comandos da linguagem 
• Controle de acesso 
• Fornece meios para determinar o controle de acesso de usuários 
aos dados do banco 
GRANT 
REVOKE 
• Compartilhamento de dados (transações) 
• Coordena o acesso concorrente de usuários, assegurando que um 
não interfira no trabalho do outro 
COMMIT 
ROLLBACK 
SAVEPOINT 
• Integridade de dados 
• Permite definir restrições de integridade aos dados do banco 
CONSTRAINT 
12 
Objeto Descrição 
Tabela Unidade básica de armazenamento, 
 composta de linhas de uma ou mais colunas 
View Representa logicamente subconjuntos de 
 dados de uma ou mais tabelas 
Seqüência Gera valores de chave primária 
Índice Melhora o desempenho de algumas 
 consultas 
Sinônimo Atribui nomes alternativos a objetos 
Objetos do Banco de Dados 
13 
SQL é mais do que uma linguagem de 
consulta 
• DDL (Data Definition Language) 
Linguagem de Definição dos dados 
• Os comandos DDL são armazenados no dicionário de dados 
(ou catálogo). Logo, o dicionário de dados contém os 
metadados (dados a respeito das estruturas de 
armazenamento) do banco. 
14 
SQL é mais do que uma linguagem de 
consulta 
• DDL (Data Definition Language) 
Linguagem de Definição dos dados 
• Os principais comandos da DDL são: 
• CREATE TABLE: cria uma nova tabela com seus campos e 
define as restrições de campo. 
• CREATE INDEX: cria um novo índice em uma tabela existente. 
• ALTER TABLE: altera as definições de campos e de restrições. 
• CREATE DOMAIN: cria um tipo de dado definido pelo usuário. 
• DROP TABLE: exclui uma tabela existente de um banco de 
dados. 
• DROP INDEX: exclui um índice existente de uma tabela. 
15 
Criação do banco de dados 
• CREATE DATABASE 
• Cria um novo banco de dados 
• Sintaxe pode mudar a depender do SGBD 
 
CREATE DATABASE <nome_do_BD> 
 
CREATE DATABASE EmpresaABC 
 
16 
Criação de tabelas 
• CREATE TABLE 
• Para criar a tabela deve conter os nomes das colunas, os tipos dos 
seus dados e os tamanhos dos dados a serem introduzidos 
 
CREATE TABLE <nome_da_tabela> 
( <nome_da_col1> <tipo_da_col1> (tamanho_do_dado), 
 <nome_da_col2> <tipo_da_col2> NOT NULL, 
 ... 
 PRIMARY KEY <lista_de_nomes_de_col>, 
 FOREIGN KEY <nomes_de_col> 
 ); 
17 
Criação de tabelas 
• Note que toda a descrição da coluna é colocada entre 
parênteses. 
• Na criação de tabelas é possível especificar vários tipos 
de restrições: 
• Chave Primária: PRIMARY KEY; 
• Chave Estrangeira: FOREIGN KEY; 
• Chave Alternativa (ou alternada): UNIQUE; 
• Restrição de Domínio: CHECK. 
• Pode-se atribuir nomes às restrições de integridade: 
• CONSTRAINT NOME_RESTRIÇÃO TIPO RESTRIÇÃO. 
18 
Criação de tabelas 
• Exemplo: 
 
CREATE TABLE Fornecedor 
( Fcod INTEGER NOT NULL, 
 Fnome VARCHAR(20) NOT NULL, 
 Status INTEGER, 
 Cidade VARCHAR(20)); 
 
 
Fornecedor 
Fcod Fnome Status Cidade
19 
Tipos para a definição de colunas 
SQL Padrão (ANSI) 
 
CHAR(tamanho) 
CHARACTER(tamanho) 
 
INT 
INTEGER 
SMALLINT 
 
NUMERIC(precisão,escala) 
DECIMAL(precisão,escala) 
DEC(precisão,escala) 
 
FLOAT(precisão) 
REAL 
DOUBLE PRECISION 
SQL2 = Padrão + 
 
VARCHAR(tamanho) 
CHAR VARYING(tamanho) 
CHARACTER VARYING(tamanho) 
 
NCHAR(tamanho) 
NATIONAL CHAR(tamanho) 
NATIONAL CHARACTER(tamanho) 
VARYING(tamanho) 
 
BIT(tamanho) 
BIT VARYING(tamanho) 
 
DATETIME 
TIME(precisão) 
TIMESTAMP(precisão) 
INTERVAL 
20 
Restrições e Valores Default 
• Restrições: 
• NOT NULL 
• Restrição aplicadas a colunas cujos valores não podem ser nulos 
• Valores Default• Adiciona-se a cláusula DEFAULT <valor> logo após a restrição: 
 
 CREATE TABLE Empregado 
 ( ... 
 Sexo CHAR(1) NOT NULL DEFAULT “F”, 
 ... 
 ); 
 
Restrição Definição do 
valor default 
21 
Criação de tabelas 
• Especificação de chaves: 
• Primária: 
 PRIMARY KEY(<nomeColuna>), 
 
• Estrangeira: 
 FOREIGN KEY(<nomeCol>) REFERENCES <NomeTabRefer>, 
 
• Alternativa: 
 UNIQUE KEY(CPF) 
 
22 
Criação de tabelas 
• Exemplo com chave primária: 
 
CREATE TABLE Departamento 
( Dcod INTEGER NOT NULL, 
 Dnome VARCHAR(20) NOT NULL, 
 Cidade VARCHAR(20), 
 PRIMARY KEY(Dcod)); 
 
 
Dcod Dnome Cidade
Departamento 
23 
Criação de tabelas 
• Exemplo com chave primária composta 
 
 
 
CREATE TABLE Empregado 
( Ecod INTEGER NOT NULL, 
 Enome VARCHAR(40) NOT NULL, 
 CPF VARCHAR(15) NOT NULL, 
 Salario DECIMAL(7,2), 
 Cod_Dept INTEGER NOT NULL, 
 PRIMARY KEY(Ecod,ENome)); 
 
Ecod Enome CPF Salario Cod_Dept
Empregado 
24 
Criação de tabelas 
• Exemplo com chave estrangeira 
 
 
 
 
CREATE TABLE Empregado 
( ..., 
 CONSTRAINT TrabalhaEm 
 FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod), 
... 
); 
 
 
Ecod Enome CPF Salario Cod_Dept
Empregado 
25 
Criação de tabelas 
• Exemplo com chave alternativa 
 
 
 
 
 
 
 
CREATE TABLE Empregado 
( ..., 
 UNIQUE KEY(CPF)); 
 
 
Ecod Enome CPF Salario Cod_Dept
Empregado 
26 
Criação de tabelas 
• Assim... 
 
CREATE TABLE Empregado 
( Ecod INTEGER NOT NULL, 
 Enome VARCHAR(40) NOT NULL, 
 CPF VARCHAR(15) NOT NULL, 
 Salario DECIMAL(7,2), 
 Cod_Dept INTEGER NOT NULL, 
 PRIMARY KEY(Ecod,ENome); 
 CONSTRAINT TrabalhaEm 
 FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod), 
 UNIQUE KEY(CPF)); 
Ecod Enome CPF Salario Cod_Dept
Empregado 
27 
Criação de um índice 
• Para criar um índice em uma tabela, o comando SQL é: 
 
CREATE INDEX nome_do_índice 
 ON nome_da_tabela(nome_da_coluna); 
 
• O comando CREATE INDEX constrói o índice 
nome_do_índice na tabela especificada. Os índices são 
utilizados, principalmente, para melhorar o desempenho do 
banco de dados (embora a utilização não apropriada possa 
resultar em uma degradação desse desempenho). 
 
28 
Exclusão de tabelas 
• DROP TABLE 
• Elimina completamente a tabela (vazia ou não) 
 
 DROP TABLE <nome_da_tabela>; 
 
• Ex.: 
 DROP TABLE Empregado; 
 
 
• Não há como recuperar a tabela removida 
29 
• A SQL permite-nos realizar diversas alterações em uma 
tabela, como: 
• incluir novas colunas em uma tabela; 
• excluir colunas existentes em uma tabela; 
• adicionar a definição de uma restrição em uma tabela; 
• excluir a definição de uma restrição existente em uma 
tabela; 
• modificar uma coluna. 
Alteração de tabelas 
30 
Alteração de tabelas 
• A sintaxe para INCLUIR uma coluna é: 
 
ALTER TABLE nome_da_tabela 
 ADD nome_da_coluna tipo_do_dado 
 
 
• Exemplo: 
 ALTER TABLE Empregado 
 ADD Telefone VARCHAR(30) 
 ADD sexo CHAR(1) DEFAULT ‘F’; 
31 
Alteração de tabelas 
• A sintaxe para ALTERAR A LARGURA de uma coluna já 
existente é: 
 
ALTER TABLE nome_da_tabela 
 MODIFY nome_da_coluna tipo_do_dado 
 nova_largura; 
 
 
• Exemplo: 
 ALTER TABLE Telefone 
 MODIFY (TIPO VARCHAR2(5)); 
32 
Alteração de tabelas 
• Excluir restrições de chave primária 
 
 ALTER TABLE Empregado 
 DROP PRIMARY KEY; 
 
• Exclusão de uma chave estrangeira 
• Pode ser feita somente se ela recebeu um nome quando foi 
definida (através de CONSTRAINT): 
 
 ALTER TABLE Empregado 
 DROP FOREIGN KEY TrabalhaEm; 
33 
Alteração de tabelas 
• Adicionar chave estrangeira: 
 
 
ALTER TABLE Empregado 
 CONSTRAINT Supervisao 
 ADD FOREIGN KEY(Codesupervisor) 
 REFERENCES Empregado(codemp); 
34 
Exclusão de Índices 
• DROP INDEX 
• Para elimina um índice 
 
 DROP INDEX nome_do_indice 
 
 
 DROP INDEX nome_do_indice 
 ON nome_da_tabela; 
• Ex.: 
 DROP INDEX Empregado; 
 
 
• Não há como recuperar a tabela removida 
35 
SQL é mais do que uma linguagem de 
consulta 
• DML (Data Manipulation Language) 
Linguagem de Manipulação dos dados 
• Após a carga dos dados nas tabelas criadas pelos comandos 
DDL, os comandos de manipulação de dados tornam possível 
sua manipulação, incluindo inserções, atualizações, exclusões 
e consultas (com a utilização do comando SELECT da SQL). 
• A DML visa à manipulação de dados (incluir, alterar, excluir e 
consultar) por meio do usuário. 
• Principais comandos: 
• SELECT: seleção de registros; 
• INSERT: inserção de registros; 
• UPDATE: atualização de registros; 
• DELETE: deleção de registros 
36 
Inserção 
• INSERT 
• Geralmente é usado para inserir linhas individuais de dados num 
BD já existente 
 
Sintaxe: 
 
 
 
Exemplo 
 
 
 
 
37 
INSERT INTO departamento 
VALUES (1, ‘VENDA’, 1); 
Liste os valores na ordem default das colunas na tabela 
Coloque valores de caracter e de data entre apóstrofos 
departamento 
(id integer(7) PRIMARY KEY, 
 nome varchar(30) NOT NULL, 
 regiao integer (7) REFERENCES regiao(id)); 
Inserção 
38 
Atualização 
• UPDATE 
• É usado para alterar valores em linhas já existentes 
Sintaxe: 
 
 
 
 
 
 
• A cláusula SET do comando UPDATE indica as colunas a 
serem alteradas e quais os novos valores. 
 
• O comando UPDATE atua em todas as linhas que 
satisfazem a condição especificada pela cláusula WHERE. A 
cláusula WHERE é opcional, mas, se for omitida, todas as 
linhas serão atualizadas. 
39 
Atualização 
• UPDATE 
• Você pode atualizar várias colunas em cada linha 
com um único comando UPDATE listando as várias 
colunas após a cláusula SET. 
• A cláusula WHERE no comando UPDATE pode 
conter uma subconsulta. 
 
Exemplo: 
40 
Exclusão 
• DELETE 
• É usado para remover linhas de uma tabela 
 
 
 
 
 
 
 
 
• Você não pode excluir parcialmente uma linha, portanto não 
precisa especificar os nomes das colunas no comando DELETE. 
 
41 
Exclusão 
• DELETE 
• A cláusula WHERE determina que linhas serão eliminadas. Ela 
pode ser complexa e incluir várias condições, conectores e/ou 
subconsultas. 
• Se você deseja excluir todas as linhas de uma tabela, omita a 
cláusula WHERE, como abaixo listado: 
 
 
 
 
• O comando acima eliminará todas as linhas, deixando apenas as 
especificações das colunas e o nome da tabela. 
42 
Recuperação Usando SELECT 
• A estrutura básica de uma consulta em SQL consiste em três 
cláusulas: SELECT, FROM e WHERE 
• Assim, 
uma consulta 
típica em SQL 
tem a forma: 
 
43 
Estrutura 
• O resultado de uma consulta SQL é SEMPRE uma tabela 
• Estrutura de uma Consulta Simples: 
 
 
 
 
 
 
 
• OBS: 
 
 
44 
Expressões Tabulares (Cláusulas) 
• Expressões tabulares são cláusulas que são usadas para produzir 
tabelas. As expressões tabulares suportadas pela SQL e seus 
propósitos são: 
 
 
 
 
 
 
 
 
45 
Exemplos 
Seleciona todos os dados de todas as colunas da tabela 
de Departamento 
 
SELECT * FROM Departamento; 
Seleciona todos os dados da coluna nome na tabela de 
Departamento 
 
SELECT nome FROM Departamento;46 
Exercício 
• Crie as seguintes tabelas em seu BD, definindo as 
condições descritas abaixo 
Fornecedor (Fcod#, Fnome, Status, Cidade) 
Peca (Pcod#, Pnome, Cor, Peso, Cidade) 
Projeto (PRcod#, Icod#, PRnome, Cidade) 
Fornecimento (Fcod#, Pcod#, PRcod#, Quantidade) 
Instituição (Icod#, nome) 
 
• Nomes para restrições de chaves primária, estrangeira e alternativa 
• Valor default para o atributo Status, de Fornecedor 
• Todos os atributos de Peca não podem ser nulos 
47

Continue navegando

Outros materiais