SQL - Criação de Tabelas



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

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

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

SQL DDL. Frederico D. Bortoloti

Linguagem SQL Sub-linguagem DDL

Linguagem SQL (Parte II)

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

A linguagem SQL

SQL. Autor: Renata Viegas

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

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

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

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

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


Comandos DDL. id_modulo = id_m odulo

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

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

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

Linguagem de Consulta - SQL

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

Programação SQL. Introdução

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

SQL (Structured Query Language)

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

SQL (Structured Query Language)

SQL (Structured Query Language)

1. Domínio dos Atributos

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

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

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

4.6. SQL - Structured Query Language

Comandos de Manipulação

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

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

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

Disciplina: Unidade V: Prof.: Período:

SQL (STRUCTUREDQUERY LANGUAGE)

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

SQL (Structured Query Language)

Linguagem SQL. Comandos Básicos

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

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

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

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

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

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

Introdução ao SQL. Aécio Costa

SQL Básica. Andre Noel

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Linguagem de Consulta Estruturada (SQL)

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

Projeto de Banco de Dados: Empresa X

Structured Query Language (SQL)

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

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

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL Structured Query Language

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

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

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)

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

SQL (STRUCTUREDQUERY LANGUAGE)

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

BANCO DE DADOS CONCEITOS BÁSICOS

Linguagem SQL (Parte I)

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

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

Tarefa Orientada 15 Manipulação de dados

Bases de Dados. DDL Data Definition Language

Fundamentos do Sistema Gerenciador de Banco de Dados

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

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Disciplina de Banco de Dados Parte V

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

Sistemas de Informação

Structured Query Language (SQL)

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

O que são Bancos de Dados?

ADMINISTRAÇÃO DE BANCO DE DADOS

Regras de Integridade. Profa. Késsia Marchi

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Banco de Dados I Introdução SQL

Exercícios de Lógica Exercícios de Fixação 08

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Introdução ao SQL. O que é SQL?

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

SQL. Hélder Antero Amaral Nunes

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

Transcrição:

SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25

Sumário 1 Introdução 2 Tabelas 3 Colunas 4 Restrições de Integridade 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 2 / 25

Introdução Structured Query Language SQL - Linguagem para definir, manipular e questionar uma Base de Dados Relacional. SQL = DDL + DML + DQL +... DDL = Data Definition Language. DML = Data Manipulation Language. DQL = Data Query Language. André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 3 / 25

Introdução SQL Versões 1986 (SQL-86 e SQL-87) Publicado pela ANSI e ratificado pela ISO. 1989 (SQL-89) 1992 (SQL-92) Também conhecido como SQL2. 1999 (SQL:1999) Também conhecido como SQL 3. Inclui expressões regultares, queries recursivas, gatilhos, tipos não escalares e algumas funcionalidades orientadas a objectos. 2003 (SQL:2003) Inclui suporte a XML e colunas com numeração automática. André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 4 / 25

Criação de Tabelas Tabelas Na sua forma mais básica é preciso apenas indicar o nome da tabela, os nomes das várias colunas e o tipo de cada uma delas. create table <nometabela> ( <nomecoluna> <tipocoluna >, <nomecoluna> <tipocoluna > André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 5 / 25

Remoção de Tabelas Tabelas Para remover uma tabela basta indicar o seu nome. drop table <nometabela >; André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 6 / 25

Colunas Tipos de Dados Os tipos de dados mais utilizados são: char(n) ou character(n) - Cadeia de caractéres de tamanho fixo n varchar(n) ou character varying(n) - Cadeia de caractéres com tamanho máximo n text - Cadeia de caractéres sem tamanho definido int ou integer - Números inteiros (4 bytes) numeric(precisão, escala) - Números reais sem limite de tamanho date e time - Data e hora timestamp - Data + hora no mesmo campo boolean - Valores booleanos André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 7 / 25

Colunas bi integer, nome varchar ( 2 5 6 ), s a l a r i o numeric ( 9, 2 ), datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 8 / 25

Valores por Omissão Colunas Podem ainda ser definidos valores por omissão para cada coluna usando a palavra-chave default. bi integer, nome varchar ( 2 5 6 ), s a l a r i o numeric ( 9, 2 ) d e f a u l t 0, datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 9 / 25

Restrições de Integridade Restrições de Integridade Em SQL podem ser definidas restrições de integridade de vários tipos. Check Not Null Unique (Chaves candidatas não primárias) Primary Key (Chaves candidatas) Foreign Key (Chaves estrangeiras) As restrições podem ser de dois tipos: de coluna (referem-se a apenas uma coluna e são descritas em frente à coluna em causa) ou de tabela (referem-se a mais do que a uma coluna e ficam separadas da definição das colunas). André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 10 / 25

Restrições Check Restrições de Integridade As restrições do tipo CHECK permitem garantir que uma ou mais colunas seguem uma determinada regra que pode ser expressa como uma expressão matemática. bi integer, nome varchar ( 2 5 6 ), s a l a r i o numeric ( 9, 2 ) d e f a u l t 0 check ( s a l a r i o >= 0 ), datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 11 / 25

Restrições Check Restrições de Integridade Podemos e devemos sempre dar nomes às restrições para que seja mais fácil identificar a razão pela qual a inserção de dados falha. bi integer, nome varchar ( 2 5 6 ), s a l a r i o numeric ( 9, 2 ) d e f a u l t 0 c o n s t r a i n t s a l _ p o s i t i v o check ( s a l a r i o >= 0 ), datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 12 / 25

Restrições Check Restrições de Integridade No caso da restrição abranger mais de uma coluna temos de usar uma restrição de tabela. bi integer, nome varchar ( 2 5 6 ), s a l a r i o numeric ( 9, 2 ), descontos numeric ( 9, 2 ), c o n s t r a i n t desconto_menor_salario check ( desconto < s a l a r i o )... André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 13 / 25

Restrições Not Null Restrições de Integridade Para garantir que uma coluna não vai ter valores nulos podemos usar uma restrição do tipo not null. bi integer, nome varchar ( 2 5 6 ) not null, s a l a r i o numeric ( 9, 2 ), datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 14 / 25

Restrições de Integridade Restrições Chave Primária Podemos definir uma, e só uma, chave primária para a tabela. Uma chave primária não pode conter valores nulos nem pode ter valores repetidos. bi i n t e g e r primary key, nome varchar ( 2 5 6 ) not null, s a l a r i o numeric ( 9, 2 ), datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 15 / 25

Restrições de Integridade Restrições Chave Primária Uma chave primária pode ser composta por mais de do que um atributo. Nesse caso temos de usar uma restrição de tabela. pnome varchar ( 2 5 6 ), unome varchar ( 2 5 6 ), s a l a r i o numeric ( 9, 2 ), datanascimento date, primary key ( pnome, unome ) André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 16 / 25

Restrições de Integridade Restrições Chaves Candidatas Chaves candidatas alternativas podem ser definidas usando restrições do tipo unique. Estas restrições são equivalentes às restrições de chave primária mas não obrigam os valores a ser não nulos. bi i n t e g e r primary key, n i f i n t e g e r unique, nome varchar ( 2 5 6 ) not null, s a l a r i o numeric ( 9, 2 ), datanascimento date André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 17 / 25

Restrições de Integridade Restrições Chaves Candidatas Tal como as outras restrições devem ser nomeadas e no caso de incluirem mais de uma coluna devem ser declaradas como restrições de tabela. bi i n t e g e r primary key, n i f i n t e g e r c o n s t r a i n t n i f _ u n i c o unique, pnome varchar ( 2 5 6 ), unome varchar ( 2 5 6 ),... c o n s t r a i n t nome_unico unique ( pnome, unome ) André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 18 / 25

Restrições de Integridade Restrições Chaves Estrangeiras Uma restrição do tipo foreign key permite declarar chaves estrangeiras. Uma chave estrangeira deve sempre referenciar uma chave primária ou única. bi i n t e g e r primary key, depid i n t e g e r r e f e r e n c e s departamento ( id )... André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 19 / 25

Restrições de Integridade Restrições Chaves Estrangeiras No caso da coluna (ou colunas) referenciada ser a chave primária de outra tabela, podemos omitir o nome da coluna referenciada. bi i n t e g e r primary key, depid i n t e g e r r e f e r e n c e s departamento... André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 20 / 25

Restrições de Integridade Restrições Chaves Estrangeiras No caso da chave estrangeira ser composta por mais de uma coluna usa-se uma restrição de tabela: bi i n t e g e r primary key, rua varchar ( 2 5 6 ), cidade varchar ( 2 5 6 ), f o r e i g n key ( rua, cidade ) r e f e r e n c e s rua,... André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 21 / 25

Restrições de Integridade Restrições Chaves Estrangeiras Devemos sempre definir o que acontece quando uma chave estrangeira é violada durante uma operação de remoção ou alteração. bi i n t e g e r primary key, depid i n t e g e r r e f e r e n c e s departamento on delete set n u l l on update cascade,... Neste exemplo estamos a definir que no caso de um departamento ser apagado os empregados que pertençam a esse departamento devem ficar com o depid a null. No caso da chave primária do departamento ser modificada, essa modificação deve propagar-se e modificar também o depid da tabela empregado. André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 22 / 25

Restrições de Integridade Restrições Chaves Estrangeiras As alternativas para os valores de on delete e on update são: - restrict - Não deixa efectuar a operação - cascade - Apaga os registos associados (delete) ou altera a chave estrangeira (update). - set null - A chave estrangeira passa a null. - set default - A chave estrangeira passa a ter o valor por omissão. No caso de não ser possível corrigir o erro, as chaves estrangeiras funcionam como se a restrição fosse do tipo restrict. André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 23 / 25

Modificação de Tabelas Modificação de tabelas Depois de criada, uma tabela pode ser modificada. ALTER TABLE empregado ADD COLUMN nome character varying ( 6 4 ALTER TABLE empregado DROP COLUMN nome ; ALTER TABLE empregado ADD CHECK ( salario > 0 ALTER TABLE empregado ADD CONSTRAINT nif_ unico UNIQUE ( n i f ALTER TABLE empregado ADD FOREIGN KEY ( depid ) REFERENCES departamento ; ALTER TABLE empregado ALTER COLUMN s a l a r i o SET NOT NULL; ALTER TABLE empregado DROP CONSTRAINT nif_ unico ; ALTER TABLE empregado ALTER COLUMN s a l a r i o DROP NOT NULL; ALTER TABLE empregado ALTER COLUMN s a l a r i o SET DEFAULT 0 ; ALTER TABLE empregado ALTER COLUMN s a l a r i o DROP DEFAULT; ALTER TABLE empregado RENAME COLUMN depid TO departamento_id ; ALTER TABLE empregado RENAME TO funcionario ; André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 24 / 25

Domains Domínios Os domains são tipos de dados definidos pelo utilizador de forma a evitar repetições. Um domain pode conter um valor default, restrições do tipo not null e check. CREATE DOMAIN d _ s a l a r i o i n t e g e r NOT NULL CHECK ( s a l a r i o > 0 CREATE TABLE empregado ( bi integer, s a l a r i o d _ s a l a r i o André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 25 / 25