45
SQL Glaice Kelly da Silva Quirino Setembro, 2014

1. SQL - parte 1

Embed Size (px)

DESCRIPTION

Aula de Banco de Dados

Citation preview

Page 1: 1. SQL - parte 1

SQL

Glaice Kelly da Silva Quirino

Setembro, 2014

Page 2: 1. SQL - parte 1

Agenda

Introdução

Histórico

Comandos DDL

Comandos DML

Comandos DCL

Importancia do SQL

Page 3: 1. SQL - parte 1

Introdução

Structure Query Language (SQL) – Linguagem de Consulta Estruturada.

Permite: Consultas; manipulação de dados; definições de estrutura e de segurança do banco de

dados.

Vários SGBDs utilizam SQL.

Page 4: 1. SQL - parte 1

Introdução

Page 5: 1. SQL - parte 1

Introdução

Há pequenas variações entre os SGDBs.

Dentro da SQL, há várias funções e comandos que são divididos em grupos: DDL DML DCL

Page 6: 1. SQL - parte 1

Histórico

• Lançamento da primeira versão.• Structure English Query Language (SEQUEL).

1970

• Foi revisada e ampliada;• Nome mudou para SQL.

1976

• A ANSI e a ISO criaram e adaptaram um padrão;• Lançamento do SQL - 86.

1986

• A IBM lançou seu próprio padrão personalizado, chamado de SQL – 89.

1989

Page 7: 1. SQL - parte 1

Histórico

• Lançamento da SQL - 921992

• SQL31999

• SQL:20032003

• SQL:20082008

Page 8: 1. SQL - parte 1

Comandos DDL

DDL - Data Definition Language (Linguagem de Definição de Dados).

Permite: Criação, alteração, exclusão da estrutura das tabelas.

Define como os dados são estruturados.

Page 9: 1. SQL - parte 1

Create

Create: Cria um objeto, que pode ser uma tabela ou até mesmo

um banco de dados.

CREATE DATABASE “nome do banco de Dados”;

CREATE DATABASE biblioteca;

Page 10: 1. SQL - parte 1

Create

CREATE TABLE “nome da tabela” (

‘‘Descrição do campo 1’’

‘‘Descrição das chaves’’ );

CREATE TABLE livro (

cd_livro INT NOT NULL,

nm_livro VARCHAR(20),

PRIMARY KEY (cd_livro));

Page 11: 1. SQL - parte 1

Create

Devemos definir para cada atributo o seu respectivo tipo. Os tipos mais comuns de dados são:

CHAR (tamanho) – sequência de caracteres (string) de comprimento fixo. O tamanho é especificado entre parênteses. O tamanho máximo permitido é de 255 caracteres.

VARCHAR (tamanho) - sequência de caracteres (string) com tamanho variável. A quantidade máxima de caracteres que poderá ser armazenada no campo é especificada entre parênteses.

Page 12: 1. SQL - parte 1

Create

INT – tipo numérico que aceita valores inteiros. Podemos representar com esse tipo qualquer valor inteiro na faixa entre -2.147.483.648 e 2.147.483.647.

NUMERIC(n,d) – tipo numérico que aceita valores reais (n indica a quantidade total de números e d indica a quantidade do total que corresponde a casas decimais).

Exemplo: NUMERIC(5,2) corresponde a números com 5 dígitos com até duas casas decimais, como 256,12.

Page 13: 1. SQL - parte 1

Create

TIME – tipo tempo no formato hora:minuto:segundo.

DATE – tipo data no formato ano-mês-dia.

Ex: 21 de agosto de 2014 => ‘2014-08-21’

Ex: 2 horas e 30 minutos => ’02:30:00’

Page 14: 1. SQL - parte 1

Create

Page 15: 1. SQL - parte 1

Create

CREATE TABLE Clientes (

cpf INT NOT NULL,

nome VARCHAR(40),

PRIMARY KEY (cpf));

Page 16: 1. SQL - parte 1

Create

CREATE TABLE compras (

cd_compra INT NOT NULL,

datahora DATE,

cpf INT,

PRIMARY KEY (cd_produto),

CONSTRAINT c1 FOREIGN KEY

(cpf) REFERENCES clientes(cpf) );

Page 17: 1. SQL - parte 1

Create

CONSTRAINT “nome da constraint” FOREIGN KEY

(‘‘nome do atributo’’)

REFERENCES

‘‘nome da tabela a qual este atributo é a PK”

(‘‘nome desse campo dentro dessa tabela”)

Page 18: 1. SQL - parte 1

Create

CONSTRAINT significa restrição e impede que o usuário insira no campo de chave estrangeira um valor que seja diferente de quaisquer valores inseridos na PK da tabela clientes.

C1 é apenas o nome dado para a restrição criada.

Page 19: 1. SQL - parte 1

DROP

DROP: Usado para excluir tabelas ou banco de dados.

DROP DATABASE “nome do banco de dados”;

DROP TABLE “nome da tabela” ;

DROP DATABASE biblioteca;

DROP TABLE livro;

Page 20: 1. SQL - parte 1

ALTER

ALTER: Altera a estrutura de uma tabela

ALTER TABLE “nome da tabela”(

ADD COLUMN “nome do campo”);

ALTER TABLE livro (

ADD COLUMN autor_livro VARCHAR(50) );

Page 21: 1. SQL - parte 1

ALTER

Ainda é possível substituir o ADD e alterar da seguinte forma: DROP = exclui colunas RENAME = renomeia colunas CHANGE = alterar colunas

Page 22: 1. SQL - parte 1

Comandos DML

DML - Data Manipulation Language (Linguagem de Manipulação de Dados)

Comandos para: Alterações , inserções e exclusões de dados dentro das

tabelas.

Page 23: 1. SQL - parte 1

INSERT

INSERT Insere um registro dentro dos campos das tabelas.

INSERT INTO “nome da tabela” (“nome do campo”)

VALUES (“valor do campo”);

INSERT INTO livro (cd_livro)

VALUES (1);

Page 24: 1. SQL - parte 1

INSERT

Os dados do tipo CHAR, VARCHAR, DATE, TIME (texto em geral) devem ser representados entre aspas simples (‘’).

Dados do tipo NUMERIC(n,d) aceita valores reais (n indica a quantidade total de números e d indica a quantidade do total que corresponde a casas decimais).

Exemplo: NUMERIC(5,2) corresponde a números com 5 dígitos com até duas casas decimais, como 256,12.

Page 25: 1. SQL - parte 1

INSERT

Dados do tipo TIME devem seguir o formato ‘hora:minuto:segundo’.

Dados do tipo DATE devem seguir o formato ‘ano-mês-dia’.

Observe ainda que as casas decimais dos números devem ser separadas por pontos ao invés de vírgulas;

Os valores do tipo VARCHAR podem conter acentos e espaços em branco.

Page 26: 1. SQL - parte 1

INSERT

INSERT INTO produto (nm_livro, autor_livro)

VALUES (‘‘O Hobbit’’, ‘‘J. R. R. Tolkien’’);

INSERT INTO livro VALUES

(2,”O Milagre”, “Nicolas Sparks”);

Page 27: 1. SQL - parte 1

DELETE

DELETE: Para deletar dados:

DELETE FROM ‘‘nome da tabela’’

WHERE ‘‘descrição dos parâmetros’’

DELETE FROM livro

WHERE cd_livro = 1

Page 28: 1. SQL - parte 1

DELETE

Atenção: a cláusula WHERE é opcional no comando DELETE;

Se ela não for informada você pode excluir todas as linhas de uma tabela, mas não exclui a tabela do Banco de dados.

Para excluir a tabela inteira (dados e estrutura) do banco de dados você deve utilizar o comando DROP (já explicado anteriormente).

Page 29: 1. SQL - parte 1

SELECT

SELECT Tem a função de extrair dados de uma tabela

SELECT “nome do campo” FROM “nome da tabela” ;

SELECT “nome do campo 1”, “nome do campo 2” FROM “nome da tabela” ;

Page 30: 1. SQL - parte 1

SELECT

SELECT cd_livro,nm_livro FROM livro;

cd_livro nm_Livro

1 O Hobbit

2 O Milagre

Page 31: 1. SQL - parte 1

SELECT

SELECT * FROM produto;

cd_livro nm_Livro autor_livro

1 O Hobbit J.R.R. Tolkien

2 O Milagre Nicolas Sparks

Page 32: 1. SQL - parte 1

SELECT

Para limitar as consultas, trazer resultados mais “limpos” e onerar menos os recursos do servidor, utilizam-se a cláusula WHERE e: operadores lógicos: AND, OR e LIKE operadores aritméticos: +, – e / operadores de comparação: = , < e !.

Page 33: 1. SQL - parte 1

SELECT

SELECT nm_livro WHERE cd_livro = 1;

SELECT nm_livro WHERE cd_livro = 1 AND autor_livro LIKE “J. R. R. Tolkien”

nm_Livro

O Hobbit

Page 34: 1. SQL - parte 1

UPDATE

Uma instrução UPDATE permite alterar: Uma coluna de uma linha da tabela; Várias colunas de uma linha; Uma coluna em várias linhas; Várias colunas em várias linhas;

Page 35: 1. SQL - parte 1

UPDATE

Para obter o que foi descrito acima usamos: A cláusula SET para escolher a(s) coluna(s);

Atributo = valor; A cláusula WHERE para escolher a(s) linha(s);

Condição de seleção;

Page 36: 1. SQL - parte 1

UPDATE

Se a condição no WHERE não for informada, a atualização será realizada em toda a tabela, então, você deve tomar muito cuidado ao atualizar um campo sem a cláusula WHERE.

Você pode utilizar o UPDATE com um único atributo ou com um conjunto de atributos;

Para isso é preciso adicionar mais pares de atributo = valor na cláusula SET. Coloque vírgula após cada um dos pares de “atributo = valor”;

Page 37: 1. SQL - parte 1

UPDATE

Sintaxe:

UPDATE nome_da_tabela

SET atributo = valor

WHERE condição;

Exemplo:

UPDATE livro

SET titulo = ‘O Casamento’

WHERE cd_livro = 2;

Page 38: 1. SQL - parte 1

Comandos DCL

DCL - Data Control Language (Linguagem de Controle de Dados)

Possui comandos responsáveis pelo controle de acesso ao banco de dados.

Esse processo é extremamente importante para manter a segurança das informações constantes no banco de dados.

Page 39: 1. SQL - parte 1

Comandos DCL

Cada usuário tem uma determinada necessidade em relação aos dados armazenados.

Na maioria dos casos, os acessos são controlados por funções e departamentos ou, tecnicamente falando, por tabelas.

As permissões de acesso podem se dar para um conjunto de dados.

Page 40: 1. SQL - parte 1

GRANT

O comando GRANT, que concede acesso a uma tabela específica a um determinado usuário, possui a seguinte sintaxe:

GRANT ‘‘lista de privilégios’’ ON ‘‘Nome da tabela’’ TO ‘‘usuário’’

GRANT SELECT ON livro TO Kelly

GRANT INSERT ON livro TO Mauricio

GRANT UPDATE ON livro TO Charles

GRANT DELETE ON livro TO Alice

Page 41: 1. SQL - parte 1

GRANT

Caso queira conceder todos os privilégios ao usuário:

GRANT ALL ON livro TO Dario;

GRANT ALL ON livro TO Marta WITH GRANT OPTION;

Page 42: 1. SQL - parte 1

REVOKE

REVOKE:

Assim como um administrador ou usuário avançado pode dar acesso a outro usuário, ele também pode revogá-lo, ou seja, retirar o acesso do usuário.

REVOKE INSERT ON cliente FROM Paulo

REVOKE INSERT, SELECT ON cliente FROM Paulo

Page 43: 1. SQL - parte 1

REVOKE

Algumas vantagens da utilização da linguagem SQL: Independência entre fabricantes. Portabilidade entre computadores. Redução dos custos de treinamento.

A desvantagem: fato de ser tão padronizada pode levar a uma natural

inibição da criatividade, pois o desenvolvedor retrai-se a soluções únicas já predispostas na linguagem.

Page 44: 1. SQL - parte 1

44

Referências

Apostila do curso de Bancos de Dados I - Senai

SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de banco de dados. 3 ed. São Paulo: Pearson Makron Books, 2005, Cap. 4

Elmasri, Navath, Sistemas de Banco de Dados, 4ª edição, 2005.

http://www.w3schools.com/sql