Documentos relacionados
SQL DDL Criando Tabelas e Restrições

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL - Criação de Tabelas

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL DDL. Frederico D. Bortoloti

Linguagem SQL (Parte II)

Introdução ao SQL. Aécio Costa

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

Comandos DDL. id_modulo = id_m odulo

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

A linguagem SQL

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

SQL. Autor: Renata Viegas

SQL: Definição de tabelas, Modificações à Base de Dados

Linguagem SQL. Comandos Básicos

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

Programação SQL. Introdução

Structured Query Language (SQL) Aula Prática

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

SQL (Structured Query Language)

SQL (Structured Query Language)

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

PHP INTEGRAÇÃO COM MYSQL PARTE 1

SQL (Structured Query Language)

Linguagem SQL Sub-linguagem DDL

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

Comandos de Manipulação

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Linguagem de Consulta - SQL

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL (STRUCTUREDQUERY LANGUAGE)

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

BANCO DE DADOS CONCEITOS BÁSICOS

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

1. Domínio dos Atributos

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Núcleo de Pós Graduação Pitágoras

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Structured Query Language (SQL)

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

SQL. Prof. Márcio Bueno.

Fundamentos do Sistema Gerenciador de Banco de Dados

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

4.6. SQL - Structured Query Language

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Banco de Dados I Introdução SQL

SQL (STRUCTUREDQUERY LANGUAGE)

Structured Query Language (SQL)

ADMINISTRAÇÃO DE BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

09/06/2015 EXEMPLO COM A CONSTRAINTS CHECK: CHECK EXISTEM ALGUNS TIPOS DISTINTOS DE RESTRIÇÕES QUE SE PODEM APLICAR A COLUNAS: Constraint NOT NULL

Linguagem de Consulta Estruturada (SQL)

Regras de Integridade. Profa. Késsia Marchi

Linguagem SQL Parte I

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

SQL DDL ALTERAÇÃO DA ESTRUTURA DE TABELAS - ALTER TABLE - ALTER TABLE NOME_TABELA ADD [COLUMN] NOME_COLUNA TIPO_COLUNA RESTRIÇÕES

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Projeto de Banco de Dados: Empresa X

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

SQL Básica. Andre Noel

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

SQL SQL. SQL Structured Query Language. Introdução

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

A Linguagem SQL. Introdução a Banco de Dados DCC 011

SQL Linguagem de Definição de Dados

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Linguagem SQL (Parte I)


SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL DML. Frederico D. Bortoloti

EXEMPLOS DE COMANDOS NO SQL SERVER

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

O que são Bancos de Dados?

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

INF1383 -Bancos de Dados

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Transcrição:

SQL DDL Criando Tabelas e Restrições Instituto Militar de Engenharia IME Material extraido parcialmente de notas de aula de Maria Luiza Campos e Arnaldo Vieira Comandos de Definição de Dados Aplicação de BD Aplicação de BD SGBD BD BD BD schema domain table view index assertion database 1

Create Schema Coleção de tabelas, visões, domínios, funções e permissões CREATE SCHEMA [schema_name] [AUTHORIZATION owner_name] [DEFAULT CHARACTER SET char_set_name] [PATH schema_name [, ]] [ANSI CREATE statements [ ]] [ANSI GRANT statements [ ]] Ex. CREATE SCHEMA empresa AUTHORIZATION a01 CREATE TABLE empregado ( ) CREATE TABLE departamento ( ) Create Table EMPREGADO Nome SNome Matrícula DataNasc Endereço Sexo Salário SuperMat Depto DEPARTAMENTO DeptoNome DeptoSigla MatrículaGerente DEPTO_LOCAL Depto Localização PROJETO PNome PCódigo PLocalização Depto TRABALHA_EM MatrículaEmp PCódigo Horas DEPENDENTE MatrículaEmp DependenteNome Sexo DataNasc Parentesco 2

Create Table Para criar as tabelas CREATE [{LOCAL TEMPORARY GLOBAL TEMPORARY}] TABLE table_name (column_name datatype attributes [, ]) [CONSTRAINT constraint_type [constraint_name] [, ]] Attributes podem ser NOT NULL DEFAULT CONSTRAINT Tipos de dados char(n) varchar(n) ou char varying(n) int ou integer shortint float ou real double precision decimal(n,d) ou numeric(n,d) date Time Blob Clob Boolean SQL:2003 BIGINT, MULTISET, XML 3

Create Table create table Empregado ( Nome varchar(15) not null, SNome varchar(15) not null, Matrícula char(9) not null, DataNasc date, Endereço varchar(30), Sexo char, Salário decimal(10,2), SuperMat char(9), Depto char(5) not null, primary key (Matrícula), foreign key (SuperMat) references Empregado(Matrícula), foreign key (Depto) references Departamento (DeptoSigla)); Create Table create table Departamento ( DeptoNome varchar(15) not null, DeptoSigla char(5) not null, MatrículaGerentechar(9) not null, primary key (DeptoSigla), unique (DeptoNome), foreign key (MatrículaGerente) references Empregado (Matrícula)); Atributos UNIQUE: Podem ser referenciados? Como fica a integridade referencial? Podem ser anuláveis? Sim mas só permitem um nulo (MSSQL server) Mas e se o atributo que o referencia puder ser nulo? Estaria referenciando esta tupla? 4

Create Table create table Depto_Local ( Depto char(9) not null, Localização varchar(15) not null, primary key (Depto, Localização), foreign key (Depto) references Departamento (DeptoSigla)); Notem a primary key composta! Create Table create table Projeto ( PNome varchar(15) not null, Pcódigo int not null, PLocalização varchar(15), Depto char(5) not null, primary key (Pcódigo), unique (PNome), foreign key (Depto) references Departamento (DeptoSigla)); create table Trabalha_Em ( MatrículaEmp char(9) not null, Pcódigo int not null, Horas decimal(3,1) not null, primary key (MatrículaEmp, Pcódigo), foreign key (MatrículaEmp) references Empregado (Matrícula), foreign key (Pcódigo ) references Projeto (Pcódigo)); 5

Create Table create table Dependente ( MatrículaEmp char(9) not null, DependenteNome varchar(15) not null, Sexo char, DataNasc date, Parentesco varchar(8) not null, AuxilioCreche numeric(6,2), primary key (MatrículaEmp, DependenteNome), foreign key (MatrículaEmp) references Empregado (Matrícula)); Alter Table Acrescentar e remover atributos Ex. ALTER TABLE Dependente ADD Parentesco VARCHAR(8) DEFAULT `filho`; ALTER TABLE Dependente DROP AuxilioCreche; Alguns SGBDs oferecem MODIFY Ex. ALTER TABLE Dependente MODIFY Parentesco VARCHAR(8) DEFAULT `filho`; 6

Geradores de Sequência Padronizado no SQL 2003 Para preencher valores de chaves Controle fica centralizado em um objeto O uso de chaves (naturais) como cpf ou e-mail pode trazer problemas CREATE SEQUENCE PARTSEQ AS INTEGER START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 10000 NO CYCLE Usando/Modificando Geradores de Sequência Função built-in: NEXT VALUE FOR chamada no momento da inclusão INSERT INTO SHIPMENT ( PARTNUM, DECRIPTION, QUANTITY ) VALUES ( NEXT VALUE FOR PARTSEQ, 'Display', 20); 7

IDENTITY Declarar tipos sequenciais na própria estrutura da tabela Função next value for fica implícita na inserção. GENERATED ALWAYS ou BY DEFAULT.. CREATE TABLE PARTS ( PARTNUM INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 10000 NO CYCLE), DESCRIPTION VARCHAR (100), QUANTITY INTEGER INSERT INTO PARTS (DESCRIPTION, QUANTITY) VALUES ('WIDGET', 30) Restrições Domínio Chaves primárias e secundárias Chaves estrangeiras Check Assertion 8

Domínios apenas permite que um tipo de dados seja compartilhado por vários atributos. create domain Cor char (6) default??? constraint CoresValidas check ( value in ( azul, amarelo, verde,??? )) ;... create table T (..., cort Cor,... ) ; Restrições create table Empregado (... Depto char(5) not null default DESC, constraint Emppk primary key (Matrícula), constraint Superfk foreign key (SuperMat) references Empregado(Matrícula) on delete set null on update cascade, constraint EmpDept foreign key (Depto) references Departamento (DeptoSigla) on delete set null on update cascade ); 9

Restrições create table Departamento (... MatrículaGerente char(9) not null default 888665555, constraint Deptopk primary key (DeptoSigla), constraint Deptosk unique (DeptoNome), constraint DeptoGerfk foreign key (MatriculaGerente) references Empregado (Matrícula) on delete set default on update cascade ); create table Depto_Local (... primary key (Depto, Localização), foreign key (Depto) references Departamento (DeptoSigla) on delete cascade on update cascade ); Restrições check (expressão) create table SP ( S# char(5) not null, P# char(5) not null, Qtde integer not null, primary key (S#, P#), foreign key (S#) references S (S#) on delete cascade on update cascade, Pode-se envolver mais de uma coluna foreign key (P#) references P (P#) on delete cascade on update cascade, check (Qtde > 0 and Qtde < 5001) ); 10

Restrições check (expressão) com mais de uma coluna create table Pessoa ( id integer not null, nome char(50) not null, idade integer not null check (idade between 0 and 120), tempo_serv integer not null,, check (idade > tempo_serv + 18) ); Restrições check pode ser usado ao invés de create domain create table P ( P# char(5) not null, CorP char(10) not null, primary key (P#), check (CorP in (`azul`, `verde`, `branco`)) ); not null pode ser declarado como um check check (CorP is not null) 11

Restrições Cuidado com checks que envolvem mais de uma tabela! create table EMPREGADO ( matricula char(9) not null, nome varchar(20) not null, depto char(5) check (depto in (select deptosigla from DEPARTAMENTO)),... Inclusões e atualizações em EMPREGADO são verificadas, mas remoções em DEPARTAMENTO não o serão Assertions General constraints Quando a restrição envolve mais de uma relação e precisa ser verificada sempre que qq das relações envolvidas mudar Ex. CREATE ASSERTION marajá CHECK (NOT EXISTS ( SELECT * FROM empregado e, trabalha_em t WHERE e.matricula = t.matriculaemp AND e.salario > 100000)) 12

Modificando Restrições Atribuir nomes às restrições Add/drop restrições Exemplos: ALTER TABLE empregado DROP CONSTRAINT Deptosk ALTER TABLE empregado ADD CONSTRAINT nova CHECK sexo IN ( F, M ) ALTER DOMAIN Cor DROP CONSTRAINT CoresValidas ALTER DOMAIN Cor ADD CONSTRAINT CoresModa CHECK (values IN ( rosa,...)) DROP ASSERTION marajá 13