Linguagem SQL Sub-linguagem DDL



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

Linguagem de Consulta Estruturada SQL- DML

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

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

SQL DDL. Frederico D. Bortoloti

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

Comandos DDL. id_modulo = id_m odulo

SQL - Criação de Tabelas

Programação SQL. Introdução

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

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Aula Prática

Linguagem de Consulta - SQL

Structured Query Language (SQL)

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

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

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

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

1. Domínio dos Atributos

SQL (Structured Query Language)

SQL (Structured Query Language)

SQL (Structured Query Language)

Linguagem SQL (Parte II)

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

A linguagem SQL

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

SQL. Autor: Renata Viegas

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

Comandos de Manipulação

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

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

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

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

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Introdução à linguagem SQL

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

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

SQL Structured Query Language

Linguagem SQL. Comandos Básicos

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

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

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

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

Structured Query Language (SQL)

SQL (STRUCTUREDQUERY LANGUAGE)

Banco de Dados. Prof. Antonio

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

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

Introdução ao SQL. Aécio Costa

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

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

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

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

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

EXERCÍCIOS PRÁTICOS. Banco de Dados

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

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

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

4.6. SQL - Structured Query Language

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

SQL (STRUCTUREDQUERY LANGUAGE)

SQL Linguagem de Definição de Dados

EXEMPLOS DE COMANDOS NO SQL SERVER

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

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

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados


Regras de Integridade. Profa. Késsia Marchi

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

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

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

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

Fundamentos do Sistema Gerenciador de Banco de Dados

Bancos (Bases) de Dados

Operação de União JOIN

SQL (Structured Query Language)

SQL: Definição de tabelas, Modificações à Base 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)

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

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

O que são Bancos de Dados?

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

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

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

Curso PHP Aula 08. Bruno Falcão

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

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

ADMINISTRAÇÃO DE BANCO DE DADOS

Transcrição:

Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas primeiras tentativas de desenvolvimento de bancos de dados relacionais. Sua vantagem sobre modelos de dados anteriores é que as operações realizadas sobre os dados são especificadas numa linguagem não procedural e conjuntos de dados são manipulados com um único comando. Isto faz com que os programadores não tenham de navegar por uma estrutura complexa de banco de dados, reduzindo a quantidade de código necessário para acessar os dados. SQL tornou-se padrão depois de 1986, quando o American National Standards Institute (ANSI, definiu a SQL como linguagem padrão para os bancos de dados relacionais. Desde então, o SQL já sofreu diversas atualizações oficiais. O novo padrão SQL chama-se SQL3, nesta versão a mais importante é a adição de características de orientação a objetos na linguagem.. Atualmente este padrão é utilizado para o acesso a diversos bancos de dados relacionais, tais como Oracle, DB2, SQL Server, Sybase, Mysql, Postgresql, Interbase, Firebird etc. Os comandos da SQL podem ser agrupados em três categorias: DML Data Manipulation Language DDL Data Definition Language DCL Data Control Language A DDL da SQL é composta de um conjunto de comandos que permite definir, alterar e excluir a estrutura de uma base de dados, para ser manipulada por meio de comandos da sublinguagem DML da SQL. 1 - CREATE DATABASE Sintaxe básica: Exemplos: CREATE DATABASE nome_da_base_dados CREATE DATABASE DeptoPessoal Para alguns SGBD é necessário informar, no momento da criação, o usuário e a sua respectiva senha CREATE DATABASE DeptoPessoal user sidney password xxxx 2 - CREATE TABLE Este comando cria uma nova tabela em um banco de dados.

CREATE TABLE nome_da_tabela ( Coluna 1 <tipo_dado>, Coluna 2 <tipo_dado>,... coluna n <tipo_dado> Restrição 1 Restrição 2... Restrição n Cada coluna n é a definição de um campo da tabela associado a um tipo de dado Nome varchar(50 Idade int ou idade integer (depende do SGBD Os tipos de dados dependem o SGBD em questão, todos empregam o padrão SQL-ANSI, entretanto cada qual possui sua particularidade. Cada Restrição n é uma restrição para um campo definido anteriormente. Qualquer campo pode ser declarado como NOT NULL. A chave primaria deve ser declarada como NOT NULL. Pode-se empregar o termo UNIQUE para identificar que o valor do campo é único. Uma tabela que faz referência a outra, por meio de uma chave estrangeira, deve ser criada antes de fazer a referência Notação para restrição o Caso 1: Descrição informal da restrição: Exemplo genericos: Primary Key (coluna, coluna,..., coluna, i j k Foreign key (coluna n References nome_tabela1(coluna t on delete [set null cascade no action] Unique(campo n o Caso 2: Descrição formal da restrição: Exemplo genéricos: Constraint Pk_nome Primary Key (coluna, coluna,..., coluna, i j k REFERÊNCIA DE TABELAS Constraint Fk_nome Foreign key (coluna n References nome_tabela1(coluna t on delete [set null cascade no action] Constraint UQ_campo Unique(campo n A Referência da chave estrangeira a referência na definição da chave estrangeira determina o que fazer com quando um elemento da outra tabela for deletado. Isto é feito por meio

da palavra chave ON DELETE que determina o que deve ser feito com a tupla (linha desta tabela, quando o elemento refenciado por foreign key for deletado. Casos possíveis: NO ACTION não permite a exclusão da linha CASCADE apaga a todas as linhas que possuírem o campo referenciado SET NULL aponta para nulo os campos que possuem a referencia Exemplos: Cod_fun integer not null PRIMARY KEY, Nome_fun char(30, Sexo_fun varchar(1, Cod_dep varchar(2, Cpf decimal(13,0 not null UNIQUE, FOREIGN KEY (cod_dep References departamento(cod_dep on delete SET NULL, Nome_fun char(30, Sexo_fun varchar(1, Cod_dep varchar(2, Cpf decimal(13,0 not null, PRIMARY KEY (cod_fun, FOREIGN KEY (cod_dep References departamento(cod_dep on delete CASCADE, UNIQUE (cpf Nome_fun char(30, Sexo_fun varchar(1, Cod_dep varchar(2, Cpf decimal(13,0 not null, CONSTRAINT PK_fun PRIMARY KEY (cod_fun, CONSTRAINT FK_depto FOREIGN KEY (cod_dep References departamento(cod_dep on delete NO ACTION, CONSTRAINT UQ_CPF UNIQUE(cpf É possível determinar valores por omissão, default, na criação de uma tabela. Nome_fun char(30, Sexo_fun varchar(1 default M, cod_dep varchar(2, admissao date default today, PRIMARY KEY (cod_fun,

FOREIGN KEY (cod_dep References departamento(cod_dep on delete no action Obs: A data atual, obtida do S.O., para o valor de um campo do tipo date depende do SGBD podendo ser now, today, sysdate etc RESTRIÇÕES PARA ATRIBUTOS Por meio do comando check é possível criar uma restrição para uma linha da tabela, nem todo SGBD aceita efetuar uma restrição logo após a definição do campo, neste caso é necessário se criar uma restrição ao final da definição da tabela. Exemplos: Não funciona no postgres Nome_fun char(30, Salario decimal(10,2 check salario > 0, Estado_civil char(10 check value in ( casado, solteiro, divorciado PRIMARY KEY (cod_fun Nome_fun char(30, Salario decimal(10,2, Estado_civil char(10, CONSTRAINT Tipo_estado_civil check Estado_civil ( value in ( casado, solteiro, divorciado, CONSTRAINT Tipo_salario check salario > 0, CONSTRAINT PK_func PRIMARY KEY (cod_fun 3 - CREATE DOMAIN tabela Permite a criação de domínios específicos a serem usados na definição de colunas da CREATE DOMAIN nome_dominio AS Tipo_de_dado [Default valor] [NOT NULL] [CHECK (CONDIÇÃO] Algumas situações de uso da cláusula condição:

Value [not] between valor1 and valor2 Value [not] IN (valor 1, valor 2, valor 3, valor n CREATE DOMAIN tipo_sexo AS varchar(1 CHECK (VALUE IN ('M','F' 4 - CREATE INDEX Permite criar índices par acesso a informações. O interbase já cria automaticamente índices para manter as restrições das chaves primarias e estrangeiras. Porém, quando necessitamos fazer consultas a dados por outros campos por intermédio de Group By e Order by com uma certa freqüência devemos criar índices para obtermos um acesso mais rápido. ] CREATE [unique] [asc desc] index nome_indice on nome_tabela[coluna i, coluna k, O índice pode ser único ou ou não assim como pode ser ascendente ou descendente CREATE desc index nome_fun_idx on funcionario[nome_fun i, salario] 5 - ALTER TABLE Este comando permite alterar a estrutura de uma tabela. 5.1 Para adicionar e excluir um campo da tabela. Inclusão Exclusão ALTER TABLE nome_tabela ADD ALTER TABLE nome_tabela DROP nome_coluna tipo_dado nome_coluna OBS: É possível adicionar e remover mais de uma coluna em um único comando Ex: ALTER TABLE funcionario DROP comissao ALTER TABLE funcionario ADD nascimento date, comissão decimal(10,2 5.2 Para modificar o tipo de dado de um determinado campo. ALTER TABLE nome_tabela ALTER COLUMN nome_coluna TYPE tipo_dado

Ex: ALTER TABLE funcionario ALTER COLUMN comissao TYPE varchar(50 5.3 Para renomear o nome de um campo. ALTER TABLE nome_tabela RENAME nome_coluna TO novo_nome_coluna Ex: ALTER TABLE funcionario RENAME nome_func TO nome_funcionario CREATE DATABASE XPTO CREATE TABLE engenheiro( matr INTEGER NOT NULL PRIMARY KEY, crea INTEGER NOT NULL UNIQUE, nome VARCHAR(50; CREATE TABLE gerente( mat INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(50 comissao DECIMAL(10,2; CREATE TABLE cliente( codigo INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(50 not null, endereco VARCHAR(40; CREATE TABLE projeto( codigo INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(50, valor DECIMAL(15,2, matr INTEGER NOT NULL, mat INTEGER NOT NULL, codigo_cli INTEGER NOT NULL, FOREIGN KEY (matr REFERENCES engenheiro (matr, FOREIGN KEY (mat REFERENCES gerente (mat, FOREIGN KEY (codigo_cli REFERENCES cliente (codigo; CREATE TABLE realiza( matr INTEGER, codigo INTEGER, FOREIGN KEY (matr REFERENCES engenheiro (matr, FOREIGN KEY (codigo REFERENCES projeto (codigo, PRIMARY KEY (matr,codigo;

ALTER TABLE cliente ADD telefone char(10; ALTER TABLE funcionario DROP comissao 6 - DROP DATABASE DROP DATABASE nome_da_base_dados DROP DATABASE DeptoPessoal 7 - DROP TABLE DROP TABLE nome_tabela DROP TABLE funcionario 8 - DROP INDEX DROP INDEX nome_do_index DROP INDEX nome_fun_idx