• Nenhum resultado encontrado

Structured Query Language (SQL)

N/A
N/A
Protected

Academic year: 2021

Share "Structured Query Language (SQL)"

Copied!
16
0
0

Texto

(1)

1 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Structured Query Language

(SQL)

• SQL - Breve Histórico

Data Definition Language

(DDL):

#

CREATE, ALTER e DROP;

#

BEGIN TRANSACTION, ROLLBACK e COMMIT;

#

GRANT, REVOKE e DENY;

Structured Query Language

(SQL)

• Desenvolvida pelo departamento de pesquisa da

IBM na década de 1970 (System R);

• Embora o SQL tenha sido originalmente criado

pela IBM, rapidamente surgiram vários "dialetos"

desenvolvidos por outros fabricantes;

• Essa expansão levou à necessidade de ser criado

e adaptado um padrão para a linguagem;

(2)

3 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Structured Query Language

(SQL)

• Em 1986 o

American National Standard Institute

(ANSI) publicou o SQL e estabeleceu como

linguagem padrão de Banco de Dados Relacional;

• Esta tarefa também pelo

International Standards

Organization

(ISO) em 1987;

• O SQL foi revisto em 1992 e a esta versão foi

dado o nome de SQL-92;

Structured Query Language

(SQL)

• Foi revisto novamente em 1999 e 2003 para se

tornar SQL:1999 (SQL3) e SQL:2003,

respectivamente;

• Exemplo de modificação no SQL:1999 :

#

Gatilhos (

triggers

).

• Exemplo de modificação no SQL:2003 :

(3)

5 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Structured Query Language

(SQL)

• Embora padronizado pela ANSI e ISO, possui

muitas variações e extensões produzidos pelos

diferentes fabricantes de sistemas gerenciadores

de bases de dados;

• Tipicamente a linguagem pode ser migrada de

plataforma para plataforma sem mudanças

estruturais principais.

Structured Query Language

(SQL)

• Tipicamente, pode ser dividida em duas

“sub-linguagens”:

#

DDL –

Data Definition Language

ƒ Modificações “estruturais”;

#

DML –

Data Manipulation Language

(4)

7 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• Comandos básicos usados para estruturar o

banco de dados:

#

CREATE – Criação de “elementos”;

#

ALTER – Alteração de “elementos”;

#

DROP – Exclusão de “elementos”.

Data Definition Language

(DDL)

• Os comandos abaixo serão estudados

posteriormente:

#

Controle de transações:

ƒ BEGIN TRANSACTION, ROLLBACK e COMMIT;

#

Estabelecimento de direitos de acesso:

(5)

9 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE DATABASE

#

Criação de um banco de dados.

#

Exemplo:

ƒ CREATE DATABASE BancoExemplo;

ƒ Retorno do SGDB (MSSQL 2000):

– The CREATE DATABASE process is allocating 0.75

MB on disk 'BancoExemplo'.

– The CREATE DATABASE process is allocating 0.49

MB on disk 'BancoExemplo_log'.

Data Definition Language

(DDL)

• CREATE DATABASE

#

A criação de um banco de dados corresponde à fase de

implementação (modelo físico);

#

Para que seja possível criar tabelas deve ser criado o

banco de dados primeiro;

(6)

11 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE DATABASE

#

Como especificar localização, tamanho, etc.?

#

No exemplo anterior, foram criados dois arquivos:

ƒ

BancoExemplo (0.75 MB)

ƒ

BancoExemplo_log (0.49 MB).

Data Definition Language

(DDL)

(7)

13 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE DATABASE

#

Cada SGBD gerencia os dados de maneira própria;

#

Extensões para os comandos SQL padrão incluem

parâmetros que permitem a especificação de

características dos bancos de dados;

#

Conceitos de “arquivos de log” varia de gerenciador

para gerenciador, por exemplo.

Data Definition Language

(DDL)

• CREATE DATABASE – MS SQL Server 2000:

CREATE DATABASE database_name

[ ON [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ]

[ FOR LOAD | FOR ATTACH ] < filespec > ::=

[ PRIMARY ]

( [ NAME = logical_file_name , ] FILENAME = 'os_file_name' [ , SIZE = size ]

[ , MAXSIZE = { max_size | UNLIMITED } ]

[ , FILEGROWTH = growth_increment ] ) [ ,...n ]

(8)

15 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• ALTER DATABASE

#

Permite alterar configurações de um banco de dados

previamente criado;

#

De forma semelhante ao comando de criação, os

parâmetros disponíveis para alteração variam de acordo

com o fabricante do SGBD;

#

Por exemplo, um banco pode ter um atributo de “leitura

e escrita” alterado somente para “leitura”.

Data Definition Language

(DDL)

• ALTER DATABASE – MS SQL Server 2000:

ALTER DATABASE

database

{ ADD FILE < filespec > [ ,...

n

] [ TO FILEGROUP

filegroup_name

]

| ADD LOG FILE < filespec > [ ,...

n

]

| REMOVE FILE

logical_file_name

| ADD FILEGROUP

filegroup_name

| REMOVE FILEGROUP

filegroup_name

| MODIFY FILE < filespec >

| MODIFY NAME =

new_dbname

| MODIFY FILEGROUP

filegroup_name

{

filegroup_property

| NAME =

new_filegroup_name

}

|

SET < optionspec > [ ,...

n

] [ WITH < termination > ]

| COLLATE <

collation_name

>

(9)

17 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• DROP DATABASE

#

Eliminação de um banco de dados.

#

Exemplo:

DROP DATABASE BancoExemplo;

#

Dependendo da versão do SGBD, os arquivos de dados

não são destruídos automaticamente;

#

O SGBD não deve permitir a eliminação do banco se

houver usuários conectados, por exemplo.

Data Definition Language

(DDL)

• DROP DATABASE – MS SQL Server 2000:

DROP DATABASE

database_name

[ ,...

n

]

#

Exemplo:

(10)

19 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE TABLE

#

Criação de uma tabela no banco de dados ao qual o

usuário está conectado;

#

Exemplo de sintaxe:

CREATE TABLE IdentificadorTab

(

Atrib01 TipoDado [NOT NULL],

Atrib02 TipoDado [NOT NULL],

PRIMARY KEY (ChavePrimaria)

);

Data Definition Language

(DDL)

• CREATE TABLE

#

Na sintaxe anterior:

ƒ IdentificadorTab:

– Identificador da tabela (nome);

ƒ Atrib01, Atrib02:

– Atributos (campos ou colunas da tabela);

ƒ [NOT NULL]:

– “Nulabilidade” do campo. O fato de aparecer entre

colchetes indica que sua especificação é opcional;

ƒ PRIMARY KEY:

(11)

21 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE TABLE

#

Exemplos:

CREATE TABLE Cliente

(

idCli INTEGER NOT NULL,

Nome CHAR(50) NOT NULL,

cpf

CHAR(11) NOT NULL,

PRIMARY KEY (idCli)

);

CREATE TABLE AgenciaCliente

(

idAg

INTEGER NOT NULL,

NomeAg CHAR(50) NOT NULL,

PRIMARY KEY (idAg)

);

Data Definition Language

(DDL)

• CREATE TABLE – MS SQL Server 2000 (01/04)

CREATE TABLE

[ database_name.[ owner ] . | owner. ] table_name

( { < column_definition >

| column_name AS computed_column_expression

| < table_constraint > ::= [ CONSTRAINT constraint_name ]} | [ { PRIMARY KEY | UNIQUE } [ ,...n ]

)

[ ON { filegroup | DEFAULT } ]

[ TEXTIMAGE_ON { filegroup | DEFAULT } ]

(12)

23 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE TABLE – MS SQL Server 2000 (02/04)

< column_definition > ::= { column_name data_type }

[ COLLATE < collation_name > ] [ [ DEFAULT constant_expression ]

| [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ] ]

[ ROWGUIDCOL]

[ < column_constraint > ] [ ...n ]

continua…

Data Definition Language

(DDL)

• CREATE TABLE – MS SQL Server 2000 (03/04)

< column_constraint > ::= [ CONSTRAINT constraint_name ]

{ [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ON {filegroup | DEFAULT} ] ] ]

| [ [ FOREIGN KEY ]

REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]

]

| CHECK [ NOT FOR REPLICATION ] ( logical_expression )

(13)

25 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• CREATE TABLE – MS SQL Server 2000 (04/04)

< table_constraint > ::= [ CONSTRAINT constraint_name ]

{ [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ]

{ ( column [ ASC | DESC ] [ ,...n ] ) } [ WITH FILLFACTOR = fillfactor ]

[ ON { filegroup | DEFAULT } ] ]

| FOREIGN KEY

[ ( column [ ,...n ] ) ]

REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] [ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]

| CHECK [ NOT FOR REPLICATION ] ( search_conditions )

}

Data Definition Language

(DDL)

• ALTER TABLE

#

Modifica a definição de uma tabela:

ƒ Alteração, inclusão e remoção de colunas;

ƒ Alteração, inclusão e remoção de restrições

(

constraints

);

(14)

27 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• ALTER TABLE

#

Exemplo de sintaxe:

ALTER TABLE AgenciaCliente

ADD idCri INTEGER NOT NULL

CONSTRAINT FKAgenciaCliente

FOREIGN KEY (idCri) REFERENCES Cliente(idCli)

DEFAULT(-1);

#

Note que os nomes das colunas envolvidas na

referência podem ser diferentes;

#

A coluna que vai ser adicionada deve permitir nulos ou

possuir a propriedade DEFAULT definida.

Data Definition Language

(DDL)

• ALTER TABLE – MS SQL Server 2000 (01/04)

ALTER TABLE table

{ [ ALTER COLUMN column_name

{ new_data_type [ ( precision [ , scale ] ) ] [ COLLATE < collation_name > ]

[ NULL | NOT NULL ]

| {ADD | DROP } ROWGUIDCOL } ]

| ADD

{ [ < column_definition > ]

| column_name AS computed_column_expression

} [ ,...n ]

| [ WITH CHECK | WITH NOCHECK ] ADD { < table_constraint > } [ ,...n ] | DROP

{ [ CONSTRAINT ] constraint_name

| COLUMN column } [ ,...n ] | { CHECK | NOCHECK } CONSTRAINT

{ ALL | constraint_name [ ,...n ] } | { ENABLE | DISABLE } TRIGGER

{ ALL | trigger_name [ ,...n ] } }

(15)

29 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• ALTER TABLE – MS SQL Server 2000 (02/04)

< column_definition > ::=

{ column_name data_type }

[ [ DEFAULT constant_expression ] [ WITH VALUES ]

| [ IDENTITY [ (seed , increment ) [ NOT FOR REPLICATION ] ] ] ]

[ ROWGUIDCOL ]

[ COLLATE < collation_name > ] [ < column_constraint > ] [ ...n ]

continua...

Data Definition Language

(DDL)

• ALTER TABLE – MS SQL Server 2000 (03/04)

< column_constraint > ::=

[ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ ON { filegroup | DEFAULT } ] ]

| [ [ FOREIGN KEY ]

REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]

]

| CHECK [ NOT FOR REPLICATION ] ( logical_expression ) }

(16)

31 11/2/2007 Sistema de Banco de Dados (2007 / S1) – Prof.: Marcelo

Aula 04

Data Definition Language

(DDL)

• ALTER TABLE – MS SQL Server 2000 (04/04)

< table_constraint > ::=

[ CONSTRAINT constraint_name ] { [ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED ] { ( column [ ,...n ] ) }

[ WITH FILLFACTOR = fillfactor ] [ ON {filegroup | DEFAULT } ] ]

| FOREIGN KEY

[ ( column [ ,...n ] ) ]

REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] [ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]

| DEFAULT constant_expression

[ FOR column ] [ WITH VALUES ] | CHECK [ NOT FOR REPLICATION ]

( search_conditions ) }

Structured Query Language

(SQL)

• Referências Bibliográficas

#

SILBERCHATZ A., KORTH H. F., SUDARSHAN S.; Sistema de Banco

de Dados, São Paulo, Pearson Makron Books, 2006.

#

Integration Definition for Information Modeling

(IDEF1X);

Federal

Referências

Documentos relacionados

Eles ressaltaram diversos aspectos de sua imensa contribuição ao management: Drucker foi um transgressor, tinha imensa capacidade de fazer previsões, foi um fenômeno como autor

Com o estabelecimento das distâncias genéticas entre os indivíduos pertencentes ao plantel, mantidos com Registros Genéticos atualizados, como é o caso do Plantel do

Partindo de um caso específico, em que a autobiografia de um médico e pesquisador brasileiro foi utilizada como fio condutor para uma pesquisa antropológica, proponho

10.1 O município de Canoas reserva-se o direito de chamar os candidatos aprovados no Concurso Público, na medida de suas necessidades, de acordo com as respectivas ordens

Na sequência, distintos nanocompósitos híbridos foram preparados pelo método de polimerização química in situ na temperatura de 20 o C e diferentes razões molares de

traseira é de no máximo 15cm após a coluna B ( no sentido do painel de instrumentos do veículo). g) Liberada a substituição das caixas de roda traseira para acomodação dos pneus

O ASSINANTE, previamente vinculado a outro contrato de prestação do serviço VÍRTUA, que optar pela contratação, a qualquer tempo, da OPÇÃO FIDELIDADE prevista

O  Estabelecimento  de  Ensino  deve  pagar  as  verbas  devidas  na  rescisão  contratual  no  dia  seguinte  ao  término  do  aviso prévio,  quando