View
35
Download
0
Category
Preview:
DESCRIPTION
Linguagem SQL S tructured Q uery L anguage. A Linguagem SQL - Introdução. Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados. - PowerPoint PPT Presentation
Citation preview
Linguagem SQLLinguagem SQL SStructured tructured QQuery uery LLanguageanguage
A Linguagem SQL - IntroduçãoA Linguagem SQL - Introdução
• Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados.
• Com relação aos Bancos de Dados Relacionais, a linguagem mais utilizada é a SQL - Structured Query Language, que abrange tanto comandos de definição quanto comandos de manipulação de dados.
• Base– álgebra relacional e cálculo relacional
SQL significa Structured Query Language. SQL é usado para a comunicação com base de dados. É um grupo de facilidade para definição, manipulação e controle de dados em um banco de dados relacional. De acordo com a ANSI (American National Standards Institute), esta é a linguagem padrão para a administração de base de dados relacional.
O que é SQL ?O que é SQL ?
IntroduçãoIntrodução
• Histórico– SEQUEL - Structured English QUEry
Language
– Projetada e implementada no Centro de Pesquisa da IBM como interface de um banco de dados relacional experimental chamado System R
IntroduçãoIntrodução
• Histórico– ANSI (American National Standards Institute)
e a ISO (International Standards Organization) juntaram esforços de pesquisa, originando a versão SQL96, ou SQL1
– SQL2, aprovada em 1992 (SQL92)
– SQL3 aprovada em 1999
IntroduçãoIntrodução
• SQL é mais do que uma linguagem de consulta:– Definição de dados
• Permite a definição da estrutura do banco de dados
– Recuperação de dados• Possibilita a recuperação dos dados do banco
– Manipulação de dados• Permite alterações e exclusões de dados já existentes, bem como a
adição de novos dados
– Controle de acesso• Fornece meios para determinar o controle de acesso de usuários aos
dados do banco
– Compartilhamento de dados• Coordena o acesso concorrente de usuários, assegurando que um não
interfira no trabalho do outro
– Integridade de dados• Permite definir restrições de integridade aos dados do banco
IntroduçãoIntrodução
• SQL como Linguagem de Definição de Dados (DDL)– Linguagem de criação das estruturas
SQL como DDL SQL como DDL
• SQL como linguagem de definição de dados - DDL
– Definição de tabelas - CREATE
– Alteração de tabelas - ALTER
– Remoção de tabelas - DROP
Base de Dados RelacionalBase de Dados Relacional
Uma base de dado relacional é uma coleção de tabelas contendo dados. Uma tabela consiste de colunas (atributos que descrevem a tabela) e linhas (a atual ocorrência de dados). Tais dados, podem ser acessados facilmente e rapidamente em uma base de dados relacional e visualizado em formato tabular.
TabelasTabelas
• No modelo relacional toda informação é representada na forma de tabelas.
• Cada tabela possui um número definido de colunas (atributos) que detalham a informação sendo representada:– Aluno (matrícula, nome, endereço,curso);– Diciplina (código, título, créditos);
Aluno endereçonomematrícula curso12
4
JoãoMarcos
MariaAntônio
Rua 1,102Rua 2,603Rua 2,303
Rua 3,404
BDW
BDWPAW
Rede
3
TabelasTabelas
Tabelas implementam no banco de dados as principais idéias identificados pelo modelo conceitual. São compostas por um conjunto finito bem definido de atributos. Cada atributo possui:
um nome, um tipo de dado, um tamanho (opcional), uma característica de nulidade e, possivelmente, regras
Em BD convencionais os tipos de dados são restritos a tipos pré-definidos primitivo (int,varchar,float, real) e algumas extensões : date, time, Blob, decimal(n,s)
123
4
JoãoMarcos
MariaAntônio
Rua 1,102Rua 2,603Rua 2,303
Rua 3,404
BDW
BDWPAW
Rede
• Uma tabela é populada com linhas (extensão da tabela) todas elas de um mesmo tipo, considerando um tipo o conjunto ordenado de seus atributos
Aluno endereçonomematrícula curso
Linhas ou“tuplas”
SQL como DDL SQL como DDL
• Instruções para definição do esquema da base de dados:
• CREATE TABLE – Cria uma nova tabela na base de dados, especificando
nome, atributos e restrições
• ALTER TABLE– Altera definições de uma tabela
• DROP TABLE– Remove uma tabela, quando suas definições não são
mais necessárias
DDL
(estruturas)
DML
(dados/informações)
Consulta
(extração de dados)
Create Insert Select
Alter Update
Drop Delete
Resumo
Criação de tabelasCriação de tabelas
• CREATE TABLE– Colunas são especificadas primeiro, sob a forma:
<nomeCol> <domínio> <restrição>
– Depois Chaves, integridade referencial e restrições de integridade
CREATE TABLE <nome_da_tabela>( <nome_da_col1> <tipo_da_col1> NOT NULL, <nome_da_col2> <tipo_da_col2> NOT NULL,
...PRIMARY KEY <lista_de_nomes_de_col>, FOREIGN KEY <nomes_de_col>REFERENCES <nome_tab_ref>(<nome_da_col_ref>) );
Criação de tabelasCriação de tabelas
• Tipos para a definição de colunas:
SQL Padrão CHAR(tamanho)CHARACTER(tamanho)
INTINTEGER
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(precisão)TIMESTAMP(precisão)INTERVAL
Tipos de Dados mais usados no OracleTipos de Dados mais usados no Oracle
• Char(n) : – cadeia de tamanho fixo. default é 1 e o máximo é
2000.
• Varchar2(n): – cadeia de tamanho variável com o máximo de n
(máximo 4000).
• Number(p,e): numérico – p é precisão (max 38) – e é escala (número de casas decimais)
• Date: – data e hora, inclui século, ano, mes, dia, hora, minuto
e segundo.
• Timestamp: – data e horas com maior precisão.
Criação de tabelasCriação de tabelasA partir do modelo relacional, escrevemos o comando em SQL para criarmos a tabela
no banco de dados
Exemplo:
Modelo relacional
Fornecedor(fcod, fnome, status, cidade)
Criamos o esquema físico:
CREATE TABLE Fornecedor
( Fcod INTEGER NOT NULL,
Fnome VARCHAR(30) NOT NULL,
Status INTEGER,
Cidade VARCHAR(20),
primary key (fcod));
• Checando as colunas das tabelas
Desc Fornecedor
EmpregadosIdadeNomeCPF
Telefone (1,N)PlanoSaúde (0,1)
EndereçoCidade
NúmeroRua
Empregados (CPF, Nome, Idade, PlanoSaúde, Rua, Número, Cidade)Telefone(CPF, Número) CPF referencia Empregados (CPF)
MER
Relacional
Esquema Físico
Create table Empregados (CPF number(11) not null, Nome varchar(40) not null, Idade number(3) not null, PlanoSaude varchar2(40), Rua varchar2(50) not null, Número number(4) not null, Cidade varchar2(50), Primary key (CPF) );
Create table Telefone (CPF number(11) not null, NumeroTel varchar2(30) not null, Primary Key (CPF, Numero), Foreign Key (CPF) references Empregados (CPF) );
SQL – DMLSQL – DML• Inserção de dados
insert into nome_tabela [(lista_atributos)] values (lista_valores)
• Exemplos
insert into Fornecedor (Fcod, Fnome,Status, Cidade)
values (10,’Borracharia Prego Amigo Ltda’,1, ‘Nova
Odessa’);
DDL
(estruturas)
DML
(dados/informações)
Consulta
(extração de dados)
Create Insert Select
Alter Update
Drop Delete
Resumo
Structured Query Language - SQLStructured Query Language - SQL
• Instruções da DML (Data Manipulation Language)
– SELECTSELECT <lista de colunas>
FROM <lista de tabelas>
WHERE <critério de seleção>
*** Existem mais opções
• Consulta Simples:Ex.: Recuperar os dados de todos os
fornecedores cadastrados:
select * from Fornecedor;
OU select codproduto, descricao, preco, qtde
from produtos;
Structured Query Language - SQLStructured Query Language - SQL
• Diferença – Varchar2 e Char
• Nome -> char(40)– O DBMS sempre grava/utiliza 40 bytes
• Se o nome for Antonio da Silva (16 bytes). 24 bytes “desperdiçados”
• Nome -> varchar2(40)– O DBMS grava apenas os bytes informados
• Se nome = Antonio da Silva (16 bytes). 24 bytes** “economizados”
– **Bytes de controle
Criação de tabelasCriação de tabelas•Especificação de chaves:
– Primária:
PRIMARY KEY(<nomeColuna>),
– Estrangeira:
FOREIGN KEY(<nomeCol>) REFERENCES <NomeTabRefer (nomeCol)>,
– Alternativa:
UNIQUE KEY(nomeCol) (SQL2)
Criação de tabelasCriaçã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));
Criação de tabelasCriaçã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,CPF));
Recommended