TRIBUNAL DE JUSTIÇA DO ESTADO DO RIO DE JANEIRO DIRETORIA GERAL DE TECNOLOGIA DA INFORMAÇÃO DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO.

Tamanho: px
Começar a partir da página:

Download "TRIBUNAL DE JUSTIÇA DO ESTADO DO RIO DE JANEIRO DIRETORIA GERAL DE TECNOLOGIA DA INFORMAÇÃO DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO."

Transcrição

1 TRIBUNAL DE JUSTIÇA DO ESTADO DO RIO DE JANEIRO DIRETORIA GERAL DE TECNOLOGIA DA INFORMAÇÃO DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO SQL Básico Cláudio da Costa Blanco Zanoni da Conceição Maia Jr.

2 ÍNDICE Módulo 1 Introdução a Sistemas de Banco de Dados... 4 Conceito...4 Comparação entre Banco de Dados e Processamento Tradicional de Arquivos... 4 Auto Informação... 4 Separação entre Programas e Dados... 5 Abstração de Dados... 5 Múltiplas Visões de Dados... 5 Vantagens e desvantagens do uso de um SGBD... 6 Controle de Redundância... 6 Compartilhamento de Dados... 6 Restrição a Acesso não Autorizado... 6 Representação de Relacionamentos Complexos entre Dados... 6 Tolerância a Falhas... 6 O Modelo Relacional de Dados... 7 Terminologia do Modelo Relacional... 7 Modelagem de Dados utilizando o Modelo Entidade Relacionamento (MER)... 7 Entidades e Atributos... 8 Relacionamentos... 8 Grau de um Relacionamento... 9 Restrições de Relacionamentos... 9 Entidades Fracas Diagrama Entidade Relacionamento SQL Módulo 2 Consultas SQL Selecionando dados de tabelas Seleção de colunas específicas Seleção de todas as colunas Seleção sem valores duplicados Emprego de operadores aritméticos Utilizando um alias para coluna Ordenando as linhas selecionadas Restringindo as linhas selecionadas Operadores para comparações lógicas Operadores lógicos Funções Funções de Linha Funções de Linha que manipulam Datas Funções de Linha que Realizam Conversões de Dados Funções de Grupo Agrupamento de dados (cláusula Group By) A cláusula Having Ordem de Avaliação das cláusulas de um comando Selecionando dados de várias tabelas (Join) Subconsultas (Subqueries) Utilização Subconsultas correlacionadas... 24

3 Quantificador Existencial Módulo 3 Manipulação de dados O Comando INSERT O Comando UPDATE O Comando DELETE Controle de Transações Vantagens do COMMIT ou ROLLBACK Controlando Transações Através de SavePoints O Estado dos dados antes do Commit ou Rollback O que Acontece após o Commit O que acontece após o Rollback Rollback em nível de Comando Módulo 4 Manipulação de tabelas Criação de tabelas Regras para nomear uma tabela Principais tipos de dados do Oracle Criando uma tabela Criando uma tabela a partir de uma subconsulta Alteração da estrutura de uma tabela Removendo uma tabela Renomeando uma tabela Eliminando todas as linhas de uma tabela Módulo 5 Definindo Restrições (Constraints) Tipos de Constraints Constraints Primary Key e Not Null Constraint Check e Foreign Key Adicionando uma constraint a uma tabela Removendo uma constraint de uma tabela Outras Formas de se Validar uma Restrição de Integridade Módulo 6 Manipulação de outros objetos de banco de dados Visões (Views) Vantagens na Utilização de Visões: Criando uma Visão Alterando uma visão Removendo uma Visão Índices Regras Gerais para a Criação de Índices Criando Índices Reconstruindo Índices Removendo Índices... 40

4 Módulo 1 Introdução a Sistemas de Banco de Dados Conceito A tecnologia aplicada aos métodos de armazenamento de informações vem crescendo e gerando um impacto cada vez maior no uso de computadores, em qualquer área em que os mesmos podem ser aplicados. Um banco de dados pode ser definido como um conjunto de dados devidamente relacionados. Por dados podemos compreender como fatos conhecidos que podem ser armazenados e que possuem um significado implícito. Porém, o significado do termo banco de dados é mais restrito que simplesmente a definição dada acima. Um banco de dados possui as seguintes propriedades: Um banco de dados é uma coleção lógica coerente de dados com um significado inerente; uma disposição desordenada dos dados não pode ser referenciada como um banco de dados; Um banco de dados é projetado, construído e populado com dados para um propósito específico; um banco de dados possui um conjunto pré-definido de usuários e aplicações; Um banco de dados representa algum aspecto do mundo real, o qual é chamado de mini-mundo ; qualquer alteração efetuada no mini-mundo é automaticamente refletida no banco de dados. Um banco de dados pode ser criado e mantido por um conjunto de aplicações desenvolvidas especialmente para esta tarefa ou por um Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD permite aos usuários criarem e manipularem bancos de dados de propósito geral. O conjunto formado por um banco de dados mais as aplicações que manipulam o mesmo é chamado de Sistema de Banco de Dados. Comparação entre Banco de Dados e Processamento Tradicional de Arquivos Auto Informação Uma característica importante da abordagem Banco de Dados é que o servidor mantém não somente os dados mas também a forma como os mesmos são armazenados, contendo uma descrição completa do banco de dados. Estas informações são armazenadas no catálogo do SGBD, o qual contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restrições, etc. A informação armazenada no catálogo é chamada de Meta Dados. No processamento tradicional de arquivos, o programa que irá manipular os dados deve conter este tipo de informação, ficando limitado a manipular as informações que o mesmo conhece. Utilizando a abordagem banco de dados, a aplicação pode manipular diversas bases de dados diferentes.

5 Separação entre Programas e Dados No processamento tradicional de arquivos, a estrutura dos dados está incorporada ao programa de acesso. Desta forma, qualquer alteração na estrutura de arquivos implica na alteração no código fonte de todos os programas. Já na abordagem banco de dados, a estrutura é alterada apenas no catálogo, não alterando os programas. Programas de Aplicação/Consulta Sistema de Banco de Dados Software para processar manipulação SGBD Software de Acesso aos Dados Meta Dados Dados Figura 1. Um ambiente de Sistema de Banco de Dados. Abstração de Dados O SGBD deve fornecer ao usuário uma representação conceitual dos dados, sem fornecer muitos detalhes de como as informações são armazenadas. Um modelo de dados é uma abstração de dados que é utilizada para fornecer esta representação conceitual utilizando conceitos lógicos como objetos, suas propriedades e seus relacionamentos. A estrutura detalhada e a organização de cada arquivo são descritas no catálogo. Múltiplas Visões de Dados Como um conjunto de informações pode ser utilizada por um conjunto diferenciado de usuários, é importante que estes usuários possam ter visões diferentes da base de dados. Uma visão é definida como um subconjunto de uma base de dados, formando deste modo, um conjunto virtual de informações.

6 Vantagens e desvantagens do uso de um SGBD Controle de Redundância No processamento tradicional de arquivos, cada grupo de usuários deve manter seu próprio conjunto de arquivos e dados. Desta forma, acaba ocorrendo redundâncias que prejudicam o sistema com problemas como: Toda vez que for necessário atualizar um arquivo de um grupo, então todos os grupos devem ser atualizados para manter a integridade dos dados no ambiente como um todo; A redundância desnecessária de dados levam ao armazenamento excessivo de informações, ocupando espaço que poderia estar sendo utilizado com outras informações. Compartilhamento de Dados Um SGBD multi-usuário deve permitir que múltiplos usuários acessem o banco de dados ao mesmo tempo. Este fator é essencial para que múltiplas aplicações integradas possam acessar o banco. O SGBD multi-usuário deve manter o controle de concorrência para assegurar que o resultado de atualizações sejam corretos. Um banco de dados multi-usuário deve fornecer recursos para a construção de múltiplas visões. Restrição a Acesso não Autorizado Um SGBD deve fornece um subsistema de autorização e segurança, o qual é utilizado pelo DBA para criar contas e especificar as restrições destas contas; o controle de restrições se aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao SGBD. Representação de Relacionamentos Complexos entre Dados Um banco de dados pode incluir uma variedade de dados que estão interrelacionados de várias formas. Um SGBD deve fornecer recursos para se representar uma grande variedade de relacionamentos entre os dados, bem como, recuperar e atualizar os dados de maneira prática e eficiente. Tolerância a Falhas Um SGBD deve fornecer recursos para recuperação de falhas tanto de software quanto de hardware.

7 O Modelo Relacional de Dados O Modelo Relacional representa os dados contidos em um Banco de Dados através de relações (tabelas). Estas tabelas contêm informações sobre as entidades representadas e seus relacionamentos. O Modelo Relacional é claramente baseado no conceito de matrizes, onde as chamadas linhas (das matrizes) seriam os registros e as colunas (das matrizes) seriam os campos. O Modelo Relacional foi originalmente proposto em 1970 pelo Dr. E. F. Codd, pesquisador da IBM, no artigo A Relational Model of Data for Large Shared Data Banks. O Modelo Relacional consiste de: Uma coleção de objetos ou relações que armazenam os dados; Um conjunto de operações que podem ser aplicadas nos dados para produzir outras relações; Um conjunto de regras para garantir a integridade e a consistência dos dados. Terminologia do Modelo Relacional Uma tabela é formada por colunas e linhas. As colunas definem os atributos da relação. As linhas definem uma ocorrência específica de uma relação. A interseção de uma linha com uma coluna é denominada de campo. Toda tabela deve possuir uma chave primária (primary key) que é o atributo que identifica uma ocorrência da relação, isto é, um registro. Podem existir também chaves secundárias que serão chaves que possibilitarão pesquisas ou ordenações alternativas, ou seja, diferentes da ordem criada a partir da chave primária. Uma chave formada por apenas um atributo é denominada simples. Uma chave é dita composta quando contém mais de um atributo. Uma chave estrangeira (foreign key), permite o relacionamento da tabela da qual a chave é atributo com outra tabela na qual ela é chave primária. Modelagem de Dados utilizando o Modelo Entidade Relacionamento (MER) O modelo Entidade-Relacionamento é um modelo de dados conceitual de alto nível, cujos conceitos foram projetados para estar o mais próximo possível da visão que o usuário tem dos dados, não se preocupando em representar como estes dados estarão realmente armazenados. O modelo ER é utilizado principalmente durante o processo de projeto de banco de dados.

8 Entidades e Atributos O objeto básico tratado pelo modelo ER é a entidade, que pode ser definida como um objeto do mundo real, concreto ou abstrato e que possui existência independente. Cada entidade possui um conjunto particular de propriedades que a descreve chamado atributos. Um atributo pode ser dividido em diversas sub-partes com significado independente entre si, recebendo o nome de atributo composto. Um atributo que não pode ser subdividido é chamado de atributo simples ou atômico. Um atributo é denominado de atributo chave quando seus valores podem ser utilizados para identificar cada entidade de forma única. Muitas vezes, uma chave pode ser formada pela composição de dois ou mais atributos. Uma entidade pode também ter mais de um atributo chave. O atributo que pode assumir apenas um determinado valor é denominado atributo simplesmente valorado, enquanto aquele que pode assumir diversos valores é chamado de multivalorado. Um atributo que é gerado a partir de outro atributo é chamado de atributo derivado. O conjunto de valores que podem ser designados para um atributo é denominado domínio. Relacionamentos Além de conhecer detalhadamente as entidades, é muito importante conhecer também os relacionamentos entre estas entidades. Um relacionamento R entre n entidades E1, E2,..., En, é um conjunto de associações entre entidades. Informalmente falando, cada instância de relacionamento r1 em R é uma associação de entidades, onde a associação inclui exatamente uma entidade de cada entidade participante no relacionamento. Isto significa que estas entidades estão relacionadas de alguma forma no mini-mundo. A figura 2 mostra um exemplo entre duas entidades (empregado e departamento) e o relacionamento entre elas (trabalha para). Repare que para cada relacionamento, participam apenas uma entidade de cada, porém, uma entidade pode participar de mais de um relacionamento. EMPREGADO Trabalha Para DEPARTAMENTO e1 e2 e3 e4 e5 e6 e7 d1 d2 d3 Figura 2: Exemplo de um Relacionamento

9 Grau de um Relacionamento O grau de um relacionamento é o número de entidades que participam do relacionamento. No exemplo da figura 2, temos um relacionamento binário. O grau de um relacionamento é ilimitado, porém, a partir do grau 3 (ternário), a compreensão e a dificuldade de se desenvolver a relação corretamente se tornam extremamente complexas. Restrições de Relacionamentos Geralmente, os relacionamentos sofrem certas restrições que limitam as possíveis combinações das entidades participantes. Estas restrições são derivadas de restrições impostas pelo estado destas entidades no mini-mundo. Veja o exemplo da figura 3. EMPREGADO Gerencia DEPARTAMENTO e1 e2 e3 e4 e5 e6 e7 d1 d2 d3 Figura 3 - Relacionamento EMPREGADO gerencia DEPARTAMENTO No exemplo da figura 3, temos a seguinte situação: um empregado pode gerenciar apenas um departamento, enquanto que um departamento, pode ser gerenciado por apenas um empregado. A este tipo de restrição, nós chamamos cardinalidade. A cardinalidade indica o número de relacionamentos dos quais uma entidade pode participar. A cardinalidade pode ser: 1:1, 1:N, M:N. No exemplo da figura 3, a cardinalidade é 1:1, pois cada entidade EMPREGADO pode gerenciar apenas um departamento e um departamento pode ser gerenciado por apenas um empregado. No exemplo da figura 2, no relacionamento EMPREGADO Trabalha Para DEPARTAMENTO, o relacionamento é 1:N, pois um empregado pode trabalhar em apenas um departamento, enquanto que um departamento pode possuir vários empregados. Na figura 4, temos um exemplo de um relacionamento com cardinalidade N:M.

10 EMPREGADO e1 e2 e3 e4 Trabalha Em PROJETO p1 p2 p3 Figura 4 - Relacionamento N:M No exemplo da figura 4, nós temos que um empregado pode trabalhar em vários projetos enquanto que um projeto pode ter vários empregados trabalhando. Outra restrição muito importante é a participação. A participação define a existência de uma entidade através do relacionamento, podendo ser parcial ou total. Veja o exemplo da figura 3. A participação do empregado é parcial pois nem todo empregado gerencia um departamento, porém a participação do departamento neste relacionamento é total pois todo departamento precisa ser gerenciado por um empregado. Desta forma, todas as linhas da entidade DEPARTAMENTO precisam participar do relacionamento, mas nem todas as linhas da entidade EMPREGADO precisam participar do relacionamento. Já no exemplo da figura 4, ambas as participações são totais pois todo empregado precisa trabalhar em um departamento e todo departamento tem que ter empregados trabalhando nele. Estas restrições são chamadas de restrições estruturais. Algumas vezes, torna-se necessário armazenar um atributo no tipo relacionamento. Veja o exemplo da figura 3. Eu posso querer saber em que dia o empregado passou a gerenciar o departamento. É difícil estabelecer a qual tipo entidade pertence atributo, pois o mesmo é definido apenas pela existência do relacionamento. Quando temos relacionamentos com cardinalidade 1:1, podemos colocar o atributo em uma das entidades, de preferência, em uma cujo tipo entidade tenha participação total. No caso, o atributo poderia ir para o tipo entidade departamento. Isto porque nem todo empregado participará do relacionamento. Caso a cardinalidade seja 1:N, então podemos colocar o atributo no tipo entidade com participação N. Porém, se a cardinalidade for N:M, então o atributo deverá mesmo ficar no tipo relação. Veja o exemplo da figura 4. Caso queiramos armazenar quantas horas cada empregado trabalhou em cada projeto, então este deverá ser um atributo do relacionamento. Entidades Fracas Algumas entidades podem não ter um atributo chave por si só. Isto implica que

11 não poderemos distingui-las por que as combinações dos valores de seus atributos podem ser idênticas. Estas entidades são chamadas entidades fracas. As entidades deste tipo precisam estar relacionadas com uma entidade pertencente a uma entidade proprietária. Este relacionamento é chamado de relacionamento identificador. Veja o exemplo da figura 5. EMPREGADO e1 e2 Possui Dependentes DEPENDENTE p1 p2 p3 Figura 5 - Relacionamento com uma Entidade Fraca (Dependente) A entidade DEPENDENTE é uma entidade fraca pois não possui um método de identificar uma entidade única. O EMPREGADO não é uma entidade fraca pois possui um atributo para identificação (atributo chave). O número do RG de um empregado identifica um único empregado. Porém, um dependente de 5 anos de idade não possui necessariamente um documento de identificação. Desta forma, DEPENDENTE é uma entidade fraca. Uma entidade fraca possui uma chave parcial que juntamente com a chave primária da entidade proprietária forma uma chave primária composta. Neste exemplo: a chave primária do EMPREGADO é o RG. A chave parcial do DEPENDENTE é o seu nome, pois dois irmãos não podem ter o mesmo nome. Desta forma, a chave primária desta entidade fica sendo o RG do pai ou mãe mais o nome do dependente. Diagrama Entidade Relacionamento O diagrama Entidade Relacionamento é composto por um conjunto de objetos gráficos que visa representar todos os objetos do modelo Entidade Relacionamento tais como entidades, atributos, atributos chaves, relacionamentos, restrições estruturais, etc. O diagrama ER fornece uma visão lógica do banco de dados, fornecendo um conceito mais generalizado de como estão estruturados os dados de um sistema. Os objetos que compõem o diagrama ER estão listados a seguir, na figura 6.

12 ENTIDADE ATRIBUTO ENTIDADE FRACA RELACIONAMENTO ATRIBUTO CHAVE ATRIBUTO MULTI VALORADO RELACIONAMENTO IDENTIFICADOR ATRIBUTO DERIVADO ATRIBUTO COMPOSTO E1 1 N R E2 E1 R E2 Taxa de Cardinalidade 1:N para E1:E2 em R Participação Parcial de E1 em R, Participação Total de E2 em R R (min, max) E1 Restrição Estrutural (min,max) na Participação de E1 em R Figura 6- Objetos que Compõem o Diagrama ER SQL A SQL (Structured Query Language), Linguagem Estruturada de Consulta, é a linguagem padrão para se lidar com bancos de dados relacionais e é aceita por quase todos os produtos existentes do mercado. A linguagem SQL foi desenvolvida originalmente no laboratório de pesquisa da IBM no início da década de 1970 e foi implementada pela primeira vez em grande escala em um protótipo da IBM chamado System R, e reimplementada depois em numerosos produtos da IBM e de muitos outros fornecedores. Em 1986, o American National Standard Institute ( ANSI ), publicou um padrão SQL. Desde então, A linguagem SQL tem se estabelecido como linguagem padrão de Banco de Dados Relacional. A SQL apresenta uma categoria de comandos que permitem a definição dos

13 dados, chamada de DDL (Data Definition Language), composta pelos comandos de criação, alteração e eliminação de objetos de banco de dados. Como exemplo de comandos da classe DDL, temos os comandos Create, Alter e Drop. Os comandos da categoria DML (Data Manipulation Language) são destinados a consultas, inserções, exclusões e alterações em um ou mais registros de uma ou mais tabelas de maneira simultânea. Como exemplo de comandos DML, temos os comandos Select, Insert, Update e Delete. Existe ainda a categoria DCL (Data Control Language) que dispõe de comandos de controle de privilégios como Grant e Revoke. A Linguagem SQL tem como grandes virtudes sua capacidade de gerenciar índices, sem a necessidade de controle individualizado de índice corrente, algo muito comum nas linguagens de manipulação de dados do tipo registro a registro. Outra característica muito importante disponível em SQL é sua capacidade de construção de visões, que são formas de visualizarmos os dados na forma de listagens independente das tabelas e organização lógica dos dados. Outra característica interessante na linguagem SQL é a capacidade que dispomos de cancelar uma série de atualizações ou de as gravarmos, depois de iniciarmos uma seqüência de atualizações. Os comandos Commit e Rollback são responsáveis por estas facilidades. Devemos notar que a linguagem SQL consegue implementar estas soluções, somente pelo fato de estar baseada no modelo de Banco de Dados Relacional que garante por si mesmo a integridade das relações existentes entre as tabelas e seus índices.

14 Módulo 2 Consultas SQL O formato de um comando SQL é livre, podendo ocupar uma ou mais linhas. Um comando SQL é composto de cláusulas, algumas opcionais e outras obrigatórias. Para maior inteligibilidade é conveniente iniciar uma cláusula em uma linha, mas isso não é obrigatório. As palavras que compõem um comando devem ser separadas por espaços ou TABs. Selecionando dados de tabelas O comando é usado para selecionar dados nas tabelas, ou seja, efetuar consultas SQL no banco de dados. A sintaxe mais simples de um comando é: WHERE <colunas> <tabela> <condição>; Observação: Para conhecer a estrutura de uma tabela, utilizamos o comando: DESCRIBE <tabela>; Seleção de colunas específicas Não é necessário selecionar todas as colunas de uma tabela. Basta nomear, na cláusula, as colunas desejadas. Exemplo 1: Seleção de uma coluna de uma tabela (para todas as linhas). Exemplo 2: TABLE_NAME USER_TABLES; Seleção de duas colunas de uma tabela. NUM_MATR, NOME FUNCIONARIO; Seleção de todas as colunas Para selecionar todas as colunas de uma tabela, basta substituir os nomes das colunas por um asterisco (*). Exemplo 3: Seleção de todas as colunas de uma tabela. * COMARCA;

15 Seleção sem valores duplicados Utilize a cláusula DISTINCT para suprimir linhas duplicadas. Exemplo 4: Seleção de todas as ocorrências distintas de uma coluna. DISTINCT COD_CARG FUNCIONARIO; Emprego de operadores aritméticos Exemplo 5: Seleção de todos os funcionários, multiplicando-se a coluna SALARIO. NOME, SALARIO * 12 FUNCIONARIO; Utilizando um alias para coluna Exemplo 6: A mesma consulta, Exibindo o resultado da multiplicação com um título mais adequado. NOME, SALARIO * 12 AS SALARIO_ANUAL FUNCIONARIO; Variação: NOME, SALARIO * 12 SALARIO_ANUAL FUNCIONARIO; Ordenando as linhas selecionadas Exemplo 7: Seleção de todos os funcionários, ordenando-se pela coluna NOME, em ordem ascendente (padrão). NOME, COD_CARG FUNCIONARIO ORDER BY NOME; Exemplo 8: Seleção de todos os funcionários, ordenando-se pela coluna NOME, em ordem descendente. NOME, COD_CARG FUNCIONARIO ORDER BY NOME DESC;

16 Observação: Na ordenação ascendente, os valores NULOS aparecem no final. Exemplo 9: Ordenando pela posição da coluna no. No caso, a ordenação será feita pela coluna COD_CARG. NOME, COD_CARG FUNCIONARIO ORDER BY 2; Restringindo as linhas selecionadas Exemplo 10: Seleção de todos os funcionários segundo um critério de igualdade. WHERE NUM_MATR, NOME FUNCIONARIO NUM_MATR= ; Observações: 1. Usar aspas simples quando a comparação for com um literal; 2. Os literais são Case Sensitive, isto é, letras maiúsculas são diferentes de letras minúsculas; 3. O formato padrão para datas é DD-MON-YY. Operadores para comparações lógicas = Igual <> Diferente > Maior que < Menor que >= Maior ou igual <= Menor ou igual BETWEEN... AND... Entre dois valores IN (Lista) Pertence a um conjunto LIKE Semelhante / contém a subcadeia IS NULL É nulo Exemplo 11: Seleção de todos os funcionários segundo um critério de desigualdade. NUM_MATR, NOME FUNCIONARIO WHERE COD_CARG <> 1; Exemplo 12: Seleção de todos os funcionários segundo um critério de comparação.

17 NOME, SALARIO FUNCIONARIO WHERE SALARIO > 1000; Exemplo 13: Selecionando linhas com BETWEEN... AND... WHERE NOME, DT_CAD FUNCIONARIO DT_CAD BETWEEN 28-SEP-90 AND 30-JAN-91 ; Exemplo 14: Selecionando linhas com a cláusula IN. Seleção de Funcionários cujo COD_CARG seja igual a 1 ou 2. NOME, COD_CARG FUNCIONARIO WHERE COD_CARG IN (1, 2); Exemplo 15: Selecionando linhas com a cláusula LIKE. Seleção de Funcionários cujo NOME contenha a subcadeia SILVA. WHERE NOME, SALARIO FUNCIONARIO NOME LIKE %SILVA% ; Exemplo 16: Selecionando linhas com a cláusula LIKE. Seleção de Funcionários cujo NOME não contenha a subcadeia SILVA. WHERE NOME, SALARIO FUNCIONARIO NOME NOT LIKE %SILVA% ; Exemplo 17: Selecionando linhas com a cláusula LIKE. Seleção de Funcionários cujo NOME contenha uma letra A na segunda posição. WHERE NOME, SALARIO FUNCIONARIO NOME LIKE _A% ; Observações: 1. % representa nenhum ou muitos caracteres. 2. _ representa um único caractere naquela posição especificada. Exemplo 18: Selecionando linhas com a cláusula IS NULL. Funcionários cujo campo LOGIN seja nulo. WHERE NUM_MATR, NOME FUNCIONARIO LOGIN IS NULL; Observação: Se valores nulos forem comparados por operadores que não o

18 operador IS NULL o resultado será sempre falso. Na consulta a seguir, a condição da cláusula Where é sempre avaliada coma falsa pois um valor nulo não pode ser comparado com outros operadores de comparação, mesmo que este outro valor seja nulo. Exemplo 19: Selecionando linhas sem a cláusula IS NULL. Não haverá linhas selecionadas. WHERE NUM_MATR, NOME FUNCIONARIO COD_SERV = NULL; Operadores lógicos AND E As duas condições devem ser verdadeiras OR OU Somente uma condição precisa ser verdadeira NOT NÃO Negação de uma condição lógica Funções Há dois tipos de funções: funções de linhas e funções de grupos. Uma função de linha retorna um resultado por linha da tabela acessada. Já uma função de grupo retorna um resultado por grupo de registros. Funções de Linha LOWER ( TJ ) - Converte para letras minúsculas tj UPPER ( tj ) - Converte para letras maiúsculas TJ INITCAP ( TRIBUNAL DE JUSTIÇA ) - Converte cada letra inicial para maiúsculas Tribunal De Justiça CONCAT ( JOSE, SILVA ) - Concatena duas cadeias JOSESILVA SUBSTR ( JOSE, 1, 3) - Extrai uma subcadeia de uma cadeia JOS LENGTH ( UFF ) - Retorna o tamanho de um campo 3 NVL (SALARIO, 0) Se SALARIO for NULO, retorna o valor especificado, no caso, zero. ROUND (78.731, 2) Arredonda o número para o número de decimais especificado. Se o dígito for menor ou igual a 4 arredonda para baixo, Acima de 4 arredonda para cima ROUND (78.731, 0) 79 TRUNC (78.731, 2) - Trunca o número, preservando sua parte inteira TRUNC (78.731) 78 MOD (100, 30) - Resto da divisão do primeiro número pelo segundo 10

19 Exemplo 20: Utilização da função UPPER. WHERE NOME, SALARIO, COD_SERV FUNCIONARIO UPPER (NOME) = JOAO ; Exemplo 21: Utilização das funções SUBSTR e LENGTH. WHERE NOME, LENGTH (NOME) FUNCIONARIO SUBSTR (NOME, 1, 3) = MAR ; Formato de Data As datas no Oracle são armazenadas em um formato numérico interno que representa o século, o ano, o mês, o dia, a hora, o minuto e os segundos. O formato padrão de exibição é DD-MON-YY. Funções de Linha que manipulam Datas SYSDATE Retorna a data do sistema no formato DD-MMM-YY MONTHS_BETWEEN ( 10-JAN-97, 10-JAN-98 ) - número de meses decorrido entre duas datas 12 ADD_MONTHS ( 03-MAR-98, -3) Adiciona meses a uma data 03- DEC-97 NEXT_DAY ( 03-MAR-98, SATURDAY ) - Próximo dia da semana a partir de uma data 07-MAR-98 Exemplo 22: Utilização da função SYSDATE. * FUNCIONARIO WHERE DT_CAD = SYSDATE; Funções de Linha que Realizam Conversões de Dados TO_CHAR Converte um número ou uma data para VARCHAR2. Um formato pode ser especificado. TO_NUMBER Converte um string contendo dígitos para NUMBER TO_DATE Converte um string representando uma data para DATE de acordo com o formato especificado. O formato padrão é DD-MON-YY. Exemplo 23: Utilização da função TO_CHAR. Como exibir uma data no formato DD/MM/AA. NOME, TO_CHAR(DT_CAD, DD/MM/YY ) ADMISSÃO FUNCIONARIO;

20 Observações: Por padrão, a largura de uma coluna que resulta de uma expressão é de 80 posições. YYYY ou YYY ou YY ou Y Os últimos 4, 3, 2 ou 1 dígitos do ano. MM O mês representado em 2 dígitos. MON O nome do mês abreviado em 3 letras, em inglês. DDD ou DD ou D Dia do ano, mês ou semana. DAY O nome do dia por extenso, completado com brancos até 9 caracteres. MM/AA Apenas o mês e o ano são exibidos. Exemplo 24: Utilização da função TO_CHAR para exibir o dia da semana. NOME, TO_CHAR(DT_CAD, DAY ) ADMISSÃO FUNCIONARIO; Exemplo 25: Utilização da função TO_CHAR para exibir a data no formato completo. NOME, TO_CHAR(DT_ADMISSAO, DD-MM-YY HH24:MI:SS ) ADMISSÃO FUNCIONARIO; Funções de Grupo Funções de grupo operam com um conjunto de linhas para dar um resultado por grupo de linhas. Um conjunto de linhas pode ser uma tabela inteira ou linhas desta tabela divididas em grupos. Funções de grupo podem aparecer tanto na cláusula Select quanto na cláusula Having. A cláusula Group By divide as linhas de uma ou mais tabelas em grupos de linhas. A cláusula Having seleciona os grupos que serão aceitos. Principais Funções de Grupo Existentes: AVG COUNT MAX MIN SUM MÉDIA CONTAGEM MÁXIMO MÍNIMO SOMA Observações: A cláusula Distinct pode ser utilizada para que sejam considerados apenas valores não duplicados.

21 Todas as funções de grupo ignoram valores nulos. Para substituir um valor nulo por outro valor utilize a função NVL. Exemplo 26: Utilização de funções de grupo, considerando todas as linhas de uma tabela um único grupo. AVG(SALARIO), MAX(SALARIO), MIN(SALARIO), SUM(SALARIO) FUNCIONARIO; Exemplo 27: As funções de grupo aplicadas às linhas especificadas pela cláusula WHERE. AVG(SALARIO), MAX(SALARIO), MIN(SALARIO), SUM(SALARIO) FUNCIONARIO; WHERE COD_CARG = 1; Exemplo 28: Utilização da função COUNT para contar o número de funcionários lotados na serventia de número COUNT(*) FUNCIONARIO WHERE COD_SERV = ; Observações: COUNT(*) conta o número de linhas na tabela. COUNT(LOGIN) conta o número de linhas com sobrenome diferente de nulo. COUNT(NUM_MATR) conta o número de linhas na tabela uma vez que a coluna NUM_MATR é a chave primária da tabela e toda chave primária não pode conter valores nulos. Agrupamento de dados (cláusula Group By) Para efetuarmos agrupamentos de dados de acordo com os valores de certas colunas utilizamos a cláusula GROUP BY. Exemplo 29: Utilização da cláusula GROUP BY e da função COUNT para se contar quantos funcionários estão lotados em cada serventia. COD_SERV, COUNT(*) FUNCIONARIO GROUP BY COD_SERV;

22 Observações: Qualquer coluna incluída na cláusula, se não estiver em uma função de grupo, deverá constar da cláusula GROUP BY. Com a cláusula WHERE é possível excluir determinadas linhas dos grupos. Por padrão, as linhas são ordenadas ascendentemente conforme a lista de colunas especificada na cláusula GROUP BY. Para modificar este comportamento é preciso utilizar a cláusula ORDER BY. Exemplo 30: Agrupamento dos processos por serventia e por código da ação, para saber quantos processos de que ações existem em cada serventia. COD_SERV, COD_ACAO, COUNT(*) PROCESSO GROUP BY COD_SERV, COD_ACAO; A cláusula Having Para se restringir à inclusão de grupos não se pode utilizar a cláusula WHERE. A cláusula WHERE deve ser utilizada para se restringir à inclusão de linhas em um grupo. Para se omitir a inclusão de grupos inteiros do resultado de uma query devese utilizar a cláusula HAVING. Exemplo 31: A utilização da cláusula HAVING para listar o número das serventias seguido da média salarial de seus funcionários. No entanto, deseja-se listar apenas aquelas serventias cuja média salarial é superior a COD_SERV, AVG(SALARIO) FUNCIONARIO GROUP BY COD_SERV HAVING AVG(SALARIO) > 2000; Ordem de Avaliação das cláusulas de um comando 1. Se o comando SQL contem a cláusula WHERE, o servidor seleciona as linhas candidatas. 2. O servidor identifica os grupos especificados pela cláusula GROUP BY. 3. A cláusula HAVING restringe os grupos resultantes que não estão de acordo com os critérios especificados nesta cláusula.

23 Selecionando dados de várias tabelas (Join) Para se exibir dados de mais de uma tabela, através de um comando SQL, é preciso definir condições de junção. (Joins) Os Joins geralmente ocorrem entre valores de chave primária e de chave estrangeira. Tipos de Joins: o Equijoin Join por igualdade o Non-equijoin Join por desigualdade o Outer join Join incompleto o Self Join Join efetuado com a própria tabela Um produto cartesiano geralmente ocorre quando a condição de junção é omitida ou inválida. Para evitar produtos cartesianos é preciso incluir, na cláusula Where, condições de junção válidas. Exemplo 32: Uma junção simples entre a tabela de Funcionários e a tabela de Serventias (Equijoin). WHERE FUNCIONARIO.NOME FUNCIONARIO, SERVENTIA.DESC_SERV SERVENTIA FUNCIONARIO, SERVENTIA FUNCIONARIO.COD_SERV = SERVENTIA.COD_SERV; Observação: Haverá um ganho de desempenho e de clareza se você sempre qualificar as colunas com o nome das tabelas às quais elas pertencem. Exemplo 33: WHERE AND Uma junção entre a tabela Funcionário, a tabela Serventia e a tabela Comarca. As tabelas estão sendo referenciadas por um apelido, no caso, uma letra. F.NOME FUNCIONARIO, S.DESC_SERV SERVENTIA, C.COMARCA COMARCA FUNCIONARIO F, SERVENTIA S, COMARCA C F.COD_SERV = S.COD_SERV S.COD_COMA = C.COD_COMA; Subconsultas (Subqueries) Uma subconsulta é um comando embutido em uma cláusula de outro comando SQL. Utilização Escreva subconsultas para recuperar dados baseados em critérios desconhecidos.

24 Pode ser muito útil quando se necessita selecionar linhas de uma tabela com uma condição que depende dos dados que estão na própria ou em outra tabela. Subconsultas não podem conter a cláusula ORDER BY. Duas classes de operadores de comparações são utilizadas em subconsultas: o Operadores de uma única linha: >, =, >=, <, <=, <> o Operadores de múltiplas linhas: IN e NOT IN. Como uma subconsulta é processada? o Primeiramente é executado o comando aninhado. o Em seguida o resultado é utilizado em uma condição da consulta principal. Exemplo 34: A utilização de uma subconsulta aninhada para recuperar o nome e salário de todos os funcionários que trabalham na mesma serventia que o JOSE DA SILVA trabalha. NOME, SALARIO FUNCIONARIO WHERE COD_SERV = ( COD_SERV FUNCIONARIO WHERE NOME = JOSE DA SILVA ); Subconsultas correlacionadas No exemplo abaixo a subconsulta é executada uma vez para cada linha da tabela de funcionários na consulta mais externa. Exemplo 35: A utilização de uma subconsulta correlacionada para recuperar o nome dos funcionários que trabalham na serventia WHERE NOME FUNCIONARIO F IN ( COD_SERV FUNCIONARIO WHERE NUM_MATR = F.NUM_MATR); Exemplo 36: A utilização de uma subconsulta correlacionada para recuperar o nome e a matrícula dos funcionários que tem o mesmo cargo de um determinado funcionário. WHERE NOME, NUM_MATR FUNCIONARIO COD_CARG IN ( COD_CARG FUNCIONARIO WHERE NUM_MATR= );

25 Quantificador Existencial Exists representa o quantificador existencial, uma noção emprestada da lógica formal. Em SQL, um predicado existencialmente quantificado é representado pela expressão da forma EXISTS ( *...). Essa expressão será verdadeira se o resultado do cálculo da subconsulta representado por *... não estiver vazio, isto é, se existir pelo menos um registro na tabela da subconsulta que satisfaz a condição WHERE dessa mesma subconsulta. Qualquer consulta que utilize IN pode alternativamente ser formulada com EXISTS, porém o inverso não é verdadeiro. Exemplo 37: Obter o nome das serventias que possuem funcionários. WHERE NOME SERVENTIA S EXISTS ( * FUNCIONARIO WHERE COD_SERV = S.COD_SERV); A subconsulta anterior poderia ser substituída pelo seguinte join: WHERE DISTINCT DESC_SERV SERVENTIA S, FUNCIONARIO F S.COD_SERV = F.COD_SERV; * FUNCIONARIO

26 WHERE SALARIO > 260 UNION * FUNCIONARIO WHERE NOME ='JOAO'; Exemplo 40: Obter os funcionários com SALARIO > 260 e os funcionários com nome igual a JOAO. União com repetição. * FUNCIONARIO WHERE SALARIO > 260 UNION ALL * FUNCIONARIO WHERE NOME ='JOAO';

27 Módulo 3 Manipulação de dados Comandos INSERT UPDATE DELETE COMMIT SAVEPOINT ROLLBACK Descrição Adiciona novas linhas a uma tabela. Modifica linhas existentes em uma tabela. Remove linhas existentes de uma tabela. Torna permanentes todas as modificações pendentes. Cria uma marca de recuperação para o comando ROLLBACK. Reverte todas as manipulações efetuadas. O Comando INSERT dados. O comando INSERT é usado para inserir registros nas tabelas do banco de A sintaxe de um comando INSERT é: INSERT INTO <tabela> (<colunas>) VALUES (<valores>) Exemplo 41: Quando são informados os dados de todas as colunas e na ordem padrão, não é necessário informar o nome das colunas. INSERT INTO SERVENTIA VALUES ( , 2A. VARA CRIMINAL, 0054 ); Exemplo 42: Os nomes das colunas foram informados desnecessariamente. INSERT INTO SERVENTIA (COD_SERV, DESC_SERV, COD_COMA) VALUES ( , 2a. Vara Criminal, 0054 ); Exemplo 43: Os nomes das colunas precisaram ser informados uma vez que os dados não estão na ordem padrão. INSERT INTO SERVENTIA (DESC_SERV, COD_COMA, COD_SERV,) VALUES ( 2a. Vara Criminal, 0054, );

28 O Comando UPDATE O comando UPDATE é usado para atualizar registros nas tabelas do banco de dados, segundo um critério especificado na cláusula WHERE. A sintaxe de um comando UPDATE é: UPDATE <tabela> SET <coluna1> = <valor1>,..., <colunan> = <valorn> WHERE <condição>; Exemplo 44: Atualização da coluna NOME a partir de um critério especificado. UPDATE FUNCIONARIO SET NOME = JAMES BOND WHERE NUM_MATR = 01/17007 ; Exemplo 45: Atualização da coluna NOME de todos os funcionários em que esta coluna não esteja em letras maiúsculas. UPDATE SET WHERE FUNCIONARIO NOME = UPPER(NOME) NOME <> UPPER(NOME); Exemplo 46: Atualização de duas colunas de um funcionário especificado. UPDATE FUNCIONARIO SET NOME = JOAQUIM, SALARIO = 1000 WHERE NUM_MATR = 01/21956 ; Exemplo 47: Utilização com subconsulta. Atualizar em 50% o salário de todos os funcionários que trabalham na DGTEC. UPDATE FUNCIONARIO SET SALARIO = SALARIO * 1.50 WHERE COD_SERV IN ( COD_SERV SERVENTIA WHERE DESC_SERV = DGTEC ); Exemplo 48: Quando a cláusula WHERE não é especificada, todas as linhas são atualizadas. UPDATE FUNCIONARIO SET SALARIO = SALARIO * 1.15;

29 O Comando DELETE O comando DELETE é usado para excluir registros das tabelas do banco de dados, segundo um critério especificado na cláusula WHERE. A sintaxe de um comando DELETE é: DELETE <tabela> WHERE <condição>; Exemplo 49: Apagar o funcionário com número de matrícula 01/ DELETE FUNCIONARIO WHERE NUM_MATR = 01/17007 ; Exemplo 50: Apagar todos os funcionários admitidos em janeiro de DELETE FUNCIONARIO WHERE TO_CHAR (DT_CAD, MM-YY ) = ; Exemplo 51: Apagar todos as linhas da tabela FUNCIONARIO. Utilize o comando COUNT(*) FUNCIONARIO antes e depois do DELETE, para verificar a exclusão dos registros. COUNT(*) FUNCIONARIO; DELETE FUNCIONARIO; COUNT(*) FUNCIONARIO; Utilize agora o comando ROLLBACK: ROLLBACK; Observe que o DELETE foi revertido e a tabela voltou a possuir o mesmo número de registros. COUNT(*) FUNCIONARIO; Exemplo 52: Apagar todos as linhas da tabela FUNCIONARIO. Confirmar a operação com o comando COMMIT. DELETE FUNCIONARIO; COMMIT; COUNT(*) FUNCIONARIO;

30 Controle de Transações Uma transação começa quando o primeiro comando SQL é executado e termina quando ocorre um dos seguintes eventos: Execução de um comando COMMIT ou ROLLBACK Execução de um comando DDL ou DCL (ocorre um COMMIT automático Antes e Depois da execução destes comandos. Logo, mesmo que o comando DDL ou DCL falhe, não será possível dar ROLLBACK nos comandos que antecederam este comando.). Ocorrência de certos tipos de erro como, por exemplo, um deadlock (*) (ocorre um ROLLBACK). Término de uma sessão (se o usuário sai normalmente do SQL*PLUS ocorre um COMMIT) Falha na estação (por exemplo, quando se desliga a máquina estando conectado pelo SQL*PLUS) ou no servidor. Quando uma transação termina, o próximo comando SQL inicia automaticamente a próxima transação. Uma transação contém: Um ou mais comandos DML Um comando DDL m comando DCL Observação: (*) Um deadlock ( travamento fatal ) é uma situação crítica que ocorre quando dois processos bloqueiam-se mutuamente, cada um deles aguardando que o outro libere um determinado recurso (por exemplo, o acesso exclusivo a uma linha de uma tabela). Como os dois processos já estão bloqueados, eles permanecem nesta situação indefinidamente. O servidor Oracle previne a ocorrência de deadlock, fazendo o ROLLBACK da transação de um processo que bloquearia um outro e levaria os dois a um deadlock. Vantagens do COMMIT ou ROLLBACK Garante a consistência dos dados agrupando operações logicamente relacionadas. Agrupa os comandos de manipulação logicamente relacionados. Permite que se veja o resultado de manipulações antes que elas sejam confirmadas. Controlando Transações Através de SavePoints INSERT INTO FUNCIONARIO VALUES ( 01/17007, 'JAMES BOND', 'TECNICO I', '226008', 260, '08-SEP-93', 31-MAR-64 );

31 INSERT INTO FUNCIONARIO VALUES ( 01/00001, 'EDSON ARANTES', 'ESCRIVAO', '226008', 3000, '02-JAN-73', 13-SEP-45 ); SAVEPOINT ABC; UPDATE FUNCIONARIO SET SALARIO = SALARIO * 1.15; IF (CONDIÇÃO) THEN ROLLBACK TO ABC; ELSE COMMIT; END IF; Observação: Se um único comando DML falha durante a execução de uma transação apenas este comando sofre ROLLBACK. Quanto às demais modificações caberá ao usuário dar COMMIT ou ROLLBACK explicitamente. O Estado dos dados antes do Commit ou Rollback Antes do commit os dados são vistos por outros usuários como se não tivessem sofrido nenhuma manipulação. As linhas afetadas são bloqueadas (locked). Outros usuários não podem modificar os dados manipulados uma vez que estes dados encontram-se bloqueados. O que Acontece após o Commit As manipulações efetuadas nos dados são escritas no banco. Os dados anteriores são permanentemente perdidos. Todos os usuários autorizados podem ver os resultados. Todas as linhas bloqueadas são liberadas. Todos os Savepoints são apagados. O que acontece após o Rollback As manipulações efetuadas nos dados são desfeitas. As linhas bloqueadas são liberadas. Rollback em nível de Comando Se um único comando DML falha durante sua execução, somente este comando sofre Rollback. Todas as demais modificações são provisoriamente mantidas até que um comando Commit ou Rollback seja executado.

32 Módulo 4 Manipulação de tabelas Criação de tabelas Uma tabela pode ser criada a qualquer momento, desde que haja espaço em disco. Quando uma tabela é criada, a sua definição é armazenada no Dicionário de Dados. A estrutura de uma tabela pode ser modificada a qualquer momento, sem a necessidade de se tirar o banco do ar. Não é necessário especificar o tamanho de uma tabela no momento da sua criação, embora isto seja possível. Para criar tabelas é preciso ter o privilégio de CREATE TABLE e o direito de utilizar algum espaço em disco alocado para o banco de dados. Estes direitos são concedidos para os usuários pelo Administrador de Banco de Dados (DBA). Regras para nomear uma tabela O nome de uma tabela deve começar por uma letra. Pode ter até 30 caracteres. Deve conter apenas: A-Z, a-z, 0-9, _, $ e #. Não pode ter o mesmo nome de qualquer outro objeto existente no esquema do usuário. Principais tipos de dados do Oracle NUMBER NUMBER(p,s) DATE CHAR(s) Número ponto flutuante com precisão de 38 dígitos significativos Valor numérico com um número máximo de dígitos igual a p, e com s posições decimais. Data e Hora String de caracteres de tamanho fixo igual a s. O valor de s pode variar de 1 a 255. VARCHAR2(s) String de caracteres de tamanho variável. Tamanho máximo igual a s. O valor de s pode variar de 1 a Criando uma tabela A sintaxe mais simples do comando SQL para criação de uma tabela é: CREATE TABLE <nome_tabela> (<coluna><tipo><tamanho> [NOT NULL] [{,<coluna><tipo><tamanho>[not NULL]}...]) ;

33 Exemplo 53: Criação da tabela FUNCIONARIO. CREATE TABLE FUNCIONARIO (NUM_MATR VARCHAR2(10), NOME VARCHAR2(30), SALARIO NUMBER(9,2), DT_CAD DATE, DT_NASC DATE, COD_CARG NUMBER(3), COD_SERV VARCHAR2(6)); Exemplo 54: Criação da tabela PROCESSO. CREATE TABLE PROCESSO (COD_PROC COD_SERV COD_ACAO COD_ADV VALOR_CAUSA DATA_CAD VARCHAR2(19) PRIMARY KEY, VARCHAR2(6), NUMBER(4), VARCHAR2(6), NUMBER(15,2), DATE); Criando uma tabela a partir de uma subconsulta É possível criar uma nova tabela a partir de uma consulta SQL, utilizando-se a cláusula AS <subconsulta> no comando CREATE TABLE. Exemplo 55: Criação uma cópia da tabela de Processo, utilizando subconsulta. CREATE TABLE PROCESSO2 AS * PROCESSO; Exemplo 56: Criação uma cópia da tabela de Processo, somente para algumas colunas, utilizando subconsulta. CREATE TABLE PROCESSO3 AS (COD_PROC, COD_SERV, COD_ACAO) PROCESSO; Alteração da estrutura de uma tabela A estrutura de uma tabela pode ser alterada com o comando ALTER TABLE que permite também: Adicionar e modificar colunas de uma tabela. Adicionar e remover constraints. Habilitar e desabilitar constraints.

34 Exemplo 57: Adicionando duas colunas a tabela Processo. ALTER TABLE PROCESSO ADD (IND_SEGR_JUST VARCHAR2(1), SIT_PROC VARCHAR2(2)); Exemplo 58: Modificando o tamanho de uma coluna na tabela Funcionário. ALTER TABLE FUNCIONARIO MODIFY (NOME VARCHAR2 (40)); Removendo uma tabela Uma tabela pode ser removida com o comando DROP TABLE. Tanto as linhas como a estrutura da tabela são definitivamente eliminadas. Exemplo 59: Removendo a tabela Funcionário. DROP TABLE FUNCIONARIO; O comando DROP TABLE não pode ser revertido por um ROLLBACK. Por se tratar de um comando DDL, quando executado, ele causa um COMMIT automático e deve ser utilizado com extrema cautela. Renomeando uma tabela Para modificar o nome de uma tabela, utilize o comando RENAME. RENAME <nome_tabela> TO <novo_nome>; Eliminando todas as linhas de uma tabela Para eliminar todas as linhas de uma tabela numa única operação, utilize o comando TRUNCATE TABLE. Somente os dados são eliminados, mantendo-se a estrutura da tabela preservada. TRUNCATE <nome_tabela>; Por se tratar de um comando DDL, este comando não permite ROLLBACK. Quando executado, ele causa um COMMIT automático e deve ser utilizado com extrema cautela.

35 Módulo 5 Definindo Restrições (Constraints) É possível definir restrições de integridade para os campos de uma tabela. Estas restrições são denominadas de constraints. Tipos de Constraints PRIMARY KEY FOREIGN KEY NOT NULL UNIQUE CHECK Chave primária Chave estrangeira Nulo não permitido Unicidade Verificação de uma condição Observações: É possível criar uma constraint após a criação da tabela. Uma constraint pode ser definida em nível de coluna ou em nível de tabela. Constraints são armazenadas no Dicionário de Dados e podem ser facilmente recuperadas se possuírem nomes razoáveis. Constraints Primary Key e Not Null Exemplo 60: Emprego de Constraints Primary Key e Not Null. CREATE TABLE FUNCIONARIO (NUM_MATR VARCHAR2(10) PRIMARY KEY, NOME VARCHAR2(30) NOT NULL, COD_CARG VARCHAR2(20), COD_SERV VARCHAR2(6), SALARIO NUMBER(9,2), DT_CAD DATE, DT_NASC DATE); Constraint Check e Foreign Key Exemplo 61: Constraint Check e Integridade Referencial com a própria tabela de Funcionários e com a tabela de Serventias. CREATE TABLE FUNCIONARIO (NUM_MATR VARCHAR2(10) PRIMARY KEY, NOME VARCHAR2(30) NOT NULL, CARGO VARCHAR2(20) CONSTRAINT FUNCIONARIO_CARGO_CK (CARGO IN ( TECNICO I, ESCRIVAO, JUIZ,

36 COD_SERV SALARIO DT_CAD DT_NASC OFICIAL DE JUSTICA, TECNICO II )), VARCHAR2(6) CONSTRAINT PROCESSO_COD_SERV_FK REFERENCES SERVENTIA (COD_SERV), NUMBER(9,2), DATE, DATE); Adicionando uma constraint a uma tabela. Exemplo 62: Adicionando uma constraint a uma tabela. ALTER TABLE PROCESSO ADD CONSTRAINT PROCESSO_COD_SERV_FK FOREIGN KEY (COD_SERV) REFERENCES SERVENTIA (COD_SERV); Exemplo 63: Como remover uma constraint de primary key forçando a remoção da respectiva constraint de foreign key. Removendo uma constraint de uma tabela. ALTER TABLE SERVENTIA DROP CONSTRAINT SERVENTIA_COD_SERV_PK CASCADE; Forma alternativa: ALTER TABLE SERVENTIA DROP PRIMARY KEY CASCADE; Exemplo 64: Como remover uma tabela e as constraints que dela dependam. DROP TABLE SERVENTIA CASCADE CONSTRAINTS; Observações sobre a Constraint Primary Key: A constraint Primary Key é uma combinação das constraints Unique e Not Null. Um índice único é automaticamente criado. Observações sobre a Constraint Unique: Designa uma coluna ou uma combinação de colunas de tal forma que duas linhas não possam ter o mesmo valor.

37 Valores nulos são aceitos. Automaticamente é criado um índice único para a(s) coluna(s) especificada(s). Observações sobre a Constraint Foreign Key: Estabelece um relacionamento com a chave primária ou única da mesma ou de outra tabela. Deve referenciar um valor existente na tabela pai ou ser nulo. Chaves estrangeiras são baseadas em dados e são puramente lógicas, isto é, não são ponteiros físicos. Uma chave estrangeira, parte de uma chave primária, não pode ser nula, pois uma chave primária não pode ser nula, nem parcialmente nula. Havendo a cláusula ON DELETE CASCADE, uma exclusão na tabela pai causa a exclusão das linhas relacionadas na tabela filho. Outras Formas de se Validar uma Restrição de Integridade Triggers 1 Procedimentos ou funções armazenados no servidor de banco de dados Através do código na própria aplicação. Observação: (1) Triggers (gatilhos) são procedimentos SQL que são executados automaticamente quando da ocorrência de um determinado evento no banco de dados (como, por exemplo, uma exclusão de um registro de uma tabela).

38 Módulo 6 Manipulação de outros objetos de banco de dados Visões (Views) Uma visão (view) é uma tabela virtual baseada em tabelas base ou em outras visões. Por ser uma tabela virtual, a visão existe somente como uma definição no Dicionário de Dados, não ocupando espaço no schema do usuário. Vantagens na Utilização de Visões: Restringem o acesso aos dados (linhas e colunas); Fazem com os usuários tenham que implementar consultas mais simples. Pode-se utilizar uma visão para gerar um dado derivado, inexistente na tabela base. Provêem independência de dados. Uma visão pode ser utilizada para recuperar dados de mais de uma tabela. Podem ser utilizadas na definição de grupos de usuários com direitos de acesso comuns. Cada grupo de usuários teria acesso a determinadas visões. Criando uma Visão A sintaxe do comando SQL para criação de uma visão é: CREATE [OR REPLACE] VIEW <nome_visão > AS subconsulta); Exemplo 65: Criação de uma visão sobre a tabela de funcionários CREATE VIEW V_FUNC AS NOME, DT_CAD FUNCIONARIO; Alterando uma visão Exemplo 66: Alteração de uma visão sobre a tabela de funcionários, adicionando a coluna NUM_MATR. CREATE OR REPLACE VIEW V_FUNC AS NUM_MATR, NOME, DT_CAD FUNCIONARIO; Removendo uma Visão Exemplo 67: Removendo uma visão. DROP VIEW V_FUNC;

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO 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

Leia mais

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) 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

Leia mais

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

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

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 Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

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

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

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

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

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

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

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

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

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

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

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

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

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

Á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: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo 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

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL 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

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Projeto e Implementação

Projeto e Implementação Felipe Nery Rodrigues Machado Banco de Dados Projeto e Implementação 2 Edição 4 Reimpressão São Paulo 2011 Editora Érica Ltda. 3 Projeto Sumário Capítulo 1 O Que É Projeto de Banco de Dados 15 Modelagem

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

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

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

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

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados SQL (Structured Querie Language) SQL é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para

Leia mais

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

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

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

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

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

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33 Preço R$ 129.00 Compre aqui SUPER PACOTÃO 3 EM 1: 186 Vídeoaulas - 3 dvd's - 10.5 Gybabyte. 1) SQL 2) Banco de Dados (Oracle 10g, SQL Server 2005, PostgreSQL 8.2, Firebird 2.0, MySQL5.0) 3) Análise e Modelagem

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

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

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

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

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

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

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios BANCO DE DADOS Fixação dos conteúdos Integridade Referencial Normalização Exercícios BANCO DE DADOS X SGBD Banco de Dados: Um "banco de dados" pode ser definido como um conjunto de "dados" devidamente

Leia mais

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

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

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

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Controle de transações em SQL

Controle de transações em SQL Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada. Conceitos básicos Angélica Toffano Seidel Calazans E-mail: angelica_toffano@yahoo.com.br Conceitos introdutórios de Modelagem de dados Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Leia mais

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

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL Objetivos Revisando a sintaxe SQL SELECT, UPDATE, INSERT, DELETE Manipulando expressões Funções matemáticas, etc Condições de Pesquisa Funções de Agregação

Leia mais

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

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si. NOME: BRUNO BRUNELI BANCO DE DADOS - ADS create database ProducaoMinerais use ProducaoMinerais create table Mineral( nome varchar(15) primary key, preco real) create table Pais( nome varchar(30) primary

Leia mais

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque. 061-2733589 fernando@cic.unb.br

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque. 061-2733589 fernando@cic.unb.br Bancos de Dados Fernando Albuquerque 061-2733589 fernando@cic.unb.br Tópicos Introdução O modelo relacional A linguagem SQL Introdução O que é um banco de dados : Coleção de informações que existe por

Leia mais

Introdução ao SQL Avançado

Introdução ao SQL Avançado Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Profa. Daniela Barreiro Claro

Profa. Daniela Barreiro Claro Profa. Daniela Barreiro Claro Modelar é criar representações do mundo real A modelagem relacional pode ser representada via MER (Modelo de Entidade Relacionamento) O MER define estruturas e restrições

Leia mais

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

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Banco de Dados I Linguagem SQL Parte 2 Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Introdução Como vimos, um SGBD possui duas linguagens: DDL: Linguagem de Definição de Dados. Usada

Leia mais

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

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 Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

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

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados. Fases do Projeto de um Banco de Dados Modelo ER O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados. É um modelo baseado na percepção

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

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

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

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

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos 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

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Conceitos da arquitetura Oracle e da Linguagem SQL Recuperar dados por meio de SELECT Criar relatórios de dados classificados

Leia mais

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

Leia mais

Disciplina de Banco de Dados Parte V

Disciplina de Banco de Dados Parte V Disciplina de Banco de Dados Parte V Prof. Elisa Maria Pivetta CAFW - UFSM Modelo de Dado Relacional O Modelo Relacional O Modelo ER é independente do SGDB portanto, deve ser o primeiro modelo gerado após

Leia mais

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php)

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Clínica Todos os exemplos apresentados utilizam o SGBD Postgre - open source Documentação: http://www.postgresql.org/docs (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Ambulatorios(numero, andar,

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

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

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS Unidade 1 - Introdução Dados; Banco de Dados; Base de Dados; Projeto de Banco de Dados.

Leia mais

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Aplicações - SQL Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Picture by Steve Kelley 2008 SQL SQL Structured Query Language Originalmente:

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos melissa@inf.puc-rio.br Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais