31
Banco de Dados SQL (Structured Query Language) icolas Colicheski Bucarth – IFRO / 2015 – email: [email protected]

Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: [email protected]

Embed Size (px)

Citation preview

Page 1: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

Banco de DadosSQL (Structured Query Language)

Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: [email protected]

Page 2: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

SQL – Structured Query Language

Ano de criação 1970 – E.F. Codd – Através de pesquisa da IBM, Califórnia; Inicialmente chamada de SEQUEL (Structured Englesh Query Language); Desenvolvida pela IBM, seguindo conceito de Codd; 1979 – a Relational Software Inc (Conhecida com ORACLE), lança primeira

versão comercial da linguagem; É o padrão como linguagem de manipulação de DADOS em baco de dados; ANSI e ISO - São responsáveis pela padronização da linguagem SQL; Primeiro padrão surgiu no ano de 86 (SQL-86), consistia basicamente o

mesmo SQL da IBM; Atualmente estamos no SQL 2003 – Como implantação na maioria do Banco

de Dados;

Page 3: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

SQL – Structured Query Language

O que é SQL? É um conjunto de manipulação de banco de dados utilizado para criar e

manter a estrutura dos banco de dados; Incluir Excluir Modificar Pesquisar

A linguagem SQL não é uma linguagem de programação autônoma; Podendo ser chamada de “Sublinguagem”;

SQL não é procedural, logo é possível especificar o que deve ser feito, e não como deve ser feito; Sendo que dessa forma, um conjunto de linhas (set) será atingido pelo comando, e não cada umas das linhas, como é feito no ambiente procedural.

Page 4: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

SQL – Structured Query Language

Data Definition Language (DDL): Permite a criação dos componentes dos banco de dados, como tabelas, índices e entre outros; CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX ALTER INDEX DROP INDEX

Data Query Language (DQL): Permite extrair dados dos Bancos de Dados SELECT

Page 5: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

SQL – Structured Query Language

Data Manipulation Language (DML): Permite a manipulação dos dados armazenados no banco de dados; INSERT DELETE UPDATE

Data Control Language (DCL): provê a segurança interna do banco de dados; CREATE USER ALTER USER GRANT REVOKE CREATE SCHEMA

Page 6: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

SQL – Structured Query Language

Em geral, os autores, mantem a seguinte DIVISÃO do SQL; DDL – Inclui os comando para criar os objetos do banco de dados, como

tablas, índices e visualizações, bem como os comando para definir os direitos de acesso a esses objetos;

DML – Inclui os comandos para – Inserir, atualizar, excluir e recuperar os dados das tabelas do banco de dados;

Page 7: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

Um pouco MAIS

BANCO DE DADOS Conjunto lógico de dados relacionados que possuem significância

intrínseca. Gerenciador de Banco de Dados

Controle de redundância: Informações devem possuir um mínimo de redundância visando estabelecer à estabilidade do modelo;

Controle de acesso: necessidade de saber quem pode realizar qual função dentro do banco de dados;

Esquematização: os relacionamentos devem estar armazenados no banco de dados para garantir a facilidade de entendimento e aplicações deve ser garantida pela banco de dados;

Backup ou cópias de segurança : Deve haver rotinas específicas para realizar a cópia de segurança dos dados armazenados.

Page 8: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

Um pouco MAIS TABELAS

Pode ser entendida como um conjunto de linhas e colunas. As colunas de uma tabela qualificam cada elemento (no caso linhas) com informações relacionadas ao objetos;

ENTIDADE É um agrupamento lógico de informações inter-relacionados necessárias para

execução das atividades do sistema. Uma entidade representa normalmente um objeto do mundo real ou, quando não é, contém informações relevantes às operações da empresa;

ATRIBUTOS Os atributos são as informações básicas que qualificam uma entidade e

descrevemos seus elementos ou características. Quando transpostos ao modelo físico (ao banco de dados), chamamos os atributos de campos ou colunas;

TUPLA Uma tupla equivale a um registro ou linha da tabela;

Page 9: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

Um pouco MAIS

CHAVE Primária

É o atributo que permite identificar uma única ocorrência de uma tupla em uma Entidade;

Estrangeira É o atributo que estabelece a relação de um Entidade com a Chave Primária de

outra Entidade e permite uma relação entre entidades. Secundária

É utilizada como meio de classificação e pesquisas em entidades;

Page 10: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

Um pouco MAIS

Relacionamento 1:1

Ocorre sempre que uma entidade tiver uma única ocorrência para cada ocorrência na outra entidade;

1:n Ocorre sempre que uma entidade se relacionar com uma ou mais tuplas da

outra entidade e esta outra se relacionar apenas com uma tupla daquela entidade;

m:n Ocorre sempre que uma entidade se relacionar com várias tuplas de outra

entidade e esta, por sua vez, relacionar-se com várias tuplas daquela entidade;

Page 11: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

DEFINIÇÃO DE DADOS

INTERGER OU INT Numero positivo ou Negativo inteiro.

SMALLINT Mesma função do INTERGER, ocupando metade do espaço;

NUMERIC Número positivo ou Negativo de ponto flutuante;

DECIMAL Semelhante ao NUMERIC, em alguns banco de dados podendo ter maior

precisão;

Page 12: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

DEFINIÇÃO DE DADOS

DOUBLE PRECISON Número de ponto flutuante de dupla precissão. Comporta-se como REAL,

mas permite maior aproximação de Resultado; FLOAT

Número de ponto flutuante, com precisão definida manualmente; BIT

Armazenamento de um número fixo de bits. BIT VARYING

Igual BIT, permitindo armazenamento de valores maiores. (utilizado para imagens);

Page 13: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

DEFINIÇÃO DE DADOS

DATE Permite o armazenamento de datas;

TIME Permite o armazenamento de horários;

TIMESTAMP Permite o armazenamento de datas e horários;

Page 14: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

DEFINIÇÃO DE DADOS

CHARACTER OU CHAR Permite o armazenamento de cadeias de caracteres (letras, símbolos e

números). O tamanho deve ser informado de forma a ficar fixo. CHARACTER VARYING OU VARCHAR

Permite o armazenamento de cadeias de caracteres, com tamanho variável.

INTERVAL Intervalo de data ou hora;

Page 15: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

Umas Palavrinhas!

Page 16: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

ABRINDO BANCO e CONECTANDO

Iniciar Todos Programas

PostgreSQL Conectando ao Banco

Usuário: postgres Senha: postgres

Page 17: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CREATE DATABASE

CREATE DATABASE “Nome da Base”; CREATE DATABASE “Seu_nome”; CREATE DATABASE Hayslan;

DROP DATABASE “Nome da Base”;

Aperte F5 para executar;

Page 18: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CREATE SCHEMA - ESQUEMAS

Esquemas são fichários de organização de objetos; Um DB pode ter dezenas de objetos como tabelas, visões e índices. Através do Esquema somos capaz de atribuir uma organização de acordo sua utilização e utilidade dentro do programa. Promovendo uma segurança de acesso;

CREATE SCHEMA “nome_do_esquema” AUTHORIZATION proprietário;

DROP SCHEMA “nome_do_esquema” ;

Page 19: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CREATE TABLE

CREATE TABLE nome-tabela(

Coluna_01 tipo de dados [restrição] ,Coluna_02 tipo de dados [restrição] ,PRIMARY KEY (Coluna_01 [, coluna_02]),FOREIGN KEY (Coluna_01 [, coluna_02])REFEERENCE nome-tabela,CONTRAINT restrição

);

Page 20: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CREATE TABLE

CREATE TABLE TABELA01(ID INT NOT NULL,NOME VARCHAR(60) NOT NULL,CPF VARCHAR (12) NOT NULL,DATA_NASCIMENTO DATE,SALARIO FLOAT NOT NULL DEFAULT '1000',COMENTARI TEXT NULL,PRIMARY KEY (ID),UNIQUE (CPF));

Page 21: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CREATE TABLE

CREATE TABLE TABELA02(ID INT NOT NULL,NOME VARCHAR(60) NOT NULL,CPF VARCHAR (12) NOT NULL,DATA_NASCIMENTO DATE,SALARIO FLOAT NOT NULL DEFAULT '1000',COMENTARI TEXT NULL,CONSTRAINT TABALA02_KEY01_ID PRIMARY KEY (ID),CONSTRAINT UNICA_CPF UNIQUE (CPF));

Page 22: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

TABLE – OUTRO COMANDOS

DROP TABLE “nome da tabela”; - Apagando a Tabela;DROP TABLE TABELA01;DROP TABLE TABELA02;

Page 23: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

FOREIGN KEY

CREATE TABLE TABELA01(ID01 INT NOT NULL,NOME VARCHAR(60) NOT NULL,CPF VARCHAR (12) NOT NULL,DATA_NASCIMENTO DATE,SALARIO FLOAT NOT NULL DEFAULT '1000',COMENTARI TEXT NULL,CONSTRAINT TABALA01_KEY01_ID PRIMARY KEY (ID01),CONSTRAINT UNICA_CPF UNIQUE (CPF));

Page 24: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

FOREIGN KEY

CREATE TABLE TABELA02(ID02 INT NOT NULL,ID01 INT NULL, /*CHAVE ESTRANGEIRA*/NOME_CONTATO VARCHAR(60) NOT NULL,CPF_CONTATO VARCHAR (12) NOT NULL,DATA_NASCIMENTO_CONTATO DATE,CONSTRAINT TABALA02_KEY02_ID PRIMARY KEY (ID02),CONSTRAINT UNICA_CPF UNIQUE (CPF));

Page 25: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

FOREIGN KEY ALTER TABLEALTER TABLE tabela02

ADD CONSTRAINT fk_tabela01_id01 FOREIGN KEY (ID01) REFERENCES tabela01 (ID01);

ALTER TABLE tabela02 ADD CONSTRAINT fk_tabela01_id01 FOREIGN KEY (ID01) REFERENCES tabela01 (ID01) ON DELETE CASCADE ON UPDATE CASCADE;

Page 26: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

FOREIGN KEYCREATE TABLE aluno1.TABELA02

(ID02 INT NOT NULL,ID01 INT NULL, /*CHAVE ESTRANGEIRA*/NOME_CONTATO VARCHAR(60) NOT NULL,CPF_CONTATO VARCHAR (12) NOT NULL,DATA_NASCIMENTO_CONTATO DATE,CONSTRAINT TABELA02_KEY02_ID PRIMARY KEY (ID02),CONSTRAINT tabela01_ID01 FOREIGN KEY(ID01)

REFERENCES aluno1.tabela01 ON UPDATE CASCADEON DELETE RESTRICT,

CONSTRAINT UNICA_CPF_CONTATO UNIQUE (CPF_CONTATO));

Page 27: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

DROP FOREIGN KEY

ALTER TABLE tabela01 DROP CONSTRAINT fk_tabela01_id01;

Page 28: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

COMANDO ALTER e DROP

Adicionando um novo Atributo OU nova colunaALTER TABLE aluno1.tabela01

ADD sexo CHAR (1) CHECK ((SEXO = 'M') OR (SEXO = 'F'));

ALTER TABLE aluno1.tabela01DROP sexo;

Adicionando o tipo e o tamanho de um atributoALTER TABLE aluno1.tabela02

ALTER NOME_CONTATO TYPE VARCHAR(60);

Page 29: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CRIANDO A SEQUENCIA

Criando sequencia para auto incremento

CREATE SEQUECE seq_tabela01 INCREMENT 1 START 1;

ALTER TABLE aluno1.tabela01 ALTER COLUMN ID01 SET DEFAULT NEXTVAL ('seq_tabela01');

Page 30: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

CRIANDO A SEQUENCIA

Criando sequencia para auto incremento

CREATE SEQUECE seq_tabela01 INCREMENT 1 START 1;

ALTER TABLE aluno1.tabela01 ALTER COLUMN ID01 SET DEFAULT NEXTVAL ('seq_tabela01');

Page 31: Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 – email: hayslan.bucarth@ifro.edu.br

ATIVIDADE NO MOODLE

DICIONARIO DE DADOS Exercício – Passar as tabelas que se encontram no dicionário de dados,

criando tabelas e comandos necessários para seu funcionamento; Valor: 10 pontos, no momento que apertar o botão de execução ser

executado inteiramente certo, sem erro.