Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Documentos relacionados
IMPLEMENTAÇÃO DE BANCO DE DADOS

Comandos de Manipulação

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

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

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

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

ANÁLISE E PROJETO DE BANCO DE DADOS

Banco de Dados I Introdução SQL

BCD29008 Banco de dados

Banco de Dados. Prof. Antonio

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

Linguagem de Consulta Estruturada SQL- DML

Banco de Dados. Professora: Luciana Faria

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

SQL (Tópicos) Structured Query Language

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Manipulação de Dados com SQL

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

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

SQL. Prof. Roger Cristhian Gomes

Aula 06 Sistemas Embarcados LT38C

Oracle Database: Fundamentos de SQL e PL/SQL

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

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Page 1. Prof. Constantino Jacob

Rápida revisão do Modelo Relacional

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

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

A linguagem SQL

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

TLBD II Instruções SQL

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

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

Oracle Database 11g: Introdução à Linguagem SQL Novo

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

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Introdução à linguagem SQL

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

Fundamentos de Banco de Dados Postgre com Sql

Revisão de Bancos de Dados

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

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

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Linguagem de Consulta Estruturada SQL- DML

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

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Oracle Database 10g: Fundamentos de SQL e PL/SQL

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

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

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Arquivo. Banco de Dados. Organização dos Arquivos. Banco de Dados. Banco de Dados. Introdução a Computação

Utilizando o Postgres - comandos SQL para a manipulação de dados

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Linguagem de Consulta Estruturada (SQL)

Apresentação Modelo e SQL. André Luiz Montevecchi

Bases de Dados. DDL Data Definition Language

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

EXEMPLOS DE COMANDOS NO SQL SERVER

Structured Query Language (SQL) Aula Prática

Modelagem Física e SQL

Múltiplas Tabelas. Disciplina de Banco de Dados

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Modelo Entidade-Relacionamento (E-R)

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

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

Introdução ao Banco de Dados. Banco de Dados

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

Curso de Banco de Dados. Prof. Rone Ilídio

Structured Query Language (SQL)

Bancos (Bases) de Dados

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Banco de Dados. Maurício Edgar Stivanello

BANCO DE DADOS PARA NINJAS

Disciplina: Banco de Dados Tema: SQL Parte 2

EXERCÍCIOS PRÁTICOS. Banco de Dados

Introdução ao PostgreSQL

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

SQL (Structured Query Language)

Transcrição:

Fundamentos de Programação ORACLE: SQL. 1 Prof. Walter Gima walter_gima@yahoo.com.br

Curso de Extensão Fundamentos de Programação ORACLE: SQL. Duração de 16 h. Sábados 14:00h 18:00h Unidade Limeira Lab 2 2

Curso de Extensão Fundamentos de Programação ORACLE: SQL. Ementa: Introdução ao SGBD Oracle. Introdução à Linguagem SQL (diferenciação entre DDL e DML). Linguagem de definição de dados (DDL). Linguagem de manipulação de dados (DML). 3

Introdução Tipos de Dados Criação de Tabelas Selects Inserts Deletes Updates Seqüência Backup e Restore Aplicações 4

INTRODUÇÃO - História 1977 Larry Ellison, Bob Miner, Ed Oates e Bruce Scott fundam a SDL. Larry e Bob foram parceiros em um projeto da CIA apelidado de Oracle. Bob e Bruce começam a trabalhar no banco de dados. 1978 A CIA é o primeiro cliente, embora o produto ainda não tenha sido lançado comercialmente. A SDL muda seu nome para Relational Software Inc. (RSI). 1981 A primeira ferramenta, Interactive Application Facility (IAF), que é um predecessor da futura ferramenta SQL*Forms do Oracle, é criada. 1982 A RSI muda seu nome para Oracle Systems Corporation (OSC) e depois simplifica o nome para Oracle Corporation. 5

INTRODUÇÃO Oracle 10g XE - (Express Edition) - Versão gratuita - O instalador possui 210 MB - O software instalado chega a 1.2 GB - Utiliza apenas um processador - Até 4 GB de dados no disco rígido - Até 1 GB de memória RAM - Gerenciamento somente de um banco de dados 6

INTRODUÇÃO Oracle 10g XE - (Express Edition) Quem pode utilizar: Desenvolvedores JAVA, PHP,.Net, XML, Delphi e outras linguagens e aplicações Open Source. Fins Educacionais: Instituições educacionais, professores e estudantes. 7

INTRODUÇÃO Usuários SYS, SYSTEM e HR SYS: pode executar as tarefas de gerenciamento do banco de dados porém não pode iniciar e parar a instância. SYSTEM: possui o privilégio de SYSDBA e assim pode executar todas as tarefas administrativas sem exceção. HR: (Human Resource): usuário com permissões/esquema padrão 8

INTRODUÇÃO Oracle e o SQL: O nome "SQL" significa "Structured Query Language" - Linguagem Estruturada de Pesquisa. PADRÃO SQL:1999 ANSI (American National Standards Institute) PL/SQL: Linguagem procedural do ORACLE para criação de lógica de negócio no banco de dados(procedures e TRIGGERS). 9

INTRODUÇÃO Banco de Dados Relacional: suporte ao modelo relacional. Modelo Relacional: o modelo baseia-se em dois conceitos: conceito de entidade e relação - Uma entidade é um elemento caracterizado pelos dados que são recolhidos na sua identificação vulgarmente designado por tabela. Na construção da tabela identificam-se os dados da entidade a atribuição de valores a uma entidade constrói um registro da tabela. A relação determina o modo como cada registro de cada tabela se associa a registros de outras tabelas. * wikipédia 10

INTRODUÇÃO Banco de Dados Objeto-Relacionais Extensão do modelo relacional com características com conceito de orientação a objetos. 11

DOWNLOAD Oracle 10g XE http://www.oracle.com/technetwork/database/express-edition/downloads/index.html 12

13

14

15

16

17

INTRODUÇÃO Oracle 10g XE 18

SQL via prompt 19

Interface Visual - WEB 20

DDL - Data Definition Language Os comandos para definição de dados, DDL (Data Definition Language) são os comandos para criação, alteração e exclusão de objetos em banco de dados. Usamos comandos DDL para criar bancos de dados, tabelas, índices, views, stored procedure, tipos de definidos pelo usuário e qualquer objeto que faz parte de uma aplicação no servidor de banco de dados. 21

DDL - Data Definition Language Exemplo: CREATE TABLE funcionário ( codigo INT PRIMARY KEY, nome VARCHAR(200), cargo VARCHAR(20) ); DROP TABLE funcionario; 22

DML - Data Manipulation Language Os comandos para manipulação de dados, DML (Data Manipulation Language), são os comandos usados para seleção e manutenção de dados em tabelas ou views. São os comandos utilizados na construção de aplicações usando SGBDs. Os comandos DML possuem uma sintaxe SQL padrão (ANSI), porém cada produto implementou extensões próprias a esses comandos aumentando sua funcionalidade. A vantagem de usar a sintaxe SQL padrão é que a mesma aplicação pode dessa forma acessar diferentes SGBDs. 23

DML - Data Manipulation Language 24

DML - Data Manipulation Language Exemplos: INSERT INTO funcionario VALUES (1, 'José da Silva', 'Vendedor'); UPDATE funcionario SET cargo = 'Promotor de Vendas' WHERE codigo = 1 DELETE FROM funcionario WHERE codigo = 1 25

Exemplos práticos 26

SELECT

SQL SELECT O SQL (Structured Query Language) é uma linguagem que visa padronizar e facilitar o gerenciamento de informações em bancos de dados relacionais (SQL ANSI). O SQL é uma linguagem bastante simples, com instruções de alto nível, mas que também permite a escrita de códigos complexos. A seguir temos um resumo da sintaxe do SELECT: SELECT [ DISTINCT ALL ] campos FROM tabela1 [, tabela n] [ JOIN condição ] [ WHERE condição ] [ GROUP BY expressão ] [ HAVING condição ] [ ORDER BY expressão [ASC DESC] ]

SQL SELECT A instrução SELECT não se restringe somente a sintaxe apresentada, mas será esta sintaxe o objeto do nosso estudo. Com exceção da cláusula JOIN, toda cláusula deve aparecer somente uma única vez no comando, ou seja, não há como usar um WHERE duas vezes para o mesmo SELECT, ou dois ORDER BY.Analisando a sintaxe apresentada, temos: Tudo que aparece entre colchetes é opcional, ou seja, você pode ou não utilizar essas cláusulas, sem que isso gere qualquer tipo de erro. Campos: São as colunas retornadas pela instrução. Pode ser empregado um coringa * quando se deseja recuperar todos os campos. A maioria dos SGBDs exige que a cláusula FROM esteja presente no SELECT. DISTINCT ALL: Indica se o select deve descartar informações repetidas, ou se deve trazer todas as linhas encontradas. A cláusula ALL é o padrão, podendo ser omitida, e recupera todas as linhas/registros.

SQL SELECT A Tabela1 Tabela n São exemplos de nomes de tabelas, sendo que quando mais de uma tabela forem especificadas, os nomes devem ser separados por vírgula. Podemos também designar apelidos para as tabelas (aliases), indicando-os logo após o nome de cada tabela. Os apelido são válidos apenas para o select em questão. Condição: Fator pelo qual a query irá fltrar os registros. Podemos utilizar operadores lógicos nas comparações como, por exemplo, OR (ou), AND (e), etc. Expressão: São as informações pela qual a cláusula irá operar. Pode ser um campo, lista de campos, ou em alguns casos até mesmo uma condição.

SQL SELECT Exemplo de utilização: SELECT * FROM CLIENTE; SELECT NOME FROM CLIENTE;

SQL SELECT Exemplo de melhor visualização SELECT cliente.codigo, cliente.nome, cliente.sobrenome, venda.codigo, venda.vencimento, venda.valor FROM cliente, venda WHERE cliente.codigo = venda.cliente ORDER BY cliente.nome; OU SELECT cli.codigo, cli.nome, cli.sobrenome, ven.codigo, ven.vencimento, ven.valor FROM cliente as cli, venda as ven WHERE cli.codigo = ven.cliente ORDER BY cli.nome;

Cláusula INNER JOIN Um exemplo de INNER JOIN em estilo ANSI: SELECT p.uname, p.nome, a.qtde from PESSOAS p INNER JOIN ACESSOS a on p.uname=a.pessoa ORDER BY p.uname;

Cláusula INNER JOIN O mesmo JOIN em estilo theta: SELECT p.uname, p.nome, a.qtde from PESSOAS p, ACESSOS a WHERE p.uname = a.pessoa order by p.uname;

Cláusula WHERE Outros operadores aceitos pela cláusula WHERE são: BETWEEN. LIKE: Há também a possibilidade de se utilizar operadores de proximidade como o LIKE, que permite realizar buscas por apenas uma parte de um string.

Exemplos de utilização: Adiante temos exemplos de aplicação de WHEREs: Filtra todos os registros da tabela PESSOAS no qual o campo IDADE é maior ou igual a 90. SELECT * from PESSOAS WHERE (IDADE >= 90);

Exemplos de utilização: Adiante temos exemplos de aplicação de WHEREs: Lista todos os registros da tabela VENDA cujo conteúdo do campo DATA seja maior e igual a 01/12/2009 e menor e igual a 31/12/2009. SELECT * FROM venda ven WHERE ven.data >= 01.12.2009' and ven.data <= 31.12.2009 ou SELECT * FROM venda ven WHERE ven.data between '10.12.2009' and '20.12.2009'

Exemplos de utilização: Adiante temos exemplos de aplicação de WHEREs: Retorna todos os campos e todos os registros da tabela pessoa que possuam as letras JO como iniciais do nome. SELECT * from PESSOAS WHERE NOME LIKE JO% ;

Exemplos de utilização: Adiante temos exemplos de aplicação de WHEREs: Retorna todos os campos e todos os registros onde o campo QTDE é NULL. SELECT * FROM ACESSOS WHERE QTDE IS NULL;

Cláusula GROUP BY As cláusulas GROUP BY e HAVING são geralmente utilizadas quando utilizamos funções de agrupamento. As principais funções de agrupamento são:

Exemplos: Query devolve a somatória do campo da tabela CONTAREC de um CLIENTE. SELECT SUM(rec.VALOR) FROM CONTAREC rec WHERE rec.venda = 1200;

Exemplos: Query devolve o maior valor do campo CODIGO da tabela CONTAREC. SELECT MAX(CODIGO) FROM CONTAREC;