Banco de Dados & SQL

Introdução

Sistema Gerenciador de Banco de Dados

Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que habilitam usuários a criar e manter um banco de dados.

O SGBD é um software de propósito geral, que facilita o processo de definição, construção e manipulação de um banco de dados.


Terminologia Básica


Modelo de Dados

SQL - Structured Query Language

1 Introdução ao SQL

SQL é a linguagem padrão para bancos de dados relacionais. Os principais Bancos de Dados Relacionais aceitam alguma forma do SQL. Abaixo, algumas terminologias em Banco de Dados

SQL surgiu no início da década de 70, por uma iniciativa da IBM. desde a década de 1990 tornou-se a linguagem mais popular para acesso a bancos de dados, associado a difusão dos SGBDs relacionais

existem dois tipos básicos de linguagem:

o SQL consiste em uma linguagem não procedural que permite a interface básica para comunicação com o banco de dados

Um SGBD realiza alguns processos que podem ser efetuados por meio da linguagem SQL

 

DEFINIÇÃO e MANIPULAÇÃO (DDL & DML)

Para iniciar a definição de um BD é necessário conhecer os tipos de dados que o BD manipula. De uma maneira geral serão manipulados os tipos:

 

A sintaxe que identifica estes tipos dependentes do BD, em geral:

 

criando uma tabela

Para criar uma tabela será usada a declaração SQL (DDL) criando a tabela. de uma maneira geral

 
 

Exemplo

Como seria a criação de uma tabela que armazenaria os nomes e siglas de todas a UF

 

Inserindo dados (populando a tabela)

Instrução INSERT - Esta instrução é usada para inserir dados na tabela.

 

Exemplo:

 

a modificação dos registros é feita usando o comando UPDATE por exemplo

 

Apagando os Dados

Instrução DELETE - Esta instrução é usada para remover uma ou registros da tabela, possuindo duas formas básicas: ​

 

A primeira forma é obrigatória e apaga todos os dados da tabela, enquanto que a segunda possui uma parte opcional, a partir do WHERE, que apaga somente os dados da tabela que atendem a uma condição (ou condições) imposta pela cláusula WHERE. ​ Exemplo:

 
 
 

Remover uma Tabela

Para se remover uma tabela deve-se usar o comando DROP TABLE.

 

Por meio deste comando a tabela deixará de existir neste banco de dados, sendo todas as informações contidas nela vão ser ** TOTALMENTE apagadas (Não tem UNDO) **.

Exemplo: ​

 

CONSULTA (DQL)

Instrução SELECT

Esta instrução é a essência da linguagem SQL. É por meio dela que se recupera dados de um banco de dados. De modo simples, forma declarativa, está se dizendo ao BD quais informações foram selecionadas para serem recuperadas.

Pode-se dividir esta instrução em quatro partes básicas:

 

O símbolo asterisco ( * ) significa que todos atributos da relação informada deverão ser recuperados.

Exemplo:

 
 

o SELECT será a instrução mais comumente usada na linguagem SQL. repare que o SQL não é case sensitive como a maioria das linguagens! ​ Na cláusula WHERE serão utilizados alguns operadores de comparação e lógicos para que a condição seja especificada. Os operadores logicos usados em SQL são:

criando novas tabelas a partir de tabelas existentes

É muito simples a criação de novas tabelas bastausar o CREATE TABLE usando o resultado de um SELECT.

 

JOINS (Relacionando as Tabelas)

Existem diversas maneiras de se fazer o relacionamento entre duas tabelas. os mais comuns são:

  1. INNER JOIN Este é simples e comumente empregado. Esta query retornará todos os registros da tabela A (esquerda) que têm correspondência com a tabela B (direita). Ou seja, o que existe de comum entre A e B. Podemos escrever este JOIN da seguinte forma:

     
  2. LEFT JOIN Esta consulta retorna todos os registros da tabela A (esquerda) e o que existir em comun com a tabela B (direita) O código ficará da seguinte forma:

     
  1. OUTER JOIN Este relacionamento é conhecido tambem como FULL OUTER JOIN ou FULL JOIN. Esta consulta retornará todos os registros das duas tabelas e juntando também os registros correspondentes entres as duas tabelas. O que for diferente nas duas tabelas ficara com o valor NULL. O código ficará da seguinte forma:

     

Fonte da figura

Funções

Seguem algumas funções comumente usadas em SQL, lembre-se que cada versão e SGDB usa dialetos diferentes.

Funções simples (mais comumente usadas): ​

 

Funções Agregadas :

 

Funções de caracteres:

 

​ funções de datas:

 

Exemplos:

 

2 Pratica!

Nas praticas de hoje utilizaremos o SQLITE que vem a ser uma pequena biblioteca, open source, autocontida, sem necessidade de usar um servidor e nem é necessária nenhuma configuração adicional.

Faremos o download de um programa gráfico (GUI) para que possamos interagir com o Sqlite mais facilmente. Nosso laboratório da ENSP não permite a instalação usaremos a versão portável , isto é, que se instala no próprio ambiente do usuário.

Clique aqui para baixar o SQLITEBrowser (windows 32b)

instale a versão acima e após a instalação inicie o programa. uma tela semelhante devera aparecer

Clique em Novo Banco de Dados

siga o link para o primeiro exemplo chamado estudo.sql

Selecione no texto a parte de criação da tabela pacientes, em seguida entre na ABA Executar SQL e cole o texto. para executar use F5 ou control+Enter ou ainda usa o icone >

vá agora até a ABA Estrutura do banco de dados e veja o que foi criado.

volte a seu navegador e copie o trecho refente aos dados dos pacientes e novamente cole na janela Executar SQL e execute.

vá agora até a ABA Navegar Dados e verifique seu dados use o exemplo crie mais um ou dois registros com os números de ID 105 e 106

crie agora a tabela estudo repetindo os passos anteriores!

Exercícios

vamos testar agora alguns comandos

 
 
 
SELECT COUNT(*) from estudo ;
SELECT *,  round(Peso/(Altura*altura),4)  as IMC from paciente ;

Use a tabela estudo e calcule o peso medio de cada paciente

Apagando os registros que você adicionou :

DELETE FROM paciente WHERE ID=105 

Delete agora do outro paciente usando o NOME e o SNOME

relacionando as tabelas

select  *  from paciente left join estudo on  paciente.id = estudo.id  ; 

crie o IMC usando o Peso no relacionamento entre as tabelas. Fique atento ao fato de existirem duas colunas Peso !

Mortalidade um exemplo

vamos baixar AQUI a base de mortalidade do RJ em 2004 já no formato do sqlite

faço o dowload de cerca de 17Mb , abra o arquivo no sqlitebrowser

tente:

  1. Qual a esrutura da tabela?
  2. Quantos registros tem na tabela?
  3. quantos registros por municipio de residência (codmunres) ? (vai precisar group by)
  4. Quantos são residentes de outra UF ?

baixe a tabela de bairros do Rio de Janeiro e cid10 AQUI, crie as tabelas em seguida

  1. Selecione o município do Rio e relacione a tabela com os nomes de bairros. gere uma contagem por bairro e sexo. (codbairro)
  2. selecione os casos de AVC na causa básica I60 a I69 ou como causa associada (linhas) e crie uma nova tabela.

Bibliografia

SQL Tutorial in PDF

Tutorial online W3

OBS: caso haja algum problema com o SQLITEBrowser podemos usar o SQLITEAdmin