Você está na página 1de 27

Captulo 4 SQL bsica

Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Tpicos

Definies e tipos de dados em SQL Especificando restries em SQL

slide 2

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

SQL bsica
Linguagem SQL Considerada um dos principais motivos para o sucesso dos bancos de dados relacionais comerciais SQL Structured Query Language Data Definition Language (DDL)

Instrues para definio de dados Instrues para consultas e atualizaes Instrues para controle de dadosPearson Prentice Hall. Todos os direitos reservados. 2011


slide 3

Data Manipulation Language (DML)

Data Control Language (DCL)

Copyright 2011 Ramez Elmasri and Shamkant Navathe

Padres da SQL

Originalmente, SQL era chamada de SEQUEL e foi criada e implementada na IBM Research como a interface para um sistema de banco de dados relacional experimental, chamado SYSTEM R. Utiliza os padres ANSI e ISO

slide 4

SQL-86 ou SQL1 SQL-92 ou SQL2 SQL-99 ou SQL3 SQL-2003 e SQL-2006: recursos de XML SQL-2008: recursos de BD de objeto
2011 Pearson Prentice Hall. Todos os direitos reservados.

Copyright 2011 Ramez Elmasri and Shamkant Navathe

DDL
Data Definition Language

Copyright 2011 Ramez Elmasri and Shamkant Navathe

Definies e tipos de dados em SQL

Terminologia: Tabela, linha e coluna usados para os termos do modelo relacional relao, tupla e atributo Instrues CREATE Principal comando SQL para a definio de dados

slide 6

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Conceitos de esquema e catlogo em SQL


Esquema SQL Identificado por um nome de esquema Inclui um identificador de autorizao e descritores para cada elemento
Esquema de elementos incluem Tabelas, restries, views, construes

domnios

outras

Cada instruo em SQL termina com um ponto e vrgula


slide 7
Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Conceitos de esquema e catlogo em SQL (cont.)


Instruo CREATE SCHEMA CREATE SCHEMA EMPRESA; Catlogo Coleo nomeada de esquemas em um ambiente SQL Ambiente SQL Instalao de um SGBDR compatvel SQL em um sistema de computador com

slide 8

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

O comando CREATE TABLE em SQL


Especificar uma nova relao Dar um nome Especificar atributos e restries iniciais, depois restries de chave e integridade referencial. Pode especificar o esquema: CREATE TABLE EMPRESA.FUNCIONARIO ou CREATE TABLE FUNCIONARIO ...
slide 9
Copyright 2011 Ramez Elmasri and Shamkant Navathe

...

2011 Pearson Prentice Hall. Todos os direitos reservados.

O comando CREATE TABLE em SQL (cont.)


CREATE TABLE <nome_da_tabela>(
C1 D1 C2 D2 [(restrio atributo)], [(restrio atributo)],

restries iniciais

Cn Dn

[(restrio atributo)],

PRIMARY KEY <lista_de_Colunas>, FOREIGN KEY


<nome_da_coluna> REFERENCES <nome_tab_ref>(<nome_da_coluna_ref>));

cada Ci uma coluna no esquema da tabela Di o tipo de dado no domnio da coluna Ci


slide 10
Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

O comando CREATE TABLE em SQL (cont.)


Tabelas da base (relaes da base) A relao e suas tuplas so criadas e armazenadas como um arquivo pelo SGBD Relaes virtuais Criadas por meio da instruo CREATE VIEW

Create view nomeDaVisao <expresso de consulta>

slide 11

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

O comando CREATE TABLE em SQL (cont.)


Algumas chaves estrangeiras podem causar erros Especificadas por: Referncias circulares Ou porque dizem respeito a uma tabela que ainda no foi criada

slide 12

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

O comando ALTER TABLE em SQL


ALTER TABLE nome_tabela ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] | MODIFY [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] | DROP COLUMN nome_atributo_1 [{, nome_atributo_n }] | ADD CONSTRAINT nome_RI_1 def_RI_1 [{, nome_RI_n def_RI_n}] | DROP CONSTRAINT nome_RI_1 [{, nome_RI_n}] | [ADD|DROP] [PRIMARY KEY ...|FOREIGN KEY ...]
slide 13
Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

O comando DROP TABLE em SQL


Exclui uma relao Pode excluir a relao: DROP TABLE EMPRESA.FUNCIONARIO ou DROP TABLE FUNCIONARIO ...

...

slide 14

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Tipos de dados de atributo e domnios em SQL


Tipos de dados bsicos Tipos de dados numrico Incluem nmeros: INTEGER ou INT e SMALLINT Nmeros de ponto flutuante (reais): FLOAT ou REAL e DOUBLE PRECISION Nmeros de ponto flutuante empacotado: DECIMAL(i,j) ou DEC(i,j) ou NUMERIC(i,j)
Onde i a preciso e j, a escala.

slide 15

Copyright 2011 Ramez Elmasri and Shamkant Navathe

Tipos de dados de cadeia de caracteres Tamanho fixo: CHAR(n) ou CHARACTER(n) Tamanho varivel: VARCHAR(n) ou CHAR 2011 Pearson Prentice Hall. Todos os direitos VARYING(n) ou CHARACTER VARYING(n) reservados.

Tipos de dados de atributo e domnios em SQL (cont.)


Tipos de dados de cadeia de bits Tamanho fixo: BIT(n) Tamanho varivel: BIT VARYING(n) Tipo de dado booleano Valores TRUE ou FALSE ou NULL Tipo de dados DATE Componentes so DAY, MONTH e YEAR na forma DD-MM-YYYY. No MySQL a forma YYYY-MM-DD. Tipo de dados TIME Componentes so HOUR, MINUTE e SECOND na slide 16 2011 Pearson Prentice Hall. Todos os direitos reservados. forma HH:MM:SS
Copyright 2011 Ramez Elmasri and Shamkant Navathe

Tipos de dados de atributo e domnios em SQL (cont.)


Tipos de dados adicionais Tipo de dado Timestamp (TIMESTAMP) Inclui os campos DATE e TIME Mais um mnimo de seis posies para fraes decimais de segundos Qualificador opcional WITH TIME ZONE Tipo de dado INTERVAL Especifica valor relativo que pode ser usado para incrementar ou decrementar um valor absoluto de uma data, hora ou timestamp
slide 17
Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Tipos de dados de atributo e domnios em SQL (cont.)


Domnio Nome usado para especificar o tipo de dado de um atributo que usado vrias vezes num esquema. mais fcil mudar o tipo de dado de um domnio do que diversos atributos. Melhora a legibilidade do esquema. Exemplo: CREATE DOMAIN TIPO_CPF AS CHAR(11);

slide 18

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Especificando restries em SQL

Restries bsicas: Restries de chave e integridade referencial Restries sobre domnios de atributo e NULLs Restries sobre tuplas individuais dentro de uma relao

slide 19

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Especificando restries de atributo e defaults de atributo


NOT NULL Valor NULL no permitido para um determinado atributo. Ex: ProjNome VARCHAR(15) NOT NULL.

Valor padro DEFAULT <valor> Usado para inicializar o valor de um atributo.

Ex: Estado CHAR(2) DEFAULT MS.

clusula CHECK Dnumero INT NOT NULL CHECK (Dnumero > 0 AND slide 20 2011 Pearson Prentice Hall. Todos os direitos reservados. Dnumero < 21);
Copyright 2011 Ramez Elmasri and Shamkant Navathe

Especificando restries de atributo e defaults de atributo

slide 21

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Especificando restries de chave e integridade referencial


Clusula PRIMARY KEY Especifica um ou mais atributos que compem a chave primria de uma relao Dnumero INT PRIMARY KEY;
Clusula UNIQUE Especifica chaves alternativas (secundrias) Dnome VARCHAR(15) UNIQUE;
CREATE TABLE DEPARTAMENTO (Dnome VARCHAR(15) NOT NULL, Dnumero INT NOT NULL, PRIMARY KEY (Dnumero), UNIQUE (Dnome) 2011 Pearson Prentice Hall. Todos os direitos reservados. );

slide 22

Copyright 2011 Ramez Elmasri and Shamkant Navathe

Especificando restries de chave e integridade referencial (cont.)


CREATE TABLE DEPARTAMENTO( Dnome VARCHAR(15) Dnumero INT PRIMARY KEY(Dnumero), UNIQUE (Dnome) );

NOT NULL, NOT NULL,

CREATE TABLE FUNCIONARIO( Nome VARCHAR(40) NOT NULL, Cpf CHAR(11) NOT NULL, Dnr INT, PRIMARY KEY(Cpf), FOREIGN KEY(Dnr) REFERENCES DEPARTAMENTO(Dnumero) );

slide 23

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Especificando restries de chave e integridade referencial (cont.)


Clusula FOREIGN KEY Ao default: rejeita atualizao sobre violao Conectado clusula de ao de disparo referencial Opes incluem SET NULL, CASCADE e SET DEFAULT Ao tomada pelo SGBD para SET NULL ou SET DEFAULT a mesma para ON DELETE e ON UPDATE Opo CASCADE adequada para relaes de parentesco'
slide 24
Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Dando nomes a restries

Palavra-chave CONSTRAINT Nome de restrio til para alteraes posteriores

slide 25

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Especificando restries sobre tuplas usando CHECK

Clusula CHECK ao final de uma instruo CREATE TABLE Aplicam a cada tupla individualmente CHECK (Dep_data_criacao <= Data_inicio_gerente);

slide 26

Copyright 2011 Ramez Elmasri and Shamkant Navathe

2011 Pearson Prentice Hall. Todos os direitos reservados.

Resumo
Comandos para definio de esquemas

create table

define a estrutura da tabela, suas restries de integridade e cria uma tabela vazia modifica a definio de uma tabela (I / E / A atributos; I / E RIs) RIs bsicas:

alter table

atributos chave no podem ser removidos de uma tabela atributos NOT NULL no podem ser inseridos em uma tabela

slide 27

drop table

2011 Pearson remove uma tabela com todas as Prentice Hall.tuplas reservados. suas Todos os direitos

Copyright 2011 Ramez Elmasri and Shamkant Navathe