Sumário
Sistema: Gerenciador de Aplicativos Prosoft (GAP)
Contexto: Este artigo possui comandos básicos da base de dados para auxiliar o analista de nível 2 em sua rotina de trabalho.
Informações Adicionais: Não se aplica.
Resolução
1- Instruções
SQL (Strucutured Query Language) ou Linguagem de Consulta Estruturada: É uma linguagem de pesquisa declarativa padrão para bancos de dados relacionais.
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 complexas.
Sintaxe:
select * from name_table;
select name_column from name_table;
FROM - Utilizado para especificar a tabela ou tabelas onde os registros serão selecionados.
WHERE - Utilizado para especificar as condições que devem reunir os registros que serão selecionados.
Sintaxe:
Select * From name_table Where condição;
Select name_column From name_table Where condição;
GROUP BY - Utilizado para separar os registros selecionados em grupos específicos.
Sintaxe:
Select name_column1, Sum(name_column2) From name_table Group By name_column1;
HAVING COUNT - Utilizado para expressar a condição que deve satisfaer cada grupo.
Sintaxe:
Select name_column From name_table Group By name_column Having Count(name_column) > n;
ORDER BY - Utilizada para ordenar os registros selecionados com uma ordem específica.
Sintaxe:
Select name_column1, name_column2 From name_table Order By name_column1;
Obs.: Pode ser ordenado de forma ascendente ou descendente.
ascendente = asc;
descendente = desc;
DISTINCT - Utilizada para selecionar dados sem repetição.
Sintaxe:
Select Distinct(name_column) From name_table;
2- Operadores Lógicos
AND - E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam corretos.
Sintaxe:
Select name_column1 From name_table Where name_column1 = x and name_column2 = y;
OR - Ou lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto.
Sintaxe:
Select name_column1 From name_table Where name_column1 = x or name_column2 = y;
NOT - Negação lógica. Devolve valor contrário da expressão.
3- Operadores Relacionais
Operador | Descrição |
< | Menor |
> | Maior |
<= | Menor ou Igual |
>= | Maior ou Igual |
= | Igual |
!= ou <> | Diferente |
IN (LISTA) - Utilizado para verificar se o valor procurado está dentro de uma lista. Ex.: valor IN (1, 2, 3, 4).
Sintaxe:
Select name_column From name_table Where name_column IN (x, y, ..., z);
BETWEEN - Utilizado para especificar um intervalo de valores.
Select * From name_table Where id Between 10 and 16;
LIKE - Utilizado na comparação de um modelo e para especificar registros de um banco de dados.
Ex.:
Select * From name_table Where name_column Like ‘%F’;
Select * From Cidades Where name_cid Like ‘São%;
4- Funções de Agregação
Count() – Contar
Utilizada para devolver o número de registros da seleção.
Select Count(*) From name_table;
Select Count(id) From name_table;
Max() – Máximo
Utilizado para devolver o maior valor de um campo especificado.
Select Max(id) From name_table;
Min() – Mínimo
Utilizado para devolver o menor valor de um campo especificado.
Select Min(id) From name_table;
Sum() – Soma
Utilizado para devolver a soma de todos os valores de um campo determinado.
Select Sum(vendas) From name_table;
Avg() - Média
Utilizado para calcular a média dos valores de um campo determinado.
Select AVG(vendas) From name_table;
Alias (apelidar tabela e colunas)
Utilizado para apelidar colunas ou tabelas.
Colunas: Ajudam a organizar o resultado.
Select Sum(vendas) as “Total de Vendas” From name_table;
Tabelas: Utilizado quando há consultas que dependem do relacionamento de duas ou mais tabelas, também nos ajuda a escrita do script pois ao apelidar a tabela não precisamos mais nos referir a ela com o seu nome completo, podemos utilizar apenas seu apelido.
Select a.nome, b.cpf From funcionario as a, documento as b;
Select a.nome, b.cpf From funcionario as a Inner Join documento as b ON b.documento = a.doc;
Concat(concatenar colunas para consulta)
Retorna uma cadeia de caracteres que é o resultado da concatenação de dois ou mais valores.
Exemplo:
select concat(column1, column2) From name_table;
Substring(coluna, início, tamanho)
Retorna parte de uma expressão de caractere de texto.
Substr(str, pos)
Substr(str, pos, len)
Exemplo:
select substr(name_column, 0, 8) as texto From name_table;
Convert(coluna, tipo_sql)
Converte uma expressão de um tipo de dados em outro.
Exemplo:
select convert(name_colum, SQL_INTEGER) as c From name_table;
SQL Length (tamanho)
Retorna o comprimento de uma cadeia.
Select length(name_colum) as tam From name_table;
SQL Create Index
O uso de índices pode trazer grandes melhorias para o desempenho do banco de dados.
Sem um índice, o sistema da base de dados lê toda a tabela (este processo é denominado 'pesquisa da tabela') para localizar as informações pretendidas. Através de um índice adequado, o sistema da base de dados pode percorrer primeiro o índice para descobrir onde obter os dados e, em seguida, aceder diretamente aos locais para obter os dados necessários. Assim é muito mais rápido.
Como tal, muitas vezes é preferível criar índices nas tabelas. Um índice pode abranger uma ou mais colunas. A sintaxe geral para criar um índice é:
CREATE INDEX “nome_indice” ON table_name (name_column);
SQL Alter Table
Após a criação de uma tabela muitas vezes ocorre a necessidade de alterar a estrutura da tabela. Exemplo:
Adicionar uma coluna.
Remover uma coluna.
Alterar o tipo de dados de uma coluna.
Aterar o nome de uma coluna.
Alteração ou criação de uma Chave Primária ou Estrangeira entre outros.
A sintaxe SQL para ALTER TABLE:
Alter table name_table [alter specification]
[alter specification] depende do tipo de alteração que pretendemos efetuar. Para os fins acima citados, as instruções [alter specification] são:
Adicionar uma coluna: ADD "coluna 1" "tipo de dados para a coluna 1"
Remover uma coluna: DROP "coluna 1"
Alterar o nome de uma coluna: CHANGE "antigo nome da coluna" "novo nome da coluna" "tipo de dados para novo nome da coluna"
Alterar o tipo de dados de uma coluna: MODIFY "coluna 1" "novo tipo de dados"
SQL Drop Table
Utilizado para remover uma tabela da base de dados.
Sintaxe:
DROP TABLE name_table;
SQL Insert Into
Utilizado para inserir dados em uma tabela.
Sintaxe:
insert into table_name (name_column1, name_column2) values (valor 1, valor 2);
insert into table_name (select * from table_name);
SQL Update
Uitlizado para atualizar dados já existentes na tabela.
Sintaxe:
update name_table Set name_column = valor Where [condição];
update name_table set column1 = valor1, column2 = valor2;
SQL Delete from
Utilizado para deletar registros da tabela, podemos deletar apenas registros específicos ou toda a tabela.
Sintaxe:
Delete from name_table; (deleta todos os registros)
Delete from name_table where column1 = valor;
5- Criando View
Criar view na tabela CFOP:
CREATE VIEW lfsvw_cfopccg as select c.id, c.fk_categ, c.fk_cd as fk_grupo, c.codigo, c1.descr as ds_categ, c2.descr as ds_grupo, c.descr from ( KPROEMP00\CFOP as c left outer join KPROEMP00\CFOP as c1 on c.fk_categ = c1.codigo ) left outer join KPROEMP00\CFOP as c2 on c.fk_cd = c2.codigo
Create table para arquivos BTR
O comando set truenullcreate = off# deve ser utilizado sempre que for realizar a criação de uma tabela em arquivos BTR.
Esse comando evita que as informações da tabela sejam “embaralhadas”.
set truenullcreate = off#
CREATE TABLE "prg_emp_plano"(
"epl_empresa" CHAR(4),
"epl_inicio_exerc" CHAR(4),
"epl_codigo_plano" CHAR(4),
"epl_reserva" CHAR(38));
CREATE INDEX "IDX_emp_plano1" ON "prg_emp_plano"("epl_empresa", "epl_inicio_exerc");
CREATE INDEX "IDX_emp_plano2" ON "prg_emp_plano"("epl_empresa", "epl_codigo_plano");