Database – Instrução Select – DQL – Oracle – IBM DB2 – Microsoft SQL Server – Sql

Publicado: 19 de maio de 2014 em Sql

A instrução Select é sem duvida é a instrução mais importante de um programa que manipula dados, não importa o quão  robusto é o seu servidor, não importa qual é o seu banco de dados e nem o quão afinado está a sua configuração, instruções “Select” mal feitas podem ser responsáveis pela lentidão de um sistema.

É possível usar a instrução Select de varias maneiras diferentes, este comando é muito flexível e pode ser associado a outras instruções SQL a fim de se obter um resultado especifico, por exemplo é possível rodar uma instrução que seleciona dados em cima do resultado de outra instrução que seleciona dados,  é possível unir, filtrar, calcular, relacionar e etc.

É de extrema importância que instruções Select sejam escritas da forma mais correta e enxuta possível, pois com uma abrangência enorme de recursos é fácil extrapolar o sentido da palavra “criatividade” na hora de escrever está instrução, causando lentidão no sistema e como diz o ditado “de grão em grão a galinha enche o papo”, para desespero de alguns de Select em Select o sistema pode ficar cada vez mais lento.

O que você precisa saber na hora de criar uma instrução Select?

É essencial que o desenvolvedor tenha conhecimento do que é e como funcionam as Tablespaces (Oracle e IBM DB2 ou Filegroups MSSQL). Uma Tablespace é onde os servidores de banco de dados armazenam os dados logicamente.

O que todos devemos saber é que um banco de dados possui Tablespaces do sistema, estas são criadas durante a instalação do banco de dados, e exigem uma configuração especifica para que haja uma boa performance do seu banco de dados, mas em nosso caso especifico existe uma Tablespace que nos afeta diretamente e o seu nome pode variar mas é conhecida como Tablespace Temporária.

Tablespace Temporária

Tablespaces temporárias são usadas ​​para operações especiais, particularmente para classificar os resultados dos dados no disco e geralmente para manipular operações SQL que são muito grandes para ser executada somente pela memoria RAM. Utilizada para armazenar objetos transitórios durante as classificações e agrupamentos de dados durante a execução de uma SQL contendo as cláusulas ORDER BY e GROUP BY, entre outras.  Apesar das Tablespaces temporárias não serem tão criticas e poderem ser excluídas e recriadas quando necessário é preciso saber que elas existem, que precisam de configuração especial, que são manipuladas, na grande maioria das vezes de um modo invisível ao desenvolvedor.

Oracle: http://docs.oracle.com/cd/B10500_01/server.920/a96524/c04space.htm

IBM DB2: https://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.dbobj.doc%2Fdoc%2Fc0004935.html

Mssql Server: http://msdn.microsoft.com/en-us/library/ms190768.aspx

Nos links acima você encontra a documentação completa sobre as Tablespaces de cada banco de dados, o Microsoft SQL Server não possui Tablespaces e sim Filegroups apesar do conceito ser muito parecido existe importantes diferenças, o link acima mostra como funciona o Database TEMPDB do MSSQL.

Data Query Language

Embora tenha apenas um comando, a DQL é a parte do SQL mais utilizado. O comando SELECT permite ao usuário especificar uma consulta “query” como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas.

SELECT

A instrução mais básica do comando Select permite que você retorne dados criados por você mesmo em tempo de execução do script SQL, é possível criar campos com conteúdos e nomes, somar dados, retornar variáveis do sistema e etc. Este procedimento básico varia de banco para banco, por exemplo o Oracle possui uma tabela chamada DUAL para este tipo de procedimento, o IBM DB2 possui a tabela sysibm.sysdummy1 e também possui a tabela DUAL, já o Microsoft SQL Server possui uma sintaxe diferente para a instrução Select eliminando a obrigatoriedade da clausula From.

Oracle:

Oracle - Dual

Oracle – Dual

IBM DB2:

IBM DB2 SYSDummy1

IBM DB2 SYSDummy1

Microsoft SQL Server:

MSSQL Server

MSSQL Server

Retornando dados de uma tabela

Para retornar campos de uma tabela todos os 3 bancos possuem a mesma sintaxe básica:

Select * from tabela

Para a documentação completa desta instrução segue os links oficiais:

Oracle: http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm

IBM DB2: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc%2Ftpc%2Fdb2z_sql_selectclause.htm

MSSQL: http://msdn.microsoft.com/pt-br/library/ms189499(v=sql.120).aspx

Exemplo:
No exemplo a seguir escrevemos três instruções Select que retornam dados criados pelo usuário em tempo de execução.

Oracle

Select
  'Desenvolvimento Aberto' as titulo,
  'Criando um resultado em tempo de execução' as aula,
  '20' as valor1,
  '10' as valor2,
  20 + 10 as total
from DUAL

IBM DB2

Select
  'Desenvolvimento Aberto' as titulo,
  'Criando um resultado em tempo de execução' as aula,
  '20' as valor1,
  '10' as valor2,
  20 + 10 as total
 from sysibm.sysdummy1

Microsoft SQL Server

Select
  'Desenvolvimento Aberto' as titulo,
  'Criando um resultado em tempo de execução' as aula,
  '20' as valor1,
  '10' as valor2,
  20 + 10 as total
Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s