conceitos de linguagens de programaçãorogerio/material_auxiliar/clp20132_sql.pdf · elementos...

Post on 09-Aug-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Conceitos de Linguagens de Programação – 2013.2

SQL Structured Query Language

(Banco de Dados)

Janai Maciel

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

Inclusões INSERT

Usada para inserir

um registro a uma

tabela existente.

Insert into Pessoa (id,

nome, sexo) value;

Consultas SELECT

Principal comando

usado em SQL para

realizar consultas a

dados pertencentes a

uma tabela.

Select * From

Pessoa;

Função Comando SQL Descrição do comando Exemplo

Alterações UPDATE

Para mudar os valores

de dados em uma ou

mais linhas da tabela

existente.

UPDATE Pessoa SET

data_nascimento =

'11/09/1985' WHERE

id_pessoa = 7

Exclusões DELETE Permite remover linhas

existentes de uma tabela.

DELETE FROM pessoa

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 chave-

primá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!

top related