Bases de Dados. DDL Data Definition Language

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

Banco de Dados I Introdução SQL

SQL (Tópicos) Structured Query Language

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

A linguagem SQL

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

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

Banco de Dados. Professora: Luciana Faria

SQL Linguagem de Definição de Dados

Tarefa Orientada 8 Criação de tabelas

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

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

SQL Básica. Andre Noel

SQL - Criação de Tabelas

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

SQL. Prof. Roger Cristhian Gomes

BCD29008 Banco de dados

Modelagem Física e SQL

Linguagem de Definição de Dados (DDL)

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

MySql. Introdução a MySQL. Andréa Garcia Trindade

Structured Query Language (SQL) Aula Prática

Modelagem Física e SQL

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

Manipulação de Dados com SQL

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Bancos (Bases) de Dados

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Page 1. Prof. Constantino Jacob

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

Linguagem de Consulta Estruturada (SQL)

Aula 06 Sistemas Embarcados LT38C

Banco de Dados. Linguagem SQL

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

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

Bases de Dados. DML Data Manipulation Language Parte 3

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

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

Tabelas. Banco de Dados I MySQL

PSI Linguagem de Definição de dados. Módulo 15

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS)

Teste Exemplo Revisão da tentativa 1

BANCO DE DADOS PARA NINJAS

Linguagem SQL Sub-linguagem DDL

O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como:

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

A linguagem SQL

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

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

Revisão de Bancos de Dados

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

Comandos de Manipulação

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

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

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Modelo Entidade-Relacionamento (E-R)

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

SQL. Autor: Renata Viegas

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

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

Para criarmos um banco de dados no MySql, utilizamos à instrução:

SQL DDL. Frederico D. Bortoloti

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

IMPLEMENTAÇÃO DE BANCO DE DADOS

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

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

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

SQL (Structured Query Language)

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Introdução ao PostgreSQL

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

Fundamentos de Banco de Dados Postgre com Sql

Transcrição:

Bases de Dados DDL Data Definition Language

SQL SQL = Structured Query Language Foi originalmente criada pela IBM nos anos 70 como parte de um protótipo de sistema relacional Posteriormente foi implementada em muitos outros produtos comerciais Tornou-se um standard de linguagem de manipulação de dados É utilizada para formular operações relacionais (isto é, operações que definem e manipulam dados de forma relacional)

Características do SQL É uma linguagem semelhante à linguagem corrente, neste caso a inglesa Não é procedimental, isto é, não se indica como obter informação mas sim que informação se pretende Processa um conjunto de registos e não um só registo de cada vez (operações relacionais sobre conjuntos, em que a forma de conjunto de registos mais comum é uma tabela) Possui todos os comandos necessários tanto para a criação das estruturas que armazenam dados como dos próprios dados Extrai e manipula toda a informação da base de dados recorrendo aos operadores da Álgebra Relacional

Comandos SQL Dividem-se em dois tipos Definição de Dados: DDL ou Data Definition Language Manipulação de Dados: DML ou Data Manipulation Language

Comandos da sublinguagem DML UPDATE categoria SET nome_categoria = Professor Adjunto Equiparado WHERE nome_categoria LIKE %adjunto% Alterar o nome da categoria Professor adjunto Equiparado para Professor Adjunto Equiparado INSERT INTO curso VALUES(5, Informatica de Economia ); INSERT INTO curso VALUES(6, Economia e Gestao ); Inserir dois novos curso que tenham a palavra Economia no no seu nome (utilizar os códigos 5 e 6) DELETE FROM curso WHERE nome_cruso LIKE %Economia% ); Apagar os tuplos inseridos anteriormente.

DDL Data Definition Language (1) Conjunto de instruções SQL destinadas à criação de objectos numa base de dados: Domínios Tabelas Índices Chaves Vistas Restrições

DDL - Data Definition Language (2) Para permitir a definição de tais objectos a DDL oferece-nos três comandos diferentes: CREATE : criar objectos na base de dados ALTER : modificar objectos da base de dados DROP : remover objectos da base de dados

Tipos de Dados SQL Oracle Os tipos de dados (mais comuns) a utilizar em SQL na definição das colunas das tabelas são os seguintes: NUMBER(n) DATE VARCHAR2(n)...

Tipos de Dados SQL Oracle VARCHAR2(n): string de dimensão variável, com dimensão máxima n em bytes. A dimensão máxima permitida é 4000 e a mínima 1. NVARCHAR(n): string de dimensão variável, com dimensão máxima n em caracteres ou bytes, dependente do mapa de caracteres escolhido. A dimensão máxima permitida é 4000 e a mínima é 1. NUMBER(p, s): número com precisão p e escala s. A precisão p varia entre 1 e 38 e a escala s de -84 a 127. LONG: dados tipo caracter de dimensão variável até 2Gb. DATE: datas de 1 de Janeiro de 4712 AC até 31 de Dezembro de 4712 DC. RAW(n): dados binários de dimensão n em bytes. A dimensão é de 2000 bytes. LONG RAW: dados binários de dimensao variável até 2 Gb. ROWID: string hexadecimal que representa o endereço único de uma linha numa tabela. CHAR(n): string de dimensão fixa n em bytes. A dimensão máxima permitida é 2000 e a mínima 1. NCHAR(n): string com dimensão fixa n em caracteres ou bytes, dependente do mapa de caracteres escolhido. A dimensão máxima permitida é 2000 e a mínima 1. CLOB: objecto com caracteres de um byte. A dimensão máxima é de 4 Gb. NCLOB: objecto com caracteres de um ou mais bytes. A dimensão máxima é de 4 Gb. BLOB: objecto binário. A dimensão máxima é de 4 Gb. BFILE: contém a localização de um ficheiro binário armazenado fora da base de dados.

CREATE Suponhamos que vamos criar uma tabela A sintaxe do comando CREATE é a seguinte: CREATE TABLE <nome_tabela> (lista_parametros); Em que lista_parametros pode conter diversos itens de dois tipos distintos: Definição de colunas Definição de restrições sobre a tabela

Exemplo: CREATE e DROP CREATE TABLE funcionario (num_funcionario NUMBER(3) NOT NULL, nome_funcionario VARCHAR2(50) NOT NULL, data_nsc_funcionario DATE NOT NULL); Criar uma tabela funcionario DROP TABLE funcionario CASCADE CONSTRAINTS; Apagar a tabela funcionario

Definição de uma coluna/atributo Cada coluna/atributo aparece na criação da tabela separada por vírgulas e tem a sintaxe seguinte: Nome da coluna/atributo nome_atributo data_type [ definicao_default ] Tipo de dados - Valor por omissão para a coluna - Assume NULL quando nada é especificado ou não depende de nenhum domínio

Definição de uma Restrição Uma restrição, também conhecida por constraint pode ser um dos seguintes itens: candidate key foreign key check constraint

Candidate Keys Uma candidate key toma geralmente a forma seguinte: UNIQUE (lista_atributos_separadas_por_virgulas) Ou então PRIMARY KEY (lista_atributos_separadas_por_virgulas) Em que a lista de atributos a utilizar em cada um destes tipos de chave não pode em nenhum dos casos ser vazia. Uma dada tabela pode ter diversas unique keys mas em cada instante só terá uma primary key Cada atributo pertencente a estas chaves tem assumidamente um valor diferente de NULL para cada registo!

Foreign Keys (1) São as designadas chaves externas, que relacionam cada registo de uma tabela com os registos de outras. Tomam a forma seguinte: FOREIGN KEY (lista_atributos_separadas_por_virgulas) REFERENCES nome_tabela_destino [ (lista_atributos_destino_separadas_por_virgulas) ] [ON DELETE option] [ON UPDATE option] Necessária apenas se a foreign key referencia uma chave candidata que não é chave primária na tabela de destino

Foreign Keys (2) Option pode ter os seguintes valores: NO ACTION (não fazer nada) CASCADE (propagar acção às tabelas referenciadas) SET DEFAULT (utilizar default) SET NULL (colocar foreign key a NULL)

Check Constraints Uma check constraint verifica na inserção ou actualização de os valores a guardar respeitam uma determinada condição ou restrição. Toma geralmente a forma: CHECK (expressao_condicional_a_verificar)

Alterar tabelas Esta operação efectua-se com o comando ALTER TABLE. Permite-nos efectuar várias operações: Adicionar e remover atributos Mudar, adicionar ou remover valores default de colunas já existentes Adicionar ou remover restrições sobre a tabela

ALTER TABLE Adicionar colunas: ALTER TABLE nome_tabela ADD COLUMN nome_atributos_a_adicionar tipo_dados DEFAULT valor_default; Remover colunas: ALTER TABLE nome_tabela DROP COLUMN nome_atributo_a_remover; Modificar colunas... ALTER TABLE nome_tabela MODIFY [atributo_a_modificar tipo_dados] [DEFAULT expr] [restricoes_atributo]

Exemplo Criação de uma tabela (restrições adicionadas no CREATE) Chave Primária CREATE TABLE sala (cod_sala NUMBER NOT NULL PRIMARY KEY, nome_sala VARCHAR2(50) NOT NULL CHECK (nome_sala=(upper(nome_sala))); Check constraint CREATE TABLE sala_disciplina (cod_sala NUMBER NOT NULL, cod_cadeira NUMBER(5) NOT NULL, cod_curso NUMBER(5) NOT NULL, dia DATE NOT NULL, hora_inicio NUMBER(2) NOT NULL CHECK (hora_inicio >=8), hora_fim NUMBER(2) NOT NULL CHECK (hora_fim <= 20), CHECK (hora_fim > hora_inicio + 1));

Exemplo Adição de Restrições a uma tabela após a sua criação Nome Restrição ALTER TABLE aluno ADD CONSTRAINT chave_aluno PRIMARY KEY(num_aluno); ALTER TABLE sala_disciplina ADD CONSTRAINT pk_sala_disciplina PRIMARY KEY (cod_sala, dia, hora_inicio); Chave primária múltipla (envolve 3 colunas da tabela) Chave Primária sobre a coluna que representa o número de aluno ALTER TABLE sala_disciplina ADD CONSTRAINT fk_cod_sala FOREIGN KEY (cod_sala) REFERENCES sala(cod_sala); ALTER TABLE sala_disciplina ADD CONSTRAINT fk_cod_disciplina FOREIGN KEY (cod_cadeira, cod_curso) REFERENCES curso_cadeira (cod_cadeira, cod_curso); Chave externa múltipla (envolve 2 colunas da tabela de origem face às duas colunas idênticas na tabela de destino) Chave Externa baseada no código da sala que referencia a tabela sala no atributo que representa o mesmo valor!

Sequências (1) Uma sequência é um objecto da base de dados sobre o qual múltiplos utilizadores podem aceder de modo a gerar números inteiros únicos. Depois de criada pode ser acedida através de CURRVAL(valor actual) e NEXTVAL(próximo valor)

Sequências (2) Criar uma sequência Incremento a sofrer cada vez que for utilizado o NEXTVAL CREATE SEQUENCE seq_sala INCREMENT BY 1 START WITH 1; Aceder a uma sequência SELECT seq_sala.nextval FROM dual; Valor inicial Tabela de sistema dummy

Remover Objectos da BD Para remover um objecto do nosso repositório (base de dados) utilizamos o comando DROP: DROP TABLE nome_objecto opcao; Opção pode tomar os seguintes valores: RESTRICT (DROP falha se, no caso de uma remoção de uma tabela, a mesma for referenciada por alguma outra tabela, VIEW ou CONSTRAINT) CASCADE (DROP será bem sucedido, removendo consigo todas as tabelas VIEW s ou CONSTRAINT s que referenciem a tabela a remover)

ROLLBACK e COMMIT Os comandos ROLLBACK e COMMIT, permitem controlar as transacções efectuadas sobre uma bas de dados. Uma transação é uma sequência de instruções SQL. ROLLBACK: repõe o estado da base de dados até ao último COMMIT; COMMIT: para acaba uma transação e tornar permanentes todas as alterações efectuadas sobre a base de dados. Note-se que o Oracle garante um COMMIT implicito antes e depois de qualquer instrução da DDL.

Referências e Links Úteis An Introduction to Database Systems C. J. Date Addison Wesley The Practical SQL Handbook Judith S. Bowman et al Addison Wesley Sintaxe de todos os comandos SQL para Oracle http://www.ss64.com/ora/ Tutorial Resumido de comandos Oracle http://www.engin.umich.edu/caen/technotes/oracletut.pdf