Bases de Dados. DML Data Manipulation Language Parte 1



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

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

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

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

Linguagem de Consulta Estruturada SQL- DML

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Introdução ao SQL Avançado

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

Definida pelo American National Standard Institute (ANSI) em 1986

Tarefa Orientada 15 Manipulação de dados

Structured Query Language (SQL)

Tarefa Orientada 10 Obter informação a partir de uma tabela

SQL DML. Frederico D. Bortoloti

Banco de Dados. Prof. Antonio

Comandos de Manipulação

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos:

Linguagem de Consulta - SQL

DML - SELECT Agrupando Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados

NOME SEXO CPF NASCIMENTO SALARIO

SQL UMA ABORDAGEM INTERESSANTE

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

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind

SQL consulta com operadores

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

António Rocha Nuno Melo e Castro

Linguagem SQL Sub-linguagem DDL

4.6. SQL - Structured Query Language

Programação SQL. INTRODUÇÃO II parte

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Linguagem SQL - Structured Query Language

Tarefa Orientada 16 Vistas

Programação SQL. Introdução

Bases de Dados. DML Data Manipulation Language Parte 3

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

Linguagem SQL - Structured Query Language

SQL (Structured Query Language)

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

Introdução ao SQL. Aécio Costa

SQL. Prof. Márcio Bueno.

Linguagem de Banco de Dados DML Exercícios

Linguagem de Consulta Estruturada (SQL)

Linguagem SQL. Comandos Básicos

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

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

Tarefa Orientada 19 Triggers

Treinamento sobre SQL

Curso PHP Aula 08. Bruno Falcão

Bases de Dados. DML Data Manipulation Language Parte 2

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

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

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

EXEMPLOS DE COMANDOS NO SQL SERVER

Bases de Dados 2005/2006. Aula 5

Prof.: Clayton Maciel Costa

SQL Structured Query Language

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

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

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

AULA 7 FUNÇÕES AGREGADAS. Funções Agregadas

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

O que são Bancos de Dados?

Linguagem de Consulta - SQL

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

SQL (Linguagem de Consulta Estruturada)

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

DML. SQL (Select) Verificando estrutura da tabela

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Tarefa Orientada 13 Agrupamento e sumário de dados

IMPLEMENTAÇÃO DE BANCO DE DADOS

SQL: Interrogações simples

SQL. Autor: Renata Viegas

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

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

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

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

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

SQL (Tópicos) Structured Query Language

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

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

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho

Principais Instruções em SQL

Linguagem SQL Parte I

Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

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

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

Query SQL (Structured Query Language)

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

Linguagem SQL (Parte I)

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

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

Transcrição:

Bases de Dados DML Data Manipulation Language Parte 1

DML Data Manipulation Language Diz respeito à manipulação dos dados. É utilizada para: Inserir dados numa tabela(tuplos) Remover dados de uma tabela(tuplos) Alterar dados numa tabela (campo a campo) Seleccionar dados de uma tabela (tuplos ou campos)

INSERT Serve para inserir registos (tuplos) numa tabela e a sua sintaxe (simplificada) é a seguinte: INSERT INTO <tabela> (<coluna1>,...,<colunan>) VALUES (<valor1>,..., <valorn>);

DELETE Serve para remover dados de uma tabela e a sua sintaxe(mais uma vez simplificada) é a seguinte: DELETE [FROM] [schema.] <tabela> WHERE (<condicao>);

UPDATE Serve para actualizar, ou seja, modificar dados de determinados campos de um registo (ou vários) de uma tabela. A sua sintaxe simplificada é a seguinte: UPDATE [schema.]<tabela > SET <expressao1> = <novo_valor1>,..., <expressaon> = <novo_valorn> [WHERE <condicao>];

Comando DESC: Sintaxe: DESC <tabela>; Exemplo do comando DESC: DESC aluno;

SELECT Para podermos ver os dados contidos nas tabelas utilizamos o comando SELECT: SELECT [DISTINCT] * <atributos [pseudonimos]> FROM <tabelas [nomes simbolicos]> [WHERE <condições>] [ORDER BY <atributos [ordem]>] [GROUP BY <atributos>] [HAVING <condições>];

SELECT Que atributos? A forma mais simples de obter todos os dados de uma tabela é: Todas as colunas SELECT * FROM <tabela>; Quando não pretendemos ver todas as colunas podemos usar o select da seguinte forma: SELECT <atributo1>,..., <atributon> FROM <tabela>;

Exercício 1 Visualizar toda a informação da tabela aluno. SELECT * FROM aluno;

Exercício 2 Quais os nomes e datas de nascimento dos alunos? SELECT nome_aluno, data_nsc_aluno FROM aluno;

SELECT Pseudónimos Ao fazermos SELECT sobre uma tabela, as colunas que obtemos como resultado têm o mesmo nome que lhes foi dado quando foram criadas; Podemos usar pseudónimos para formatar os nomes das colunas de resultado: SELECT <atributo1> [ pseudonimo1 ],..., <atributon> [ pseudonimon ] FROM <tabela>; As só são necessárias quando o pseudónimo é constituído por mais do que uma palavra e tem espaços pelo meio!

Exercício 3 Quais os nomes e datas de nascimento dos alunos? Mostre o resultado com o nome das colunas alteradas. SELECT nome_aluno Nome, data_nsc_aluno Data de Nascimento FROM aluno;

Funções de Linha I - Operações Matemáticas ABS(x) - valor absoluto de x CEIL(x) - menor inteiro superior a x EXP(x) exponencial de x FLOOR(x) - maior inteiro inferior a x LOG(x) logaritmo de x +,-,*,/... - operações aritméticas básicas SQRT(x) - raíz quadrada de x POWER(x,y) - potência de x por y ROUND(x) arredondamento de x TRUNC(x) - truncar um valor decimal de x

Funções de Linha I (Cont.) Como utilizar? Qual o desconto para o IRS de cada categoria? SELECT nome_categoria "Categoria", vencimento*0.35 IRS FROM categoria; SELECT POWER(2,3) FROM dual; Exemplo de obtenção simples de uma potência de 2 usando a tabela dummy

Exercício 4 Mostrar o vencimento anual de cada categoria (12 meses). DESC categoria; SELECT nome_categoria Categoria, vencimento*12 Vencimento Anual FROM categoria;

Valores Constantes: Literais e Concatenação Podemos adicionar ao resultado que vamos visualizar uma coluna com um valor pré definido; Este valor pertence APENAS à visualização, a tabela não sofre qualquer alteração.

Literais e Concatenação (Cont.) Valor Constante Concatenação com SELECT 'O aluno:' Aluno, num_aluno ' - ' nome_aluno "Numero - Nome", 'e do curso', cod_curso Curso FROM aluno; Pseudónimo ou alias para dar nome à coluna

Exercício 5 Mostrar as localidades onde os alunos habitam. SELECT local_aluno FROM aluno;

Eliminar linhas repetidas Numa tabela não há registos repetidos pois são tornados únicos pela sua chave; Mas alguns dos campos podem ter valores iguais em registos diferentes; Ao fazer SELECT sobre esses campos eliminamos a visualização de linhas repetidas usando a cláusula DISTINCT. SELECT DISTINCT <atributos> FROM <tabelas>; Note-se no entanto que não estamos a efectuar qualquer alteração sobre a tabela, estamos APENAS a definir como pretendemos visualizar os dados!

Exemplo Eliminar Linhas Repetidas SELECT local_aluno FROM aluno; SELECT DISTINCT local_aluno FROM aluno; <-- Versus -->

Exercício 6 Mostrar as localidades onde habitam e o sexo dos alunos, sem repetições. SELECT DISTINCT local_aluno, sexo_aluno FROM aluno;

Ordenar os resultados Podemos ainda apresentar os tuplos(registos) de uma tabela por uma ordem estipulada por nós: SELECT [DISTINCT] <atributos> FROM <tabelas> ORDER BY <atributos [ASC DESC]>; ASCendente ou DESCendente Vamos ordenar! Atributos pelos quais queremos ordenar (pela ordem que nos interessa)

Exemplos - Ordenar SELECT nome_aluno, data_nsc_aluno FROM aluno ORDER BY nome_aluno; SELECT nome_aluno, data_nsc_aluno, sexo_aluno FROM aluno ORDER BY sexo_aluno ASC, data_nsc_aluno DESC;

Exercício 7 Visualizar os nomes e datas de nascimento dos alunos ordenados por número de aluno (decrescente). SELECT nome_aluno, data_nsc_aluno FROM aluno ORDER BY num_aluno DESC;

Exercício 8 Visualizar os alunos por ordem de sexo (crescente) e nome (decrescente), mas utilizando respectivamente os pseudónimos S e Nome do Aluno. SELECT sexo_aluno S, nome_aluno Nome do Aluno FROM aluno ORDER BY S, Nome do Aluno DESC; SELECT sexo_aluno S, nome_aluno Nome do Aluno FROM aluno ORDER BY 1, 2 DESC;

Restrições na utilização de DISTINCT e ORDER BY Quando se utiliza as duas cláusulas na mesma query, os atributos referenciados pelo ORDER BY devem fazer parte da lista de selecção: SELECT DISTINCT nome_aluno FROM aluno ORDER BY num_aluno; Como seria de esperar, este exemplo dá erro!

A cláusula WHERE Esta cláusula utiliza-se quando pretendemos fazer pesquisas (SELECT s) com base em condições/restrições lógicas: SELECT [DISTINCT] <atributos> FROM <tabela> [WHERE <condições>] [ORDER BY <atributos [ASC DESC]>];

Exemplo - WHERE Mostrar apenas as alunas: SELECT * FROM aluno WHERE sexo_aluno = 'F';

Outros Operadores SQL BETWEEN... AND especificar uma gama de valores IN (lista) especificar um conjunto de valores LIKE especificar semelhança entre cadeias de caracteres. Podem ainda ser utilizados os símbolos: % qualquer cadeia de caracteres (vazia ou não) - um só caracter qualquer IS NULL AND Conjunção Lógica OR Disjunção Lógica Todos estes operadores podem ser precedidos pelo operador NOT (ex: NOT IN, NOT LIKE, etc)

Exemplos: Usar antes TO_DATE( 01-Jan-1976, dd-mm-yyyy ) e TO_DATE( 01-Jan-1977, dd-mm-yyyy ) SELECT... FROM...

Funções de linha II - Formatação de Dados UPPER(c) - converter para maiúsculas LOWER(c) - converter para minúsculas LENGTH(c) - comprimento da cadeia de caracteres RTRIM - eliminar espaços SUBSTR(str,p0,p1) - obter substring... Entre outras!

Exemplo Formatação Dados SELECT UPPER(local_aluno) FROM aluno;

Exercício 9 Visualizar apenas os alunos que nasceram entre 1978 e 1981. SELECT * FROM aluno WHERE data_nsc_aluno >= 78.01.01 AND data_nsc_aluno <= 81.12.31 ;

Exercício 10 Qual o resultado da expressão: SELECT * FROM aluno WHERE 3=3; O mesmo que a expressão SELECT * FROM aluno; pois a condição 3=3 é sempre verdade.

Exercício 11 Mostrar os alunos que nasceram entre 1975 e 1979 e sejam dos cursos 1, 2 ou 4. SELECT * FROM aluno WHERE data_nsc_aluno BETWEEN 75.01.01 AND 79.12.31 AND curso_aluno in (1, 2, 4);

Exercício 12 Visualizar todos os alunos cujo o nome começa por J. SELECT * FROM aluno WHERE UPPER(nome_aluno) LIKE J% ;

Exercício 13 Visualizar os alunos cujo o último nome tenha apenas 5 letras. SELECT * FROM aluno WHERE nome_aluno LIKE % ;

Exercício 14 Visualizar todos os alunos que não têm a morada preenchida. SELECT * FROM aluno WHERE local_aluno IS NULL;

Exercício 15 Mostrar o vencimento mensal dos professores adjuntos (ou equiparados). Nota: não se sabe como foram introduzidos os nomes das categorias, i.e., em maiúsculas ou minúsculas SELECT nome_categoria, vencimento FROM categoria WHERE LOWER(nome_categoria) like %adjunto% ;

Exercício 16 Seleccionar os alunos que nasceram em Janeiro. SELECT * FROM aluno WHERE data_nsc_aluno like %.01.% ;

Conversões entre tipos de dados TO_CHAR(d, [, fmt [, NLSPARAMS ]]) SELECT TO_CHAR(sysdate, Month DD, YYYY ) Hoje FROM dual; TO_DATE(c, [, fmt [, NLSPARAMS ]]) SELECT TO_DATE( 9/1/2004, MM/DD/YYYY ) Hoje FROM dual; Entre outras!

Operações Sobre Datas Add_months(d,n) Months_between(d,d) SELECT add_months(sysdate,6) FROM dual; Quantos meses se passaram entre 12 de Dezembro de 1982 e 3 de Julho de 1999? Sysdate é uma pseudo-coluna que produz a data e hora actuais. Pode ser usada como qualquer outra coluna. É habitual seleccionar sysdate sobre a tabela dual do utilizador sys: Select sysdate from sys.dual; SELECT months_between(to_date( 12-Dec-1982, dd-mm-yyyy ), TO_DATE( 03-Jul-1983, dd-mm-yyyy )) FROM dual;

Exercício 17 Usar o comando de SELECT para visualizar a data actual SELECT sysdate FROM sys.dual; SELECT DISTINCT sysdate FROM aluno; SELECT sysdate FROM aluno;

Exercício 18 Seleccionar os alunos que nasceram em 1 de Janeiro de 1965. SELECT * FROM aluno WHERE data_nsc_aluno = to_date('1 Janeiro 1965', 'dd month yyyy', 'NLS_DATE_LANGUAGE = Portuguese');

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