Banco de dados

Funções Analíticas Oracle e as suas aplicabilidades: Lag e Lead

Olá, galera! Quanto tempo heim? Hoje voltaremos a falar de funções analíticas, porque as vezes é necessário criar consultas que possam me dar o valor anterior ou até mesmo do próximo. Para não precisar criar várias consultas, trago duas funções super simples de aplicar na prática. A primeira que falaremos é a Lag, ela tem a função de mostrar qual é o valor anterior, dentro da consulta. Vamos primeiro pegar uma consulta simples da tabela Funcionario   SELECT NOME, SALARIO FROM FUNCIONARIO Agora, vamos aplicar Continue lendo

[MySQL] – Série de posts 4: Mecanismos de Armazenamento e Tipos de Tabelas

Bom pessoal neste post vamos abordar a padronização dos tipos de tabelas(table types) suportadas pelo MySQL e os mecanismos de armazenamento(Storage Engine) por ele suportado. O MySQL possui uma característica um pouco diferente dos outros SGBDs, uma vez que no MySQL é possível escolher o tipo da tabela no momento da criação da mesma. O formato de armazenamento dos dados, bem como alguns recursos do banco de dados são dependentes do tipo de tabela escolhido. De acordo com a documentação oficial do MySQL 5.5 , Continue lendo

Combinação de números sem repetição em PL/SQL

Galera, boa tarde! Essa semana estava com um amigo numa árdua tarefa, de desenvolver uma funcionalidade que faça a combinação de números N, P a P, passando os valores por parâmetros e sem a limitação do cálculo do fatorial. Abaixo segue a procedure que faz tal combinação utilizando um algoritmo de substituição binária. create or replace package ALG_COMBINA is   FUNCTION COMBINA RETURN EXEM_TABLE; end ALG_COMBINA; / CREATE OR REPLACE PACKAGE BODY ALG_COMBINA IS TYPE VX IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; VETOR     VX; VETOS     Continue lendo

[MySQL] – Série de posts 3: Tipos de dados (Data Types)

Bom Pessoal , neste post vou falar sobre os tipos de dados suportados pelo MySQL e suas derivações. Quando falamos em tipos de dados , isso está inteiramente ligado a normalização e criação das tabelas do seu esquema(Schema) ou banco de dados(database). Precisamos entender como nosso SGBD trabalha ao efetuar o armazenamento de dados de diferentes tipos, sendo eles do Tipo “Texto”, “Numérico” e “Temporal”. O MySQL para isso suporta diferentes tipos de dados(data types) para atender nossa necessidade , quando vamos utiliza-las , esses Continue lendo

Ferramentas On-line para ajudar com a linguagem SQL

Galera, boas notícias! Existem várias ferramentas on-line, que nos ajudam com a linguagem SQL, mas dentre essas, vamos falar das: SqlFiddle e SqlFormat. O SqlFiddle é uma maneira fácil e simples de gerar Schemas e alguns Statements SQL. Ele tem o intuito de mostrar problemas nos SQL para outras pessoas, para cada schema criado, o site cria um link que pode ser postado ou enviado por email. A grande possibilidade que vejo da aplicação, é dá suporte para vários bancos de grande porte, como: Sql Continue lendo

[MySQL] – Série de posts 1: Download e Instalação

Bom pessoal , vou nesta serie de posts , ensinar a galera que queira conhecer o MySQL com uma abordagem mais técnica. Como tudo nessa vida tem um inicio , este primeiro post abordarei a instalação do MySQL em varias plataformas e sistemas operacionais. Se você está com dúvida em investir neste SGBD , Leia o Slide do link Abaixo: http://www.slideshare.net/mtelless/recursos-e-benefcios-do-mysql Para entender melhor o conceito de banco de dados e SGBD , veja o post do link abaixo: http://cooperati.com.br/2012/08/19/banco-de-dados-conceituando-banco-de-dados-e-sgbd/ Vamos colocar a mão na Continue lendo

Quando precisamos criar um ranque dos valores na minha consulta, por onde começar?

Existem consultas que precisamos informar uma posição dos valores retornados da consulta. Para esses casos vamos aprender a criar um ranque dessas informações. A função Rank trabalha em conjunto com a clausula Order By, a fim de gerar uma classificação baseada na própria expressão do Order By. No Exemplo abaixo vou lista os funcionários na mesma ordem de inserção, para isso utilizo a função RowNum.

Conceituando Banco de Dados e SGBD

Bom Pessoal vou neste post falar sobre o Conceito de Banco de dados e SGBD (Sistema de Gerenciamento de Banco de dados), tratando a diferença entre esses dois conceitos de forma clara e explicativa. Sobre Banco de dados vamos expor sobre sua evolução, definição e utilização. Sobre SGDB vamos falar de sua definição, Arquitetura, Modelo de Dados, Independência de dados, Linguagem de Manipulação de Dados (ou DML, de Data Manipulation Language), Linguagem de definição de dados (LDD ou DDL, do Inglês Data Definition Language).

Group By Rollup: O uso do Group by ampliado!

A cláusula Rollup veio agregar valores ao famoso Group By, possibilitando criar Subtotais das somas já existentes numa seleção com o Group By. Ela ainda destaca o valor do total. Sua sintaxe é bem simples, vejamos! SELECT PRODUCT_CODE, SUM(QUANTITY) TOTAL FROM EXEMPLO GROUP BY ROLLUP(CUSTOMER_ID, PRODUCT_CODE)   Vejamos, que após a cada grupo ele cria um subtotal dos valores acima, e no final ele gera um total geral.  Agora, vamos melhorar ainda mais a nossa consulta com o uso do Rollup! SELECT CUSTOMER_ID, DECODE(CUSTOMER_ID, NULL, Continue lendo

Trabalhando com Queries Hierarquicas. Relação de Registro Pai com Registro Filho na mesma tabela.

Quando precisamos trabalhar com essa relação de registro pai e filho na mesma tabela, ficamos logo pensando como fazer isso, sem gerar problemas no desempenho das queries. Pensando nisso, a Oracle tem uma função chamada Connect By. Onde podemos criar queries com hierarquia, podendo empregar este recurso na contabilidade, setores, empregados, mas todos com sentido de árvore (Tree View).

Quando o banco apresenta um DeadLock o que fazer?

Olá, Galera!  Nesse artigo, falarei de umas das coisas que podem parar até o seu banco de dados de funcionar, o DeadLock. O Deadlock, ocorre quando duas ou mais tarefas bloqueiam uma à outra permanentemente, sendo que cada uma tem o bloqueio de um recurso, que a outra tarefa está tentando bloquear. Muitos dos artigos que encontramos, só nos fala de como identificar o problema. Aqui tentarei abordar como resolver o problema de maneira fácil. Para identificar um DeadLock no banco é necessário saber, qual usuário Continue lendo