• 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

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

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

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

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 

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