Upload
glaice-kelly-quirino
View
236
Download
1
Embed Size (px)
DESCRIPTION
Aula de Banco de Dados
Citation preview
SQL
Glaice Kelly da Silva Quirino
Setembro, 2014
Agenda
Introdução
Histórico
Comandos DDL
Comandos DML
Comandos DCL
Importancia do SQL
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.
Introdução
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
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
Histórico
• Lançamento da SQL - 921992
• SQL31999
• SQL:20032003
• SQL:20082008
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.
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;
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));
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.
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.
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’
Create
Create
CREATE TABLE Clientes (
cpf INT NOT NULL,
nome VARCHAR(40),
PRIMARY KEY (cpf));
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) );
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”)
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.
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;
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) );
ALTER
Ainda é possível substituir o ADD e alterar da seguinte forma: DROP = exclui colunas RENAME = renomeia colunas CHANGE = alterar colunas
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.
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);
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.
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.
INSERT
INSERT INTO produto (nm_livro, autor_livro)
VALUES (‘‘O Hobbit’’, ‘‘J. R. R. Tolkien’’);
INSERT INTO livro VALUES
(2,”O Milagre”, “Nicolas Sparks”);
DELETE
DELETE: Para deletar dados:
DELETE FROM ‘‘nome da tabela’’
WHERE ‘‘descrição dos parâmetros’’
DELETE FROM livro
WHERE cd_livro = 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).
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” ;
SELECT
SELECT cd_livro,nm_livro FROM livro;
cd_livro nm_Livro
1 O Hobbit
2 O Milagre
SELECT
SELECT * FROM produto;
cd_livro nm_Livro autor_livro
1 O Hobbit J.R.R. Tolkien
2 O Milagre Nicolas Sparks
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 !.
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
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;
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;
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”;
UPDATE
Sintaxe:
UPDATE nome_da_tabela
SET atributo = valor
WHERE condição;
Exemplo:
UPDATE livro
SET titulo = ‘O Casamento’
WHERE cd_livro = 2;
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.
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.
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
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;
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
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.
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