Professional Documents
Culture Documents
Composio do SQL
! Linguagem de Definio dos Dados
! comandos para a definio, a modificao e a remoo de relaes, alm da criao e da remoo de ndices
Composio do SQL
! Linguagem de Manipulao dos Dados Embutida
! pode ser utilizada a partir de linguagens de programao de propsito geral
! Definio de vises
! SQL DDL inclui comandos para a criao e a remoo de vises
! Restries de integridade
! SQL DDL possui comandos para a especificao de restries de integridade
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Composio do SQL
! Autorizao
! SQL DDL inclui comandos para a especificao de direitos de acesso a relaes e vises
! Gerenciamento de transaes
! introduz comandos para a especificao do incio e do fim das transaes
! Recuperao de falhas
! introduz comandos para utilizao do arquivo de log
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL DDL
! CREATE DATABASE | SCHEMA
! cria um esquema de BD relacional
CREATE DATABASE
CREATE {DATABASE | SCHEMA} nome [USER `username` [PASSWORD `password`] ] ... ;
! Caracterstica
! o esquema inicial no possui tabelas/dados
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
DROP DATABASE
DROP DATABASE {DATABASE | SCHEMA} nome [CASCADE | RESTRICT] ;
! Usurios autorizados
! proprietrio do banco de dados ! DBA ou usurio com privilgio de root
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
DROP DATABASE
! CASCADE
! remove um esquema de BD, incluindo todas as suas tabelas e os seus outros elementos
! RESTRICT
! remove um esquema de BD somente se no existirem elementos definidos para esse esquema
SQL DDL
! CREATE TABLE
! cria uma nova tabela (relao) no BD ! a nova tabela no possui dados
! DROP TABLE
! remove uma tabela (relao) e todas as suas instncias do BD
! ALTER TABLE
! altera a estrutura de uma tabela (relao) j existente no BD
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
CREATE TABLE
CREATE TABLE nome_tabela ( A1 D1 R1, A 2 D 2 R 2, ... A n Dn Rn ) ;
! Cria uma nova tabela (relao) ! Cria os atributos da nova tabela, com
! nome do atributo: Ai (1 ! i ! n) ! tipo de dado (domnio do atributo): Di ! restries que atuam no atributo: Ri
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
! Hora/Data
! date | time | timestamp
! Strings
! char | character | varchar | ...
! Outros
! blob
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Restries de Integridade
! Valor nulo
! representado por NULL ! membro de todos os domnios
! Comparaes
! usar IS NULL e IS NOT NULL
Restries de Integridade
! Clusula PRIMARY KEY
! identifica os atributos da relao que formam a sua chave primria
! os atributos devem ser definidos como NOT NULL
! sintaxe
PRIMARY KEY (atributo1, atributo2, ..., atributoX)
! Clusula UNIQUE
! no permite valores duplicados para um determinado atributo
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Restries de Integridade
! Clusula DEFAULT
! associa um valor default para um atributo, caso nenhum outro valor seja especificado
! Clusula CHECK
! especifica um predicado que precisa ser satisfeito por todas as tuplas de uma relao ! exemplos
! saldo int CHECK (saldo >= 0) ! nvel char(15) CHECK (nvel IN (`Bacharelado`,`Mestrado`, `Doutorado`))
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Restries de Integridade
! Integridade referencial
! dependncia existente entre a chave estrangeira de uma relao e a chave primria da relao relacionada ! problemas
! atualizao ou excluso de elementos da chave primria sem fazer um ajuste coordenado nas chaves estrangeiras ! incluso ou alterao de valores no nulos na chave estrangeira que no existam na chave primria
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Restries de Integridade
! Clusula FOREIGN KEY
! caractersticas
! elimina a possibilidade de violao da integridade referencial ! reflete nas chaves estrangeiras todas as alteraes na chave primria
! sintaxe
FOREIGN KEY (atributos) REFERENCES nome_relao (atributos) [ON UPDATE [NO ACTION | CASCADE | SET NULL | SET DEFAULT]] [ON DELETE [NO ACTION | CASCADE | SET NULL | SET DEFAULT]]
DROP TABLE
DROP TABLE nome_tabela ;
! Usurios autorizados
! proprietrio do banco de dados ! DBA ou usurio com privilgio de root
Banco de Dados SQL DDL Profa. Dra. Cristina Dutra de Aguiar Ciferri
ALTER TABLE
ALTER TABLE nome_tabela;
SQL DDL
! CREATE DOMAIN
! cria um domnio para um tipo de dados
! DROP DOMAIN
! remove um domnio existente do BD
! ALTER DOMAIN
! altera a definio de domnio