SQL. Jacir de Oliveira, José Alencar Philereno. Faculdade de Informática de Taquara. Igrejinha - RS Brazil



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

NOME SEXO CPF NASCIMENTO SALARIO

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

Orientação a Objetos

Structured Query Language (SQL)

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

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

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Nome: n.º WEB Série 2B 2C 2D 2E Barueri, 17/08/2009 2ª Postagem Disciplina: Gerenciamento e Estrutura de Banco de Dados Professor: Márcio

Comandos de Manipulação

Prof.: Clayton Maciel Costa

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

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

SQL UMA ABORDAGEM INTERESSANTE

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Conceitos de Banco de Dados

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

Comandos DDL. id_modulo = id_m odulo

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Informática I. Aula 6. Aula 6-12/09/2007 1

Engenharia de Software III

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

BDII SQL Junção Revisão 8

Introdução a Java. Hélder Nunes

Banco de Dados. Prof. Antonio

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

DML - SELECT Agrupando Dados

Características do PHP. Começando a programar

Tarefa Orientada 11 Junção Interna

Tarefa Orientada 16 Vistas

Introdução a Algoritmos Parte 04

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

CONVENÇÃO DE CÓDIGO JAVA

SQL Structured Query Language

Definida pelo American National Standard Institute (ANSI) em 1986

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

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

Linguagem de Consulta Estruturada SQL- DML

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Banco de dados 1. Linguagem DML SQL Select Avançado. Professor: Victor Hugo L. Lopes

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Treinamento sobre SQL

Banco de Dados. Prof. Leonardo Barreto Campos 1

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

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

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

Prof. Marcelo Machado Cunha

SQL DML. Frederico D. Bortoloti

CURSO DE PROGRAMAÇÃO EM JAVA

Introdução ao SQL Avançado

Tarefa Orientada 14 Subconsultas

2 echo "PHP e outros.";

Introdução aos cálculos de datas

Principais Comandos SQL Usados no MySql

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

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

SISTEMAS OPERACIONAIS

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

LINGUAGEM DE BANCO DE DADOS

Gerenciamento de Contatos

Resolução de problemas e desenvolvimento de algoritmos

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Banco de Dados. Microsoft Access

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

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

O que são Bancos de Dados?

15 Conceitos de Bancos de Dados com o LibreOffice Base

INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP

Algoritmos com VisuAlg

Prof. Ronaldo R. Goldschmidt. geocities.yahoo.com.br/ronaldo_goldschmidt

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira

SMS Corporativo Manual do Usuário

Dadas a base e a altura de um triangulo, determinar sua área.

Trecho retirando do Manual do esocial Versão 1.1

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

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

Conceitos Importantes:

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

Consultas SQL Parte II

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

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

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

MANUAL DE INSTRUÇÕES. Versão 1.0. Visão Transportador

Introdução à Programação

UFERSA Universidade Federal Rural do Semi-Árido. R Project R Project Criando e manipulando objetos.

Resumo da Matéria de Linguagem de Programação. Linguagem C

Noções de. Microsoft SQL Server. Microsoft SQL Server

Microsoft Access XP Módulo Um

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Criação de Consultas e Relatórios no Access CRIAÇÃO DE CONSULTAS E RELATÓRIOS NO ACCESS

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Gerenciamento de Projetos

GladiusSimpleReport. Este manual, visa mostrar, como utilizar o GladiusSimpleReport atravéz de exemplos.

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

Transcrição:

SQL Jacir de Oliveira, José Alencar Philereno Faculdade de Informática de Taquara Igrejinha - RS Brazil jacirdeoliveira@faccat.br, alencar@philler.com.br Resumo. Este artigo irá descrever a linguagem de programação SQL, dando-nos uma noção básica de seus comandos e suas utilidades que auxiliam na elaboração de tarefas, também demonstração de programas em algumas linhas de comando, na sua funcionalidade com comando de organização e busca em uma tabela de dados. Esta funcionalidade é fornecida por uma tabela que é executado em nossos programas. 1 Introdução Veremos um pouco sobre a linguagem SQL, ele foi desenvolvido para ser uma linguagem padrão para operações com Banco de Dados. A lingüagem SQL foi elaborada para ser independente de hardware ou do software. Ao usar o SQL, você não precisa saber a respeito do software de banco de dados ou do hardware envolvido em uma operação. Tudo o que você precisa conhecer são os comandos ou instruções SQL padrão para solicitar informações, que obrigatoriamente é o mesmo em todos os sistemas que utilizam o SQL. Tambem veremos aspectos atuais e apontar algumas tendências, estabelecer uma base para compreender detalhadamente como os comandos SQL são utilizados para definir e modificar os dados, pois existem várias regras e conceitos implementados pelos bancos de dados SQL de forma inconsistente. A linguagem está presente nos mais variados sistemas de informação, podendo ser encontrada, em aplicativo rodando sob um simples PDA ou em uma consulta complexa realizada sob um mainframe. Ou ainda, pode estar codificada em sistemas escritos com modernas linguagens de programação, como Java, ou mesmo em programas feitos em COBOL. Em se tratando de manipulação de dados, a SQL é quase onipresente hoje em todos os sistemas. 2 Conceitos básicos Uma entrada SQL é formada por uma seqüência de comandos. Um comando é composto por uma seqüência de termos (tokens) terminada por um ponto-e-vírgula (";"). O fim do fluxo de entrada também termina o comando.os termos são válidos dependendo da sintaxe particular de cada comando. Um termo pode ser uma palavra chave, um identificador, um identificador entre aspas, um literal ou constante, ou um caractere especial. Geralmente os termos são separados por espaço em branco, tabulação ou nova-linha, mas não há necessidade se não houver ambigüidade, normalmente isto só acontece quando um caractere especial está adjacente a um termo de outro tipo.

A SQL é uma linguagem padrão, padronizada pela ANSI (American National Standard Institute), para banco de dados. Conhecendo a Linguagem SQL é possível programar em qualquer SGBD (Sistema Gerenciador de Banco de Dados). 2.1.Paradigma da Linguagem SQL Ela possui uma Linguagem declarativa. 3 Funcionalidade Veja abaixo uma seqüência de três comandos, um por linha, embora isto não seja necessário, pode haver mais de um comando na mesma linha, assim como um único comando pode ocupar várias linhas. SELECT * FROM MINHA_TABELA; UPDATE MINHA_TABELA SET A = 5; INSERT INTO MINHA_TABELA VALUES (3, 'Ola pessoal'); A sintaxe do SQL não é muito consistente em relação a quais termos identificam comandos e quais são operandos ou parâmetros. Geralmente os primeiros termos são o nome do comando. Além disso, comentários podem estar presentes na entrada SQL os comentários, eles não são termos, pois são equivalentes a espaços em branco. 4 Identificação das palavras chave No exemplo acima o termo SELECT, e assim como outros termos, como UPDATE e VALUES são exemplos de palavras chave, são palavras que possuem um significado definido pela linguagem SQL. Os termos MINHA_TABELA e A são exemplos de identificadores, os quais identificam nomes de tabelas, colunas e outros objetos do banco de dados, Os identificadores e as palavras chave do SQL devem iniciar por uma letra (a-z e, também, letras com diacrítico - áéç... - e letras não latinas), ou o caractere sublinhado (_). Os demais caracteres de um identificador, ou da palavra chave, podem ser letras, sublinhados, dígitos (0-9) O padrão SQL não irá definir palavra chave contendo dígitos, começando ou terminando por sublinhado e, portanto, os identificadores com esta forma estão a salvo contra possíveis conflitos com extensões futuras do padrão. O sistema utiliza não mais que NAMEDATALEN-1 caracteres de um identificador; nomes maiores podem ser escritos nos comandos, mas são truncados. Por padrão NAMEDATALEN é 64 e, portanto, o comprimento máximo de um identificador é 63. Se este limite causar problema, pode ser aumentado modificando a constante NAMEDATALEN no arquivo. Os identificadores e as palavras chave não fazem distinção entre letras maiúsculas e minúsculas. Como exemplo. UPDATE MINHA_TABELA SET A = 5; pode ser escrito de forma equivalente como update Minha_Tabela SeT a = 5; Normalmente utiliza-se a convenção de escrever as palavras chave em letras maiúsculas e os nomes em letras minúsculas. UPDATE minha_tabela SET a = 5;

5 Aplicabilidade da Linguagem SQL A linguagem SQL é uma linguagem de consulta a banco de dados. Ela é bem diferente das linguagens comuns de programação, a principal diferença é que a linguagem SQL não é uma linguagem procedural, na linguagem SQL não se especifica como, ou em que ordem, serão executados os processos que irão fornecer os resultados requeridos, informamos o que queremos e o sistema de banco de dados é o responsável por escolher adequadamente os procedimentos a serem executados, de forma que os resultados sejam obtidos com a maior eficiência possível. É Uma linguagem relacional, o ideal para o tratamento de dados relacionados, ou de manipulação de dados, isto é, com a SQL podemos tanto definir e construir relações (tabelas), como manipular diversas relações de forma a obter resultados desejados. A linguagem SQL está presente numa imensa quantidade de sistemas de banco de dados, ela pode estar visivel ou mascarada (embutida). Na forma visível o usuário digita os comandos na linguagem SQL diretamente em um prompt de comando, de onde também é possivel visualizar os resultados. Já na forma embutida a linguagem SQL não está visivel diretamente ao usuário, os programadores podem imbutir os comandos em SQL, dentro de um programa, e criar uma interface mais amigável com o usuário comum, este pode interagir mais facilmente com a interface do que com a própria linguagem SQL. Desta forma usuários comuns podem manipular um banco de dados sem mesmo ter um conhecimento de SQL. 6. Modelo básico SQL Nas tabelas abaixo alguns comandos da linguagem SQL, mostrando um pouco da sua sintaxe, uma pequena base de dados, as quais os comandos exemplificados abaixo farão referência. Contas numero_conta cidade_agencia saldo_conta A-100 Brasília 200 A-110 São Paulo 540 A-150 São Paulo 1200 A-160 Salvador 800 A-180 Rio de Janeiro 400 A-210 Brasília 1700 A-220 Salvador 1100 A-260 Salvador 600 A-290 Rio de Janeiro 600 A-300 São Paulo 1560 Clientes cpf nome_cliente numero_conta 748.894.548-28 Maurício Souza A-100 684.521.141-95 Sara Braga A-110 784.222.536-47 Arnaldo Silva A-150 547.246.899-65 Jaques Cruz A-160 447.548.623-65 Fernanda Mota A-180 244.652.334-95 Cláudia Melo A-210 845.214.345-84 Heirrique Soares A-220 641.324.485-64 Mônica Oliveira A-160

214.257.300-07 João Matusalem A-260 451.670.014-34 Carlos Araujo A-290 Na sintaxe básica da linguagem SQL, no comando select, todas as operações são feitas sob tabelas ou relações e temos como resultado também uma tabela. select [coluna_1,..., coluna_n] from [tabela_1,..., tabela_m] where [condição_1...] order by [coluna_1,..., coluna_t] [desc asc]; Após o nome select deve ser informado uma lista com os nomes das colunas que deverão aparecer no resultado, caso seja desejado que todas as colunas da relação apareçam no resultado basta colocar um asterisco ( * ) no lugar da lista. Após o nome from deve ser fornecido uma lista com o nome das tabelas utilizadas na pesquisa. Caso haja mais de uma tabela nesta lista, e se houver um mesmo nome de uma coluna em duas ou mais tabelas devemos, em cada referência a esta coluna, informar de qual tabela esta coluna pertence, fazemos isto da seguinte forma: Nome_tabela.nome_coluna coloca-se o nome da tabela, seguido de( ; ). Após a palavra where segue uma condição, ou conjunto de condições que tem a funcionalidade de limitar as linhas a serem mostradas na tabela de saída. A utilização da cláusula where é optativa. Após a palavra order by segue uma lista de colunas (campos de dados) pelo qual se deseja ordenar as linhas da tabela de saída. Pode-se acrescentar ainda as palavras desc que indica ordem decrescente, ou a palavra asc que indica ordem crescente, caso seja omitida as duas opções, a ordem será por default crescente,e ao final do código da pesquisa, isto é, o conjunto de instruções discutido acima, deve-se acrescentar um sinal de ponto-e-virgula ( ; ), que indica o fim do comando. Exemplos de consultas. select * from contas where saldo_conta > 750; A consulta fica assim numero_conta cidade_agencia saldo_conta A-150 São Paulo 1200 A-160 Salvador 800 A-210 Brasília 1700 A-220 Salvador 1100 A-300 São Paulo 1560 Uma consuta por numero de conta Select *from contas, clientes where contas.numero_conta = 'A-180'; Os dados da coluna em comum as duas tabelas 'numero_conta' através da condição 'contas.numero_conta = clientes.numero_conta', concatenamos cada linha da tabela contas com apenas uma linha da tabela clientes, as que possuíam o mesmo número de conta.

numero_conta cidade_agencia saldo_conta CPF nome_cliente numero_conta A-180 Rio de Janeiro 400 748.894.548-28 Maurício Souza A-100 A-180 Rio de Janeiro 400 684.521.141-95 Sara Braga A-110 A-180 Rio de Janeiro 400 784.222.536-47 Arnaldo Silva A-150 A-180 Rio de Janeiro 400 547.246.899-65 Jaques Cruz A-160 A-180 Rio de Janeiro 400 447.548.623-65 Fernanda Mota A-180 A-180 Rio de Janeiro 400 244.652.334-95 Cláudia Melo A-210 A-180 Rio de Janeiro 400 845.214.345-84 Heirrique Soares A-220 A-180 Rio de Janeiro 400 641.324.485-64 Mônica Oliveira A-160 A-180 Rio de Janeiro 400 214.257.300-07 João Matusalem A-260 A-180 Rio de Janeiro 400 451.670.014-34 Carlos Araujo A-290 Este trata duas tabelas. Quando isto acontesse, a pesquisa ocorrerá sob uma nova tabela, que é formada através do produto cartesiano das tabelas relacionadas, dito de outra forma, cada linha de uma tabela será concatenada (i.e. juntada, unida) com todas as linhas das outras tabelas que estiverem relacionadas. Portanto para uma relação de duas tabelas onde cada uma tem 10 linhas como no exemplo, a tabela resultante do produto cartesiano terá 10 x 10 = 100 linhas. Isto pode ser facilmente visto no nosso exemplo, já que apenas uma linha da tabela contas, se concatenou com as outras 10 linhas da tabela clientes, inclusive com a repetição da coluna 'numero_conta', que está presente nas duas tabelas originais. A nossa tabela de saída teve apenas 10 linhas devido ao fato de termos infromado uma cláusula where, do comando SQL, na qual a condição dizia que o campo 'numero_conta' da tabela contas deveria ser igual a 'A-180'. Quando fazemos a junção de duas tabelas podemos gerar linhas que não possuem um significado coerente como nesse exemplo acima. Para gerar uma relação entre tabelas de forma que não ocorra este problema, devemos unir as linhas pela igualdade dos dados das colunas que estão presentes nas tabelas relacionadas. Como o exemplo seguinte. select contas.numero_conta, nome_cliente, cidade_agencia, saldo_conta from contas, clientes where contas.numero_conta = clientes.numero_conta and saldo_conta > 1000 order by saldo_conta desc; Aqui igualamos os dados da coluna em comum as duas tabelas 'numero_conta' através da condição 'contas.numero_conta = clientes.numero_conta', concatenamos cada linha da tabela contas com apenas uma linha da tabela clientes, as que não possuíam o mesmo número de conta, mas com saldo maior que R$ 1000. dados mostrados numa única linha. numero_conta nome_cliente cidade_agencia saldo_conta A-210 Cláudia Melo Brasília 1700 A-300 Carlos Araujo São Paulo 1560 A-150 Arnaldo Silva São Paulo 1200 A-220 Heirrique Soares Salvador 1100

6.1 Caracteres especiais Alguns caracteres não alfanuméricos possuem significado especial diferente de ser um operador. Os detalhes da utilização podem ser encontrados nos locais onde a sintaxe do respectivo elemento é descrita. Esta seção se destina apenas a informar a existência e fazer um resumo das finalidades destes caracteres. O caractere dólar ($) seguido por dígitos é utilizado para representar parâmetros posicionais no corpo da definição de uma função. Em outros contextos o caractere dólar pode ser parte de um identificador. Os parênteses (()) possuem seu significado usual de agrupar expressões e impor a precedência. Em alguns casos os parênteses são necessários como parte fixa da sintaxe de um determinado comando SQL. Os colchetes ([]) são utilizados para selecionar elementos da matriz. As vírgulas (,) são utilizadas em algumas construções sintáticas para separar elementos da lista. O ponto-e-vírgula (;) termina um comando SQL, não podendo estar em nenhum lugar dentro do comando, exceto dentro de constante do tipo cadeia de caracteres ou identificadores entre aspas. Os dois-pontos (:) são utilizados para selecionar "faixas" em matrizes. Em certos dialetos do SQL (como a linguagem SQL embutida), os dois-pontos são utilizados como prefixo dos nomes das variáveis. O asterisco (*) possui um significado especial quando utilizado no comando SELECT ou na função de agregação COUNT. O ponto (.) é utilizado nas constantes numéricas, e para separar os nomes de esquemas, tabelas e colunas. 7 Referencias www.microsoft.com/sql www.w3schools.com/sql/default.asp www.sqlmagazine.com.br www.devmedia.com.br/sqlmagazine