IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 – LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão da Tabela: DROP 2.2 Linguagem de Manipulação de Dados (DML) 2.2.1 Inserção de dados: INSERT 2.2.2 Atualização de registros: UPDATE 2.2.3 Exclusão de Registros: DELETE 2.3 Cláusula WHERE e seus OPERADORES IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL CONTEÚDO 2.4 Comando SELECT: Seleção de Registros 2.4.1 Sintaxe básica 2.4.2 Operadores lógicos 2.4.3 Comandos com expressões 2.4.4 Cláusula ORDER BY 2.4.5 Cláusula DISTINCT 2.4.6 Agrupamento 2.4.7 Cláusula GROUP BY 2.4.7 Cláusula HAVING 2.4.8 Comandos de junção 2.5 Linguagem de Controle de Dados (DCL) 2.5 VISÕES IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2. LINGUAGEM SQL DDL - ESTRUTURA DTL MULTIPROCESSAMENTO DML - DADOS DCL - ACESSO CREATE SELECT GRANT BEGIN ALTER INSERT REVOKE COMMIT DROP UPDATE RENAME DELETE ROLLBACK TRUNCATE IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS - DDL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) Os comandos DDL (Data Definition Language ou Linguagem de Definição de Dados) são utilizados para definir a estrutura de banco de dados, criando ou removendo objetos. Os principais comandos DDL são: 2.1.1 CREATE DATABASE 2.1.2 CREATE TABLE 2.1.3 DROP DATABASE 2.1.4 DROP TABLE 2.1.5 ALTER TABLE 2.1.6 RENAME 2.1.7 TRUNCATE IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.1 CREATE DATABASE Objetivo: Criar banco de dados Sintaxe: CREATE DATABASE <nome do banco de dados>; Exemplo: CREATE DATABASE DB_Escola; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE Objetivo: Criar tabelas Sintaxe 1: CREATE TABLE <nome da tabela> ( <campo e tipos> ); Exemplo: CREATE TABLE Funcionarios ( ID INT, NOME VARCHAR(50)); IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE Exemplo – Tabela Departamentos CREATE TABLE Departamentos ( ID_DEPARTAMENTO INT NOT NULL, NOME VARCHAR(50) NOT NULL, CONSTRAINT pk_departamentos PRIMARY KEY(ID_DEPARTAMENTO) ); IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE Exemplo 2 – Tabela Departamentos CREATE TABLE Departamentos ( ID_DEPARTAMENTO INT NOT NULL, NOME VARCHAR(50) NOT NULL, CONSTRAINT pk_departamentos PRIMARY KEY(ID_DEPARTAMENTO) ); IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL CAMPOS E VALORES CHAVE PRIMÁRIA MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE Exemplo 3 – Tabela Funcionários CREATE TABLE Funcionarios ( MATRICULA INT NOT NULL, NOME VARCHAR(50) NOT NULL, CPF CHAR(11) NOT NULL, SALARIO DECIMAL(10, 2) NOT NULL, ID_DEPARTAMENTO INT, CHAVE CONSTRAINT pk_funcionários PRIMÁRIA PRIMARY KEY(MATRICULA), CONSTRAINT un_funcionarios_cpf UNIQUE(CPF), CHAVE CONSTRAINT ck_funcionarios_salario CHECK(SALARIO >= 0), CANDIDATA CONSTRAINT fk_funcionarios_departamentos FOREIGN KEY(ID_DEPARTAMENTO) CHECAGEM REFERENCES Departamentos(ID_DEPARTAMENTO) ON UPDATE RESTRICT CHAVE IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL ON DELETE RESTRICT ); ESTRANGEIRA 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE Exemplo 4 – Tabela Funcionários CREATE TABLE Funcionarios ( MATRICULA INT NOT NULL, NOME VARCHAR(50) NOT NULL, CPF CHAR(11) NOT NULL, SALARIO DECIMAL(10, 2) NOT NULL, ID_DEPARTAMENTO INT, CHAVE PRIMÁRIA PRIMARY KEY (MATRICULA), UNIQUE (CPF), CHAVE CANDIDATA CHECAGEM CHECK (SALARIO >= 0), FOREIGN KEY (ID_DEPARTAMENTO) REFERENCES Departamentos ); CHAVE ESTRANGEIRA IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE Exemplo 5 – Tabela Funcionários CREATE TABLE Funcionarios ( MATRICULA INT PRIMARY KEY NOT NULL, CHAVE PRIMÁRIA NOME VARCHAR(50) NOT NULL, CPF CHAR(11) UNIQUE NOT NULL, CHAVE CANDIDATA SALARIO DECIMAL(10, 2) NOT NULL, ID_DEPARTAMENTO INT REFERENCES Departamentos, CHECK (SALARIO >= 0), CHAVE ); CHECAGEM IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL ESTRANGEIRA MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE a) Tipos de Dados CREATE TABLE Funcionarios ( ID INT, NOME VARCHAR(50)); Os tipos de dados são os definidos pelo padrão ANSI SQL: 2011. Cada SGBD possui sua própria lista de tipos de dados suportados, que pode ou não seguir o padrão ANSI. IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE a) Tipos de Dados (continuação) SMALLINT INTEGER (INT) BIGINT DECIMAL NUMERIC Numéricos exatos FLOAT REAL DOUBLE Numéricos aproximados IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE a) Tipos de Dados (continuação) CHARACTER (CHAR) CHARACTER(VARCHAR) CHARACTER LARGE OBJ (CLOB) Caracteres BINARY BINARY VARYING (VARBINARY) BINARY LARG OBJ (BLOB) Binários IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE a) Tipos de Dados (continuação) DATE TIME TIMESTAMP INTERVAL Data e Hora BOOLEAN Booleano IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE b) Tipos de Valores CREATE TABLE Funcionarios ( ID INT NOT NULL, NOME VARCHAR(50) NULL); Os tipos de valores são indicados após o tipo de dados para definir se o campo poderá conter valores nulos ou não. IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE b) Tipos de Valores (continuação) NOT NULL Coluna não pode admitir valores nulos NULL Coluna pode admitir valores nulos DEFAULT Valor atribuído automaticamente a coluna quando um valor especifico não e informado. IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE c) Restrições de Integridade CREATE TABLE Funcionarios ( ID INT NOT NULL, NOME VARCHAR(50) NULL CONSTRAINT <nome_restrição> PRIMARY KEY (coluna) ); As restrições de integridade são usados para garantir a exatidão e a consistência dos dados em um banco de dados. IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE c) Restrições de Integridade (continuação) Chave Primária CONSTRAINT <nome_restrição> PRIMARY KEY (coluna) Chave candidata / alternativa CONSTRAINT <nome_restrição> UNIQUE (colunas) IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE c) Restrições de Integridade (continuação) Checagem Chave estrangeira CONSTRAINT <nome_restrição> CHECK(expressão) CONSTRAINT <nome_restrição> FOREIGN KEY (colunas) REFERENCES tabela (colunas) IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE d) Chave Estrangeira – Ações Referenciais CONSTRAINT <nome_restrição> FOREIGN KEY (colunas) REFERENCES tabela (colunas) ON UPDATE ação_referencial ON DELETE ação_referencial IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.2 CREATE TABLE d) Chave Estrangeira – Ações Referenciais (continuação) • CASCATE: Propaga a alteração ou remoção da chave primaria para a chave estrangeira • RESTRICT: A alteração ou remoção da chave primaria não é possível se existirem valores correspondentes na chave estrangeira • NO ACTION: Não executa qualquer ação na chave estrangeira quando a chave primária é alterada ou removida • SET DEFAULT: Altera o valor da chave estrangeira para o valor DEFAULT da coluna quando a chave primária é alterada ou removida • SET NULL: Altera o valor da chave estrangeira para o valor NULL quando a chave primária é alterada ou removida IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.3 DROP DATABASE Objetivo: Excluir banco de dados Sintaxe: Exemplo: DROP DATABASE <nome do banco de dados>; DROP TABLE DB_Escola; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.4 DROP TABLE Objetivo: Excluir tabelas Sintaxe: Exemplo: DROP TABLE <nome da tabela>; DROP TABLE Funcionario; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.5 ALTER TABLE Objetivo: Alterar tabelas a) Adicionar colunas na tabela Sintaxe: Exemplo: ALTER TABLE <nome da tabela> ADD <nome da coluna> <tipo>; ALTER TABLE Funcionario ADD CPF varchar(11) DEFAULT NULL; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.5 ALTER TABLE Objetivo: Alterar tabelas b) Alterar tipo das colunas da tabela Sintaxe: Exemplo: ALTER TABLE <nome da tabela> MODIFY COLUMN <nome da coluna> <tipo>; ALTER TABLE Funcionario MODIFY COLUMN CPF varchar(20); IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.5 ALTER TABLE Objetivo: Alterar tabelas c) Excluir colunas da tabela Sintaxe: Exemplo: ALTER TABLE <nome da tabela> DROP <nome da coluna>; ALTER TABLE Funcionario DROP CPF; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.5 ALTER TABLE Objetivo: Alterar tabelas d) Excluir índices da tabela Sintaxe: Exemplo: ALTER TABLE <nome da tabela> DROP INDEX <nome da coluna>; ALTER TABLE Funcionario DROP INDEX CPF; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.6 RENAME Objetivo: Renomear tabelas Sintaxe: Exemplo: RENAME TABLE <nome da tabela> TO <novo nome da tabela>; RENAME TABLE Funcionario TO Empregados; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) 2.1.7 TRUNCATE Objetivo: Excluir todos os registros da tabela Sintaxe: Exemplo: TRUNCATE TABLE <nome da tabela>; TRUNCATE TABLE Funcionario; IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) RESUMO e EXEMPLOS • Criar banco de dados: CREATE DATABASE DB_Escola; • Criar tabela: CREATE TABLE Departamento ( ID_DEPARTAMENTO INT NOT NULL, NOME VARCHAR(50) NOT NULL, CONSTRAINT pk_departamentos PRIMARY KEY(ID_DEPARTAMENTO) ); IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) RESUMO e EXEMPLOS • Excluir banco de dados: DROP DATABASE DB_Escola; • Excluir tabelas: DROP TABLE Departamento; • Adicionar coluna na tabela: ALTER TABLE Departamento ADD ANDAR VARCHAR(100); IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) RESUMO e EXEMPLOS • Alterar o tipo da coluna na tabela: ALTER TABLE Departamento MODIFY COLUMN ANDAR INT; • Excluir coluna na tabela: ALTER TABLE Departamento DROP ANDAR; • Renomear tabelas: RENAME TABLE Departamento TO Departamento_Novo IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL 2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) RESUMO e EXEMPLOS • Excluir todos os registros da tabela: TRUNCATE TABLE Departamento IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL MODELO RELACIONAL EXERCÍCIO 1 a) Criar um banco de dados com o nome: DB_LojaFuturo b) Criar as tabelas a seguir: PRODUTO ID_PRODUTO DESCRIÇÃO VALOR ITEM_PEDIDO ID_PRODUTO ID_PEDIDO QUANTIDADE FORNECEDOR_PRODUTO ID_FORNECEDOR ID_PRODUTO FORNECEDOR ID_FORNECEDOR NOME IMPLEMENTAÇÃO DE BANCO DE DADOS - MÓDULO 2 – Linguagem SQL PEDIDO ID_PEDIDO ID_CLIENTE DATA CLIENTE ID_CLIENTE NOME CPF TIPO MODELO RELACIONAL FIM DO MÓDULO 2 - DDL