super resumo sql

Upload: ramiro-pamponet

Post on 17-Jul-2015

256 views

Category:

Documents


0 download

TRANSCRIPT

SQL = Structured Query Language (Linguagem de Consulta Estruturada) Dialetos SQL: 1986 SQL ANSI (1 Padronizao) 1987 SQL ISO 1992 SQL-92 1999 SQL-1999 Incluso de Expresses Regulares, Queries Recursivas e Triggers 2003 SQL-2003 XML e Seqncias Sub-Diviso do SQL: DDL = Linguagem de Definio de Dados o Create ESTRUTURA (Criar) o Alter ESTRUTURA (Alterar) o Drop ESTRUTURA (Apagar) o ESTRUTURAS: Database Create database ... ou (no PostegreSQL) Createdb ... Use database; Table Alter Table modify ... (p/ o MySQL) Alter Table alter column type (no Postegre Altera o Tipo de dado) Alter Table ... rename column ... to ... (no Postegre Renomeia uma coluna) Index (ndice) Create index NOME on TABELA Generator Trigger (Gatilho) Domain (Tipo de Dado Personalizado) User (usurio) Role (Regras de Login) Sequence View (viso) Function (Funo) DML = Linguagem de Manipulao de Dados o Insert into TABELA values ... o Update TABELA set CAMPO = VALOR where ... o Delete from TABELA where ... o Truncate NOME DA TABELA (a mesma funo de Delete) o Describe NOME DA TABELA (visualiza a estrutura de uma Tabela) DQL = Linguagem de Consulta de Dados o Select CAMPOS from TABELA where ... o Filtro de Seleo: Where < Condio > DCL = Linguagem de Controle de Dados o Grant (Habilita Acesso) Grant AO on ESTRUTURA to USURIO; o Revoke (Revoga Acesso) Revoke AO on ESTRUTURA from USURIO; o AES: All ; Select ; Insert ; Update ; Delete ; Create ; Alter ; Drop o ESTRUTURAS: Database ; Table ; Index ; User ; View ; Sequence DTL = Linguagem de Transao de Dados o Start Transaction (inicia uma Transao) o Commit (Finaliza a Transao) o Rollback (Anula a Transao) Chave Primria (Primary Key ou PK) Coluna contendo valores nicos (que no podem se repetir) para evitar a redundncia de dados.

Podem ser Simples (apenas 1 coluna: ex. cdigo do cliente) ou Composta (mais de uma coluna, formando uma combinao nica). Chave Estrangeira (Foreign Key ou FK) Coluna de uma tabela que armazena o valor da chave primria de outra tabela indicando que existe um relacionamento entre as tabelas, favorecendo assim a integridade dos dados. Tipos de Relacionamentos: 1 : 1 Cada linha de uma tabela se relaciona com apenas 1 linha de outra tabela. 1 : n Cada linha de uma tabela se relaciona com 1 ou mais linhas de outra tabela, porm no sentido contrrio esse tipo de relacionamento 1:1. n : n Cada linha de uma tabela pode se relacionar com mais de uma linha de outra tabela em ambos os sentidos do relacionamento. Normalizao de Dados: Evita as Anomalias de Dados o Anomalia de Insero impede a incluso de registros devido falta de dados o Anomalia de Excluso impede a excluso de registros devido ao relacionamento com outras tabelas. o Anomalia de Alterao impede a alterao de registros devido ao relacionamento com outras tabelas. Facilita a Manuteno de Dados Maximiza a Performance do Banco de Dados Mantm a Integridade dos Dados 1FN Cada linha da tabela deve representar apenas um nico registro Cada clula da tabela deve conter um nico valor 2FN A tabela deve estar na 1FN Atributos no Chave da Tabela devem Depender de Alguma das Chaves da Tabela 3FN A tabela deve estar na 2FN Atributos no Chave da Tabela devem Depender Exclusivamente da Chave Primria da Tabela 4FN e 5FN A tabela deve estar na 3FN Separar em Novas Tabelas Valores que ainda Estejam Redundantes em uma Mesma Coluna. Tipos de Dados: Boleanos (ou Lgicos): Aceitam apenas V (Verdadeiro) ou F (Falso) Numricos o Tinyint / Smallint (Inteiro: - 128 a 127 ou 0 a 255) o Int (Inteiro) o Bigint o Serial Especfico para o PostegreSQL (Inteiro c/ Auto-Incremento) o Float (Decimal) o Double (Decimal) o Numeric (Decimal) Texto (ou String) o Char (Valor Fixo) o Varchar (Valor Varivel) o Text (Textos Grandes) Data e Hora o Date

o Time o DateTime / Timestamp Customizados o Enum

Tipos de Dados Continuao: Arquivos (Imagens, PDF, ...) o Blob Redes o IP o MAC-Address Monetrios (Com Formatao R$) Geomtricos (Formas Geomtricas) Etc Atributos: Null (nulo) / Not Null (no-nulo) Signed (aceita valores negativos) / Unsigned (no aceita valores negativos) Zerofill (preenche com zeros esquerda) Auto_increment (preenche automaticamente o contedo de um campo inteiro, toda vez que um novo registro for inserido na tabela.Utilizado para gerar o campo cdigo (PK) das tabelas) Operadores: Concatenao o Concat (MySQL) ou || (PostegreSQL / Firebird) Relacionais o Igual (=) ; Maior (>) ; Maior ou Igual (>=) ; Menor ( 0) Not Null; Generator e Triggers Artifcio para Criar Campos Auto-Incremento no Firebird Generator: Retorna um valor incrementado toda vez que chamado Create generator NOME; Trigger: Set Term ^ Create trigger NOME for TABELA Active before insert position 0 As Begin New.CAMPO (Cdigo) = gen_id(NOME do GENERATOR, 1); End ^ OBS: gen_id (mtodo para pegar o id do generator e incrementar em 1) Replace Substitui (Create or Replace ...) Replicate Repete Valores OBS: JDBC PostgreSQL 1. 2. 3. 4.5. import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; public class ConnectionFactory { public static Connection getConexao() throws SQLException { try { Class.forName("org.postgresql.Driver"); returnDriverManager.getConnection("jdbc:postgresql://localhost:5432/TEBD","usuario","senha") ;

6.7.

8. 9. 10. 11.

12. 13. 14. 15.

} catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); }

16. } 17. }

Import="java.sql.*; String url = "jdbc:postgresql://localhost/ NOME-DO-BANCO"; String usuario = "USUARIO-DO-BANCO"; String senha = "SENHA-DO-BANCO"; Class.forName("org.postgresql.Driver ").newInstance(); Connection con = DriverManager.getConnection ( url, usuario, senha ); con.close();