30
Linguagem SQL Linguagem SQL S S tructured tructured Q Q uery uery L L anguage anguage

Linguagem SQL S tructured Q uery L anguage

  • Upload
    varana

  • View
    40

  • Download
    0

Embed Size (px)

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

Page 1: Linguagem SQL S tructured  Q uery  L anguage

Linguagem SQLLinguagem SQL SStructured tructured QQuery uery LLanguageanguage

Page 2: Linguagem SQL S tructured  Q uery  L anguage

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

Page 3: Linguagem SQL S tructured  Q uery  L anguage

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 ?

Page 4: Linguagem SQL S tructured  Q uery  L anguage

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

Page 5: Linguagem SQL S tructured  Q uery  L anguage

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

Page 6: Linguagem SQL S tructured  Q uery  L anguage

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

Page 7: Linguagem SQL S tructured  Q uery  L anguage

IntroduçãoIntrodução

• SQL como Linguagem de Definição de Dados (DDL)– Linguagem de criação das estruturas

Page 8: Linguagem SQL S tructured  Q uery  L anguage

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

Page 9: Linguagem SQL S tructured  Q uery  L anguage

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.

Page 10: Linguagem SQL S tructured  Q uery  L anguage

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

Page 11: Linguagem SQL S tructured  Q uery  L anguage

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)

Page 12: Linguagem SQL S tructured  Q uery  L anguage

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”

Page 13: Linguagem SQL S tructured  Q uery  L anguage

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

Page 14: Linguagem SQL S tructured  Q uery  L anguage

DDL

(estruturas)

DML

(dados/informações)

Consulta

(extração de dados)

Create Insert Select

Alter Update

Drop Delete

Resumo

Page 15: Linguagem SQL S tructured  Q uery  L anguage

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>) );

Page 16: Linguagem SQL S tructured  Q uery  L anguage

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

Page 17: Linguagem SQL S tructured  Q uery  L anguage

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.

Page 18: Linguagem SQL S tructured  Q uery  L anguage

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));

Page 19: Linguagem SQL S tructured  Q uery  L anguage

• Checando as colunas das tabelas

Desc Fornecedor

Page 20: Linguagem SQL S tructured  Q uery  L anguage

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) );

Page 21: Linguagem SQL S tructured  Q uery  L anguage

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’);

Page 22: Linguagem SQL S tructured  Q uery  L anguage

DDL

(estruturas)

DML

(dados/informações)

Consulta

(extração de dados)

Create Insert Select

Alter Update

Drop Delete

Resumo

Page 23: Linguagem SQL S tructured  Q uery  L anguage

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

Page 24: Linguagem SQL S tructured  Q uery  L anguage

• 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

Page 25: Linguagem SQL S tructured  Q uery  L anguage
Page 26: Linguagem SQL S tructured  Q uery  L anguage
Page 27: Linguagem SQL S tructured  Q uery  L anguage

• 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

Page 28: Linguagem SQL S tructured  Q uery  L anguage

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)

Page 29: Linguagem SQL S tructured  Q uery  L anguage

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));

Page 30: Linguagem SQL S tructured  Q uery  L anguage

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));