teoria

Propaganda
Janai Maciel
SQL
Structured Query Language
(Banco de Dados)
Conceitos de Linguagens de Programação – 2013.2
Structured Query Language
( Linguagem de Consulta Estruturada )
Conceito:
É a linguagem de pesquisa declarativa padrão
para banco de dados relacional. Muitas das
características originais do SQL foram
inspiradas na álgebra relacional.
Características:
 Originalmente criado pela IBM, em 1974.
 Padronização pela ANSI e ISO em 1986 e 1987.
Última versão: 2008
 Fortemente Tipada
Embora padronizado pela ANSI e ISO, como
citado, SQL possui muitas variações e
extensões produzidos pelos diferentes
fabricantes de sistemas gerenciadores de bases
de dados. Tipicamente a linguagem pode ser
migrada de plataforma para plataforma sem
mudanças estruturais principais.
“Palavras-chave” em SQL:
Cláusulas
(FROM, WHERE, GROUP BY, HAVING, ORDER BY, DISTINCT)
Operadores Lógicos
( AND, OR, NOT)
Operadores Relacionais
( <, >, <=, >=, =, <>, BETWEEN, LIKE, IN)
Funções de Agregação
( AVG, COUNT, SUM, MAX, MIN)
Cláusulas
FROM - Utilizada para especificar a tabela que se vai
selecionar os registros.
WHERE – Utilizada para especificar as condições que devem
reunir os registros que serão selecionados.
GROUP BY – Utilizada para separar os registros selecionados
em grupos específicos.
HAVING – Utilizada para expressar a condição que deve
satisfazer cada grupo.
ORDER BY – Utilizada para ordenar os registros selecionados
com uma ordem especifica.
DISTINCT – Utilizada para selecionar dados sem repetição.
Operadores Lógicos
AND – Avalia as condições e devolve um valor
verdadeiro caso ambos sejam corretos.
OR – Avalia as condições e devolve um valor
verdadeiro se algum for correto.
NOT – Devolve o valor contrário da expressão.
Operadores relacionais
BETWEEN – Utilizado para especificar um intervalo de
valores.
LIKE – Utilizado na comparação de um modelo e para
especificar registros de um banco de dados. "Like" +
extensão % significa buscar todos resultados com o
mesmo início da extensão.
IN - Utilizado para verificar se o valor procurado está
dentro de uma lista. Ex.: valor IN (1,2,3,4).
Comparadores: “maior que”, “menor que”, “maior ou
igual que”, “menor ou igual que”, igual, diferente.
Funções de agregação
AVG – Utilizada para calcular a média dos valores de um
campo determinado.
COUNT – Utilizada para devolver o número de registros da
seleção.
SUM – Utilizada para devolver a soma de todos os valores
de um campo determinado.
MAX – Utilizada para devolver o valor mais alto de um
campo especificado.
MIN – Utilizada para devolver o valor mais baixo de um
campo especificado.
Subconjuntos do SQL:
DML - Linguagem de Manipulação de Dados
DDL - Linguagem de Definição de Dados
DCL - Linguagem de Controle de Dados
DTL - Linguagem de Transação de Dados
DQL - Linguagem de consulta de dados
DML
É um subconjunto da linguagem SQL que é utilizado
para realizar inclusões, consultas, alterações e
exclusões de dados presentes em registros.
Função
Comando SQL
Descrição
Exemplo
Usada para inserir
Insert into Pessoa (id,
Inclusões
INSERT
um registro a uma
nome, sexo) value;
tabela existente.
Principal comando
usado em SQL para
Select * From
Consultas
SELECT
realizar consultas a
Pessoa;
dados pertencentes a
uma tabela.
Função
Alterações
Exclusões
Comando SQL
Descrição do comando
Exemplo
Para mudar os valores
UPDATE Pessoa SET
de dados em uma ou
data_nascimento =
mais linhas da tabela
'11/09/1985' WHERE
existente.
id_pessoa = 7
Permite remover linhas
DELETE FROM pessoa
UPDATE
DELETE
existentes de uma tabela. WHERE id_pessoa = 7
DDL
Uma DDL permite ao utilizador definir tabelas novas e
elementos associados. A maioria dos bancos de dados
de SQL comerciais tem extensões proprietárias no DDL.
CREATE: Cria um objeto dentro da base de dados.
DROP: Apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando
ALTER, que permite ao usuário alterar um objeto, por
exemplo, adicionando uma coluna a uma tabela existente.
Outros comandos DDL:
CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
ALTER INDEX
DROP INDEX
DROP VIEW
DCL
Lida com os aspectos de autorização de dados e
licenças de usuários para controlar quem tem acesso
para ver ou manipular dados dentro do banco de dados.
Duas palavras-chaves da DCL:
GRANT - autoriza ao usuário executar ou setar
operações.
REVOKE - remove ou restringe a capacidade de um
usuário de executar operações.
DTL
BEGIN WORK - Pode ser usado para marcar o começo
de uma transação de banco de dados que pode ser
completada ou não.
COMMIT - finaliza uma transação dentro de um sistema
de gerenciamento de banco de dados.
ROLLBACK - faz com que as mudanças nos dados
existentes desde o último COMMIT ou ROLLBACK
sejam descartadas.
COMMIT e ROLLBACK interagem com áreas de
controle como transação e locação. Ambos terminam
qualquer transação aberta e liberam qualquer cadeado
ligado a dados. Na ausência de um BEGIN WORK ou
uma declaração semelhante, a semântica de SQL é
dependente da implementação.
DQL
Embora tenha apenas um comando, a DQL é a
parte da SQL mais utilizada.
O comando 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 elaboradas.
Sistemas de Banco de Dados que usam SQL
• Apache Derby
• Caché
• DB2
• Firebird
• HSQLDB(banco de dados implementado em Java)
• IDMS(banco de dados hierárquico)
• IMS(banco de dados hierárquico)
• Informix
• Ingres
• InterBase
• Microsoft Access
• Microsoft SQL Server
• MySQL
• Oracle
• PointBase Micro (banco de dados relacional implementado em Java)
• PostgreSQL
• SQLite
• LiteBase Mobile(dedicado à plataformas móveis como: Palm OS, P
Pocket PC, WinCE, Symbian)
• Sybase Adaptive Server Enterprise
• Teradata(primeiro RDBMS com arquitetura paralela do mercado)
Podemos criar uma tabela qualquer dentro de um banco de
dados. A sintaxe básica para criarmos é:
CREATE TABLE nome_tabela ( nome_campo_1 tipo_1,
nome_campo_2 tipo_2, ... nome_campo_n tipo_n,
PRIMARY KEY ( campo_x,...));
*PRIMARY KEY define a chave primária da tabela, isto
é, o campo que serve como chave da tabela e que não
pode ser repetido.
Como exemplo do uso do comando CREATE TABLE,
imaginemos a necessidade de uma tabela que deva
possuir os dados dos clientes de uma loja.
CREATE TABLE Cliente (
Codigo INT NOT NULL AUTO_INCREMENT,
Nome VARCHAR (60) NOT NULL,
Data_Nascimento DATE,
Telefone CHAR (8),
PRIMARY KEY (Codigo) );#
Criamos uma tabela chamada Cliente. Esta tabela contém quatro.
Primeiro campo será utilizado como chave primária de forma que
não poderá se repetir nunca. Desta forma o campo deve ser
sempre preenchido (NOT NULL), é numérico do tipo inteiro (INT) e
deve auto-incrementar de acordo com o número de clientes que
for incluído.
Podemos visualizar a estrutura e campos de uma
tabela criada utilizando o comando DESCRIBE ou
DESC:
DESCRIBE Nome_Tabela;#
Ou:
DESC Nome_Tabela;#
Regras de Integridade:
Ao criarmos uma tabela dentro de um banco de dados
devemos ter em mente as Regras de Integridade, que
garantam a consistência, integridade e não redundância
dos dados. Entre estas regras podemos englobar as
chaves primárias, checagem e chave estrangeira.
Chave primária:
A chave primária funciona como os campos que
diferenciam os dados uns dos outros, e que não podem ser
repetidos de nenhuma forma. Por exemplo, em nossa
tabela Cliente, o código do Cliente funciona como a chaveprimária, ou seja, os clientes podem até ter o mesmo nome,
endereço ou telefone, mas terão códigos diferentes uns dos
outros. Se dois códigos iguais forem inseridos, retornará
erro.
Checagem:
CHECK Nome _Campo IN (valor1 , valor2, valor n);
Esta cláusula força a um campo a aceitar apenas os valores
especificados entre os parênteses. Isto pode ser útil para definir,
por exemplo, campos como sexo. Desta forma forçamos as
opções através de:
CHECK Sexo IN ('M','F');
Chave estrangeira:
A chave estrangeira é uma cláusula que deve ser incluída quando
possuímos mais de duas tabelas em um banco de dados. Através
da chave estrangeira estabelecemos as relações entre duas ou
mais tabelas. A chave estrangeira desta forma referencia o campo
que é chave primária de outra tabela. Tabela.
FOREIGN KEY (Campo1, Campo2, Campo3 ..) REFERENCES
Nome_Tabela2 (Nome_Chave); <<
Duvidas??
Obrigado!
Download