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



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

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

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

Comandos DDL. id_modulo = id_m odulo

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

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

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

Linguagem SQL (Parte II)

Introdução ao SQL. Aécio Costa

Programação SQL. Introdução

SQL. Autor: Renata Viegas

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

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

4.6. 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

Regras de Integridade. Profa. Késsia Marchi

Comandos de Manipulação

A linguagem SQL

SQL Structured Query Language

1. Domínio dos Atributos

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

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

SQL - Criação de Tabelas

Linguagem SQL. Comandos Básicos

Linguagem SQL Sub-linguagem DDL

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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Junções e Índices em Tabelas

SQL DDL. Frederico D. Bortoloti

Roteiro 7 Comandos SQL Parte 1: Criação e manutenção de tabelas

SQL (Structured Query Language)

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

NOME SEXO CPF NASCIMENTO SALARIO

SQL (Structured Query Language)

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

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

SQL (Structured Query Language)

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Introdução em Banco de Dados

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

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

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

Tarefa Orientada 19 Triggers

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

CICLO DE VIDA DE UM BD

SQL consulta com operadores

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

Linguagem de Consulta - SQL

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

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

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

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

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

MODELO RELACIONAL - UFMA

MYSQL BÁSICO. 12 Horas Instrutor: Antonio Itamar Júnior

Structured Query Language (SQL) Aula Prática

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

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

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

Disciplina de Banco de Dados Parte V

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

Tarefa Orientada 15 Manipulação de dados

Integridade dos Dados

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

EXERCÍCIOS PRÁTICOS. Banco de Dados

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

Á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:


APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

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

SQL (Structured Query Language)

SQL Básica. Andre Noel

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

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

O que são Bancos de Dados?

Projeto de Banco de Dados: Empresa X

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

BDII SQL Junção Revisão 8

Banco de Dados. Prof. Antonio

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)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Curso PHP Aula 08. Bruno Falcão

Operação de União JOIN

Memória de aula Semanas 15 e 16

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Prof.: Clayton Maciel Costa

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

Principais Instruções em SQL

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

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

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Principais Comandos SQL Usados no MySql

Tarefa Orientada 16 Vistas

Transcrição:

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de operadores de comparação; Explorar consultas SQL com uso de operadores booleanos; Neste roteiro são explorados comandos para a realização de consultas com uso de operadores de comparação e operadores booleanos importantes para a realização de consultas mais complexas onde os dados devem ser filtrados de acordo com critérios específicos do programador. Ferramentas necessárias Navegador, Xampp,Notepad++, console Mysql, Bibliografias de livros da faculdade. Criando Restrições Em SQL, restrições podem ser definidas para as tabelas que forem criadas. Existem restrições de chave e integridade referencial, restrições sobre domínios de atributo e NULLs e restrições sobre tuplas individuais (registros) dentro de uma relação. Restrições de atributo: Como o nome indica, são restrições que podem ser aplicadas aos atributos de uma tabela. Existem algumas restrições que podem ser aplicadas como valores null (NULL), valores padrão e valores (DEFAULT) de checagem (CHECK), que são detalhados a seguir na tabela abaixo: NOT NULL DEFAULT CHECK Se um valor NULL não for permitido isto pode ser especificado através do parâmetro NOT NULL na definição de um campo. Geralmente esta propriedade é definida para campos de chave primária, mas pode ser especificado para quaisquer outros atributos cujos valores não podem ser NULL. Determina um valor padrão para um atributo. O valor padrão será incluído em qualquer registro se um valor explícito não for declarado. Utilizado para limitar valores de atributo ou domínio. Pode ser utilizado para expressar que apenas valores dentro de uma faixa x podem ser utilizados em um campo. NOME VARCHAR(30) NOT NULL CREATE TABLE Y( TPAGTO INT DEFAULT 100 CREATE TABLE Z( TPAGTO INT CHECK(TPAGTO > 0 AND TPAGTO <3) Pág 48

Restrições de chave e integridade referencial: são restrições que podem ser impostas para os atributos para garantir a integridade da informação que será armazenada. Existem as restrições de chave primária (primary key) e de chave segundária (foreign key), as duas propriedades são detalhadas na tabela a seguir: PRIMARY KEY FOREIGN KEY Permite especificar atributos de chave primária em uma tabela. Se o atributo chave for único a restrição pode ser incluída diretamente no atributo, caso contrário deve ser incluído ao final da declaração dos campos ou após através da alteração da tabela. Especifica a criação de uma chave estrangeira. Da mesma forma que a chave primária, esta propriedade pode ser inserida na definição da tabela ou posteriormente através do comando ALTER TABLE. ID_FUNC INT PRIMARY KEY ID_FUNC INT, PRIMARY KEY(ID_FUNC PRIMARY KEY(CAMPO1,CAMPO2,CAMPO3 CREATE TABLE Y( IDCIDADE INT NOT NULL, FOREIGN KEY(IDCIDADE) REFERENCES CIDADE(IDCIDADE) Ações de violação de integridade: uma violação ocorre quando alguma informação inserida ou atualizada em um atributo viola as regras de chave. Quando acontece uma violação de integridade, a ação padrão (default) do SGBD é a de recusar a operação. Porém é possível adicionar ações de comportamento para que sejam executadas, descritas na tabela a seguir: ON DELETE ON UPDATE SET NULL CASCADE Define opções para quando são deletados registros envolvendo chaves estrangeiras. Define opções para quando são atualizados registros envolvendo chaves estrangeiras. Opção para ON DELETE OU ON UPDATE que define que ao ser excluído ou alterado um registro que é referenciado por outras tabelas como chave estrangeira, estas são definidas como NULL. Opção para ON DELETE OU ON UPDATE que define que ao ser alterado um registro que é referenciado por outras tabelas como chave estrangeira, estas são atualizadas juntamente com o novo valor definido. ON DELETE [AÇÃO] ON UPDATE [AÇÃO] ON DELETE SET NULL ON UPDATE CASCADE Pág 49

Nomeando Restrições Uma restrição pode ser nomeada em sua definição com uso da palavra-chave CONSTRAINT. Nomes de restrição precisam ser exclusivos e são importantes por identificarem diferentes restrições no caso de precisarem ser excluídas ou trocadas por outras ao longo da definição do banco de dados. Nomear restrições em bancos de dados é uma tarefa opcional, porém as principais ferramentas CASE de implementação normalmente utilizam nomes em restrições. Exemplo de criação de restrição com uso de CONSTRAINT CONSTRAINT PK_FUNCIONARIO PRIMARY KEY(IDFUNCIONARIO), CONSTRAINT FK_CIDADE_FUNCIONARIO FOREIGN KEY(IDCIDADE) REFERENCES CIDADE(IDCIDADE) ON DELETE SET NULL ON UPDADTE CASCADE; Operadores de comparação A cláusula WHERE introduz um potencial maior para as buscas de informações. Permite que seja possível escolher quais linhas são restauradas de uma declaração SELECT. É utilizado para restaurar linhas que combinem uma condição, como ter um valor de coluna que combine exatamente com uma string, um número maior ou menor que um valor, ou uma string que é o prefixo de outra. A seguir são demonstrados os operadores de comparação sendo utilizados em conjunto com a cláusula WHERE. Operadores de Comparação Os operadores de comparação a serem utilizados em uma consulta SQL são os mesmos utilizados na maioria das linguagens de programação, e permitem que uma consulta possa ser executada de forma muito mais poderosa para a seleção de informações em tabelas. Os operadores de comparação são descritos a seguir: SELECT campos FROM tabela WHERE argumentos Comando Função Exemplo = < > <= >= <> igual a entre dois campos. menor que entre dois campos ou maior que entre dois campos ou maior que entre dois campos ou menor que entre dois campos ou diferente de SELECT * FROM dados WHERE nome = joão SELECT * FROM funcionario WHERE salario < 1000 SELECT * FROM cidade WHERE populacao > 20000 SELECT * FROM cidade WHERE populacao >= 20000 SELECT * FROM aluno WHERE nota >= 7 SELECT * FROM pessoa WHERE sexo <> masculino Pág 50

Operadores Booleanos Os operadores de condição são úteis para combinar duas ou mais condições utilizando os operadores booleanos AND, OR e NOT. Permite unir critérios de pesquisa diferentes na mesma consulta, podemos utilizar a conjunção AND e separar critérios diferentes, por exemplo. Operadores AND, OR e NOT A seguir são detalhados os operadores de combinação que podem ser utilizados em conjunto nas consultas com uso do SELECT em conjunto com a cláusula WHERE. Comando Função Exemplo AND Restringe os resultados para as linhas que possuem ambas as condições. SELECT * FROM dados WHERE nome = joão and salario > 3000 SELECT campos FROM tabela WHERE argumentos OR Restringe os resultados para as linha que atendam pelo menos uma das condições. SELECT * FROM funcionario WHERE salario < 1000 or nome >= G NOT Nega uma declaração Booleana. SELECT * FROM funcionario WHERE NOT (salario >1000 and salario < 5000) Tarefas Utilizando o script de criação disponível em http://187.7.106.14/andre/ads/proj_bd/2012-2/roteiros/roteiro9-chavesrestricoes/roteiro9-definicao-dados.sql, crie o banco de dados em seu servidor Mysql para uso nas tarefas do roteiro. 1) Crie as chaves estrangeiras utilizando uma CONSTRAINT nomeada com o prefixo FK_TABELAORIGEM_TABELADESTINO para as seguintes tabelas a. Movimento navio; b. Navio; c. Porto; d. Porto_visitado; 2) Altere o script de criação e Insira uma restrição de atributo para o campo TIPO_NAVIO.CAPACIDADE_PESO para que não aceite valores inferiores a 20000. Insira um novo registro de tipo de navio e teste o resultado da restrição feita. 3) Insira no script de todas as tabelas criadas para a chave primária a ação de violação de integridade ON UPDATE com CASCADE e ON DELETE para SET NULL; 4) Crie uma consulta para selecionar todos os portos Localizados em Salvador; 5) Crie uma consulta para selecionar todos os tipos de navios com capacidade maior do que 30000 e casco unico; 6) Crie uma consulta para selecionar todos os navios onde o proprietário seja Sergen & Terres OU o tipo seja Graneleiro; 7) Crie uma consulta para selecionar todos os navios onde o proprietário seja Sergen & Terres E o tipo seja Graneleiro; 8) Crie uma consulta para selecionar os navios onde o proprietário seja Maritimus E o tipo seja Graneleiro OU o tipo seja Quimico. 9) Crie uma consulta que liste todos os nomes dos navios que visitaram o porto com o nome de Porto de Santos; Pág 51

10) Crie uma consulta que liste todos os nomes dos navios e a data de inicio onde a data de inicio seja superior a 13 de setembro de 2011; Referências Elmasri, Navathe Sistemas de banco de dados 6ª Edição; Introdução a Banco de dados, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/bd; Apache Friends Home page - http://www.apachefriends.org/pt_br/xampp-windows.html#2287 Notepad++ Home page - http://notepad-plus-plus.org/ Pág 52