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

24
Conceitos de Linguagens de Programação 2013.2 SQL Structured Query Language (Banco de Dados) Janai Maciel

Upload: others

Post on 09-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

Conceitos de Linguagens de Programação – 2013.2

SQL Structured Query Language

(Banco de Dados)

Janai Maciel

Page 2: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 3: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

Características:

Originalmente criado pela IBM, em 1974.

Padronização pela ANSI e ISO em 1986 e 1987.

Última versão: 2008

Fortemente Tipada

Page 4: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 5: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

“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)

Page 6: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 7: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 8: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 9: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 10: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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

Page 11: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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;

Page 12: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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

Page 13: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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

Page 14: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 15: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 16: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 17: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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)

Page 18: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 19: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 20: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

Podemos visualizar a estrutura e campos de uma

tabela criada utilizando o comando DESCRIBE ou

DESC:

DESCRIBE Nome_Tabela;#

Ou:

DESC Nome_Tabela;#

Page 21: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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.

Page 22: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

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); <<

Page 23: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

Duvidas??

Page 24: Conceitos de Linguagens de Programaçãorogerio/material_auxiliar/CLP20132_SQL.pdf · elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias

Obrigado!