Comandos DDL. id_modulo = id_m odulo



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

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

Linguagem SQL Sub-linguagem DDL

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

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

Programação SQL. Introdução

Linguagem SQL (Parte II)

SQL DDL. Frederico D. Bortoloti

A linguagem SQL

SQL. Autor: Renata Viegas

1. Domínio dos Atributos

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

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

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

SQL - Criação de Tabelas

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

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

Linguagem de Consulta Estruturada (SQL)

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

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

EXERCÍCIOS PRÁTICOS. Banco de Dados

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

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

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

Structured Query Language (SQL) Aula Prática

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

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


Structured Query Language (SQL)

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

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

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

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Linguagem de Consulta - SQL

Linguagem SQL. Comandos Básicos

Introdução ao SQL. Aécio Costa

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Comandos de Manipulação

SQL (Structured Query Language)

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

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

SQL (Structured Query Language)

SQL (Structured Query Language)

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

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

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

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

Regras de Integridade. Profa. Késsia Marchi

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

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

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

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

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 (Linguagem de Consulta Estruturada)

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

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

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

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

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

Structured Query Language (SQL)

Banco de Dados I Introdução SQL

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

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

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

SQL (STRUCTUREDQUERY LANGUAGE)

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

Junções e Índices em Tabelas

SQL (Structured Query Language)

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

SQL Structured Query Language

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

18/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Profº Aldo Rocha. Banco de Dados

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

Linguagem de Consulta Estruturada SQL- DML

Linguagem SQL (Parte I)

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico

O que são Bancos de Dados?

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

A linguagem SQL

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Projeto de Banco de Dados: Empresa X

Banco de Dados. DIEGO BARCELOS RODRIGUES 2015 (2015/1) 1. Ifes - Campus Cachoeiro de Itapemirim

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

Linguagem SQL Parte I

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

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

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

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

Transcrição:

Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos quais serão atribuídos resultados finais a cada aluno. O DER da figura abaixo representa uma modelagem física, de acordo com o padrão ANSI da linguagem SQL. id_curso = id_curso id_curso = id_curso curso id_curso <pk> INTEGER VARCHAR40) aluno matricula <pk> INTEGER VARCHAR40) id_curso <fk> INTEGER matricul a = matri cul a modulo id_modulo <pk> INTEGER VARCHAR40) id_curso <fk> INTEGER id_modulo = id_m odulo conceito id_conceito <pk> INTEGER matricula <fk> INTEGER id_modulo <fk> INTEGER ano INTEGER semestre INTEGER resultado VARCHAR15) MODELAGEM FÍSICA DE EXEMPLO. Simbologia Os comandos SQL serão apresentados a seguir segundo uma simbologia padrão: As palavras em negrito são obrigatórias. Na redação do comando SQL devem aparecer, sempre. Os termos entre < e > devem ser substituídos pela expressão indicada. Por exemplo: O termo <tabela>, num comando SQL, deve ser substituído por uma tabela do BD. Os termos entre [ e ] indicam opcionalidade. Os termos entre { e } indicam uma escolha obrigatória dentre as opções. Importante salientar que podem existir variações nos comandos em relação ao SGBD escolhido na modelagem física dos dados. Comandos DDL CRIAR TABELA Sintaxe: create table <tabela> <coluna> <tipo-do-dado> [not null] [not null with default] [, <coluna> <tipo-do-dado> [not null] [not null with default]...] primary key <coluna-pk>) foreign key <coluna-fk>) references <tabela-pai> <coluna-pk-pai>) ) Semântica: cria uma nova tabela no banco de dados em uso. <tabela> : define o da tabela <coluna>: define o da coluna. A definição das colunas de uma tabela é feita relacionando-as uma após a outra, separadas por vírgula. <tipo-do-dado> : define o tipo e o tamanho da coluna definida. Os tipos de dados mais comuns são: SmallInt: número de 2 bytes, entre 32768 e +32767 Integer: número de 4 bytes, entre -2147483648 e +2147483647

Decimaln,m): número com no máximo 15 dígitos, onde n são dígitos inteiros e m as casas decimais. Varcharn): string de até n caracteres n, no máximo, igual 254) Charn): string de exatos n caracteres n, no máximo, igual 254) Long Varchar: string de comprimento maior que 254 caracteres. Date: campo no formato de uma data Time: campo no formato de um horário <not null> : define uma coluna de preenchimento obrigatório <not null with default> : define uma coluna de preenchimento obrigatório e que, no momento da inclusão de uma linha na tabela, tenha um valor pré-definido, tais como: número zero, para o tipo de dado numérico caracter vazio, para o tipo de dado string data corrente, para o tipo de dado date horário corrente, para o tipo de dado time primary key <coluna-pk>) : define a coluna que será a chave primária da tabela. No caso de mais de uma coluna ser chave primária, separá-las por vírgula. foreign key <coluna-fk>) references <tabela-pai> <coluna-pk-pai>): define a <coluna-fk>, de <tabela>, como chave estrangeira. A <tabela-pai> define a tabela-pai relacionada a fk e <colunapk-pai> define a coluna pk, de <tabela-pai> create table curso VARCHAR40) not null, primary key id_curso) create table modulo VARCHAR40) not null, primary key id_modulo), foreign key id_curso) references curso id_curso) CONSTRAINTS: constraints são regras agregadas a colunas ou tabelas. Assim, pode-se definir como obrigatório o preenchimento de uma coluna que tenha um valor-padrão quando uma linha for incluída na tabela ou quando aceitar apenas alguns valores predefinidos. No caso de regras aplicadas a tabelas, tem-se a definição de chaves primárias e estrangeiras. create table aluno VARCHAR40) not null, sexo CHAR1) check uppersexo) = M or uppersexo) = F ), cpf NUMERIC11) unique, primary key matricula), foreign key id_curso) references curso id_curso) Constraint de chave primária: pode ser escrita de duas formas: primary key matricula) ou então constraint aluno_pk primary key matricula) Constraint de chave estrangeira: pode ser escrita de duas formas: foreign key id_curso) references curso id_curso) ou então constraint aluno_curso_fk foreign key id_curso) references curso id_curso) Opcionalmente, pode-se acrescentar definições das ações que deverão ser executadas em caso de atualização ou remoção de linhas da tabela. Sintaxe: constraint <_da_constraint> foreign key <coluna-fk>) references <tabela-pai> <coluna-pk-pai) [ on update { set null set default cascade no action restrict } ] [ on delete { set null set default cascade no action restrict } ]

Onde: update: é a operação de atualizar alterar) alguma informação de uma linha da tabela que contém a referência a <tabela-pai>) delete: é a operação de remoção de uma linha da tabela set null: altera o conteúdo da coluna para nulo, sem deixar valores inconsistentes set default: altera o conteúdo da coluna para o valor especificado na cláusula default, caso houver cascade: atualiza ou remove todos os registros que se relacionam a eles no action: em caso de atualização, não modifica os valores que se relacionam a eles restrict: não permite a exclusão da chave primária Exemplo: constraint aluno_curso_fk foreign key id_curso) references curso id_curso) on update cascade on delete restrict Constraint de valor padrão: condicao VARCHAR11) default MATRICULADO Constraint de valor não nulo: VARCHAR40) not null Constraint de valor único: cpf NUMERIC11) unique Constraint de definição de domínio: sexo CHAR1) check uppersexo) = M or uppersexo) = F ), ALTERAR TABELA Sintaxe: alter table <tabela> { [ drop <coluna> ] [ add <coluna> <tipo-do-dado> [not null] [not null with default]] [ rename <coluna> <novo--coluna>] [ rename table <novo--tabela>] [ add primary key <coluna-pk> ) ] [ drop primary key <coluna-pk> ) ] [ add foreign key <coluna-fk>) references <tabela-pai> <coluna-pk-pai>) [ drop foreign key <coluna-fk>) references <tabela-pai> ] } Semântica: altera definições na estrutura de uma tabela do BD, acrescentando, alterando e removendo s, formatos das colunas e regras de integridade referencial. <tabela> : define o da tabela drop <coluna> : remove a coluna da estrutura da tabela add <coluna> <tipo-do-dado> [not null] [not null with default] : acrescenta uma nova coluna. No caso da existência de linhas nesta tabela, o valor da nova coluna será de acordo com as definições das cláusulas not null e not null with default. rename <coluna> <novo--coluna>: troca o da coluna rename table <tabela>: troca o da tabela add primary key <coluna-pk>): define uma chave primária à uma nova coluna acrescentada na tabela. drop primary key <coluna-pk>): remove a definição de chave primária da coluna add foreign key <coluna-fk>) references <tabela-pai> <coluna-pk-pai>) acrescenta uma nova chave estrangeira. drop foreign key <coluna-fk>) references <tabela-pai> : remove a definição de chave estrangeira. create table aluno VARCHAR40) not null, primary key matricula) alter table aluno add foreign key id_curso) references curso id_curso OBS: Estas duas definições acima são equivalentes a:

create table aluno VARCHAR40) not null, primary key matricula), foreign key id_curso) references curso id_curso) REMOVER TABELA Sintaxe: drop table <tabela> Semântica: remove uma tabela do banco de dados. Esta operação remove linhas, estrutura e índices de acesso associados à tabela. <tabela>: define o da tabela Exemplo: drop table curso; CRIAR ÍNDICE Sintaxe: create [unique] index <índice> on <tabela> <coluna> [ASC] [DESC] [, <coluna> [ASC] [DESC] ] ) Semântica: cria uma estrutura de índice de acesso para uma determinada coluna de uma tabela. Um índice permite um acesso mais rápido aos dados e pode ser criado a partir de uma ou mais colunas da tabela. Toda chave primária possui um índice definido. <índice>: define o do índice. A cláusula unique define que não existirão duas linhas com o mesmo conteúdo de <coluna>. A definição do índice de uma chave primária contém unique. <tabela>: define o da tabela que contém a coluna que terá o índice <coluna>: define a coluna da tabela. As opções ASC/DESC representam, respectivamente, uma ordenação ascendente e descendente. create unique index curso_pk on curso id_curso asc create unique index modulo_pk on modulo id_modulo asc create unique index aluno_pk on aluno matricula asc create index aluno_ on aluno asc REMOVER ÍNDICE Sintaxe: drop index <índice> Semântica: remove uma estrutura de índice definida numa tabela do BD. <índice>: define o do índice Exemplo: drop index curso_pk; drop index aluno_

A figura abaixo mostra um arquivo de script gerado por um software de modelagem de DER utilizando um SGBD com as instruções SQL padrão ANSI. Este arquivo contém os comandos DDL do SQL que, quando executados, deverão criar as tabelas do banco de dados. create table curso VARCHAR40) not null, primary key id_curso) create unique index curso_pk on curso id_curso asc create table modulo VARCHAR40) not null, primary key id_modulo) create unique index modulo_pk on modulo id_modulo asc create table aluno VARCHAR40) not null, primary key matricula) create unique index aluno_pk on aluno matricula asc create table conceito id_conceito INTEGER not null, ano INTEGER not null, semestre INTEGER not null, resultado VARCHAR15), primary key id_conceito) create unique index conceito_pk on conceito id_conceito asc alter table modulo add foreign key id_curso) references curso id_curso alter table aluno add foreign key id_curso) references curso id_curso alter table conceito add foreign key matricula) references aluno matricula alter table conceito add foreign key id_modulo) references modulo id_modulo ARQUIVO DE SCRIPT PARA A CRIAÇÃO DAS TABELAS DO SGBD