Postagens

SQL - Filtros de Seleção

7. SQL - FILTROS DE SELEÇÃO  Os comandos abordados até então, são utilizados em relação à estrutura das tabelas em sua totalidade.  Para busca e seleção de áreas específicas das tabelas devemos acrescentar o complemento WERE em alguns dos comandos abordados anteriormente para que a operação somente seja realizada nos registros que atenderem as condições especificadas, neste sentido, faz-se necessário a abordagem do conceito de operadores.  OPERADORES RELACIONAIS:  • Igual (=), Diferente (!=)  • Maior (>), Maior ou igual (>=)  • Menor (<), Menor ou igual (<=)  • Nulo (IS NULL), ou não-nulo (IS NOT NULL)  • Entre intervalo (BETWEEN)  • Valor parcial (like)  OPERADORES LÓGICOS:  • AND  • OR  • NOT  Para exemplo de aplicação, adotemos duas situações distintas:  1º Buscar no banco de dados todas as informações referentes a uma determinada pessoa através do nº de CPF;  2º Pesquisar quantas pessoas com ...

SQL - Indice, Chave e Relacionamento da Tabela

SQL - Indice da Tabela Criar Índice = CREATE INDEX Nome ON Alterar Índice = ALTER INDEX TabelaEColuna Exclusão Indice = DROP INDEX Nome Propriedade Nome OBS: O comando DROP INDEX remove o índice, mas não remove os dados no campo em questão. 4. NORMALIZAÇÃO DE DADOS  (RELACIONAMENTOS E CHAVES)  Normalização de dados é um termo que está intimamente ligado a Relacionamentos, que por sua vez é ligado a chaves.  • Relacionamentos = São ligações entre tabelas onde existes um ou mais campos em comum entre as tabelas relacionadas conhecidos como campos chaves.  • Campos Chaves = São valores que apresentam “referência” de uma tabela em outra (chave de identificação). As tabelas dos bancos de dados são compostas por linhas e colunas, sendo que algumas das colunas podem apresentar características especificas de acordo com a forma com que a tabela foi construída ou da aplicação que será construída sob o banco de dados, geralmente algumas colunas são criadas especificamente para ...

SQL - Agrupamento GROUP BY

GROUP BY - Agrupamentos  As funções de grupo operam sobre grupos de tuplas(linhas). Retornam resultados baseados em grupos de tuplas em vez de resultados de funções por tupla individual.  A claúsula "group by" do comando "select" é utilizada para dividir tuplas em grupos menores.  A cláusula "GROUP BY" pode ser usada para dividir as tuplas de uma tabela em grupos menores. As funções de grupo devolvem uma informação sumarizada para cada grupo.  16) Apresente a média de salário pagos por departamento.  Resp: SELECT DUPNUME, AVG(EMPSALA) FROM EMP GROUP BY DEPNUME;  Observação: Qualquer coluna ou expressão na lista de seleção, que não for uma função agregada, deverá constar da claúsula "group by". Portanto é errado tentar impor uma "restrição" do tipo agregada na cláusula Where. Having  A cláusula "HAVING" pode ser utilizada para especificar quais grupos deverão ser exibidos, portanto restringindo-os.  17) Retome o problema anteri...

SQL - Funções de Caracteres

SQL - Funções de Caracteres  Lower - força caracteres maiúsculos aparecerem em minúsculos.  Upper - força caracteres minúsculos aparecerem em maiúsculos.  Concat(x,y)- concatena a string "x" com a string "y".  Substring(x,y,str) - extrai um substring da string "str", começando em "x", e termina em "y".  To_Char(num) - converte um valor numérico para uma string de caracteres.  To_Date(char,fmt) - converte uma string caracter em uma data. ^Q - converte data para o formato apresentado.  Apresente o nome de todos os empregados em letras minúsculas.  Resp: SELECT LOWER( EMPNOME ) FROM EMP;  Apresente o nome de todos os empregados (somente as 10 primeiras letras).  Resp: SELECT SUBSTRING (1,10,EMPNOME) FROM EMP;  Apresente o nome de todos os empregados admitidos em 01/01/80.  Resp: SELECT * FROM EMP WHERE EMPADMI = ^Q"DD-AAA-YYYY"("01-JAN-1980");  ou SELECT * FROM EMP WHERE EMPADMI = ^Q("01-JAN-1980");  Funções A...

SQL - União de Consultas

Uniões  Podemos eventualmente unir duas linhas de consultas simplesmente utilizando a palavra reservada UNION.  Liste todos os empregados que tenham códigos < 10 ou Funcionários que trabalhem em departamentos com código maior que 10.  Resp: Poderíamos resolver esta pesquisa com um único Select, porém devido ao fato de estarmos trabalhando em nosso exemplo com apenas duas tabelas não conseguimos criar um exemplo muito adequado para utilização deste recurso.  Select * From Emp Where EmpNume <  10 Union (Select * From Emp Where DepNume < 10);

SQL - Relatórios

PARTE III - Relatórios  Comando:  REPORT DISTINCT / UNIQUE [atributo(s)] REPORTTOP PAGETOP TOP DETAIL NONE BOTTOM PAGEBOTTOM REPORTBOTTOM FROM [tabelas] [WHERE clausula-where] [GROUP BY clausula-grupo] [ORDER BY clausula-order by];  Como exemplo converteremos um simples Select em um Report, temos:  SELECT EMPNOME FROM EMP WHERE DEPNUME = 1000; REPORT DETAIL EMPNOME WHERE DEPNUME = 1000;  Podemos direcionar a saída de um relatório tanto para um arquivo como para uma impressora.  Para um arquivo:  REPORT ON “RELAT.DAT” ...  Para uma impressora: REPORT ON LP:” ...  Agora incrementando um report temos:  REPORT REPORTTOP COL 10,  “*** RELATORIO DE FUNCIONARIOS *** “,  TODAY %Q”DD/MM/YY”, SKIP,  COL 10, “=================================“,  SKIP 2 DETAIL COL 10, NOME %C22, SALARIO %FS,  ADMISSAO %Q”DD/MM/YY”  EPORTBOTTOM COL 10, “=================================“, SKIP, COL 20, “TOTAL:”, TOTAL(SALARIO) FROM EMP O...

SQL - Consultas SELECT

Parte II - Comandos de Consulta ao Esquema  Devemos ressaltar que a linguagem SQL é utilizada tanto pelos profissionais responsáveis pelos dados, onde é ressaltada a figura do Administrador do Banco de Dados e dos Analistas de Dados, como também pelos desenvolvedores de Aplicações.  Enquanto àqueles estão preocupados com o desempenho, integridade do Banco de Dados e utilizam toda gama de recusos disponíveis no SQL, estes estão preocupados apenas em "transformar dados em informações", portanto para os desenvolvedores costuma-se dizer que conhecer o "select" já basta. Em nosso curso enfatizaremos a importância de TODOS os comandos do SQL, mas sabemos de antemão que os professores responsáveis pelas linguagens IDEO, Visual Basic e Delphi, ressaltarão a preponderância da instrução "select", que será apresentada a seguir:  1) Seleção de todas os campos (ou colunas) da tabela de Departamentos.  Resp: SELECT * FROM DEPT;  O exemplo utiliza o coringa "*"...

SQL - CREATE DATABASE

PARTE I - Comandos de Modificações do Esquema e Criação de Banco de Dados Os bancos de dados podem utilizar conjuntos de caracteres específicos dependendo da linguagem utilizada (idioma) sendo que, os mais utilizados são: Latin1 e UTF-8 (codificação de caracteres específicos: acentos, ç, etc.).  Comando Create  Este comando permite a criação de tabelas no banco de dados ou mesmo de sua criação.  O primeiro comando para criação de um banco de dados em SQL é: CREATE DATABASE_Nome (nome sem espaços e caracteres especiais).  Sintaxe: CREATE DATABASE < nome_db >;  onde: nome_db - indica o nome do Banco de Dados a ser criado. Sintaxe: CREATE TABLE < nome_tabela > ( nome_atributo1 < tipo > [ NOT NULL ], nome_atributo2 < tipo > [ NOT NULL ], ...... nome_atributoN < tipo > [ NOT NULL ] ) ;  onde:  nome_table - indica o nome da tabela a ser criada.  nome_atributo - indica o nome do campo a ser criado na tabela. tipo - indica a ...