Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados – Parte 2 Diego Farias EETEPA 2018 Conteúdo Programático Definições Banco de Dados X Sistemas de Arquivos; Sistemas Gerenciadores de Banco de Dados (SGBD); Usuários de um SGBD; Linguagem de Definição de Dados; Linguagem de Manipulação de Dados; Linguagem de Controle de Dados; Linguagem de Consulta de Dados; Modelagem de dados e Projeto de Banco de Dados; Níveis de Abstração de Dados, Níveis de Modelagem e Normalização; Modelo Conceitual e Físico; EETEPA – CACAU 2018 2 1° Avaliação • Prova teórica – 4,0 pts – Toda a disciplina ministrada em sala de aula. (material de aula, exercícios e material de apoio disponibilizado na plataforma) • Atividade prática – 4,0 pts – Realizada no laboratório e proposta pelo professor • Lista de exercícios e outras atividades – 2,0 pts EETEPA – CACAU 2018 3 Linguagens de Banco de Dados • A linguagem SQL (Structured Query Language) foi resultado de um estudo de E. F. Codd, membro do laboratório de pesquisa da IBM em San Jose, Califórnia, em meados da década de 70. • No início dos anos 80, o Instituto Americano de Padronização (ANSI – American National Standards Institute) iniciou os trabalhos de desenvolvimento de uma versão padronizada do SQL, a qual foi publicada nos anos de 1986 e 1987. • Fabricantes de bancos de dados sentiram-se seguros em adota-la como sendo a linguagem padrão para seus bancos de dados. EETEPA – CACAU 2018 4 Linguagens de Banco de Dados EETEPA - CACAU 2018 5 DDL - Linguagens de Definição de Dados DDL (Data Definition Language) permite a criação, eliminação e alteração da estrutura física da Base de Dados. • CREATE DATABASE - cria um novo banco de dados • USE NOME_DATABASE – Usar o banco de dados recém criado • CREATE TABLE - cria uma nova tabela • ALTER DATABASE - altera um banco de dados • ALTER TABLE - modifica uma tabela • DROP TABLE - apaga uma tabela • CREATE INDEX - cria um índice (chave de busca) • DROP INDEX - exclui um índice • TRUNCATE – remove todos os registros de uma tabela EETEPA – CACAU 2018 6 DDL - Linguagens de Definição de Dados CREATE DATABASE • Antes de qualquer coisa como a criação de tabelas, inserir e consultar dados, você deve criar um banco de dados primeiro. • A sintaxe de criação de uma nova base de dados é simples como se segue e deve ser digitada na query para criar uma database com o nome gregs_list: EETEPA – CACAU 2018 7 DDL - Linguagens de Definição de Dados EETEPA – CACAU 2018 8 DDL - Linguagens de Definição de Dados CREATE TABLE • Tabelas são elementos básicos do banco de dados. Antes de armazenar dados em uma tabela, você precisa criá-las. O SQL fornece a instrução CREATE TABLE para permitir que você faça isso. EETEPA – CACAU 2018 9 EETEPA – CACAU 2018 10 DDL - Linguagens de Definição de Dados EETEPA – CACAU 2018 11 USE DATABASE • É necessário dizer ao SGBD que usará a Database recém criada, utilizando o comando USE nome-da-database. • Senão fizer isso, todos os comandos executados serão criados na database padrão do SGBD e na realidade o que queremos é criar tabelas na database gregs_list. EETEPA – CACAU 2018 12 DDL - Linguagens de Definição de Dados EETEPA – CACAU 2018 13 Comando NULL • Algumas colunas na sua tabela devem ter sempre valores, você pode facilmente configurar sua tabela para não aceitar valores NULOS para algumas colunas. • Se você especificou no comando CREATE TABLE que algumas colunas não aceitem valores nulos, você deve sempre fornecer um valor para essa Coluna no seu comando INSERT. Se não o fizer, acontecerá um erro. EETEPA – CACAU 2018 14 PRIMARY KEY • Uma PRIMARY KEY declara uma coluna ou uma combinação de colunas cujos valores identificam exclusivamente cada registro na tabela. • A PRIMARY KEY ajuda a reforçar a integridade da entidade (tabela) automaticamente. • Há uma e apenas uma chave primária para cada tabela. EETEPA – CACAU 2018 15 PRIMARY KEY • Existem várias regras que a chave primária deve seguir: EETEPA – CACAU 2018 16 DDL - Linguagens de Definição de Dados ALTER • O SQL disponibiliza o comando ALTER TABLE para permitir que você modifique a estrutura de uma tabela existente. Com o ALTER TABLE, você pode executar as seguintes ações em uma tabela no banco de dados: – Adicionar uma nova coluna ou remover uma coluna existente na tabela. – Modificar o tamanho máximo de um tipo de dados da coluna. – Adicionar ou remover o valor padrão de uma coluna. – Adicionar ou remover restrições da tabela. EETEPA – CACAU 2018 17 DDL - Linguagens de Definição de Dados • Para adicionar uma nova coluna em uma tabela você deve utilizar a seguinte sintaxe: • Para remover uma coluna existente em uma tabela no banco de dados, você precisa especificar a tabela e o nome da coluna que você deseja remover. Aqui está a sintaxe: EETEPA – CACAU 2018 18 DDL - Linguagens de Definição de Dados • Se excluir uma coluna que é chave primária, que é uma parte de uma chave composta da tabela, não só os dados da coluna são removidas, mas também todos os registos duplicados na tabela que se relaciona. • Você não terá que começar tudo do zero nas tabelas que você criou sem PRIMARY KEY você pode utilizar a declaração ALTER TABLE e alterar uma tabela existente. EETEPA – CACAU 2018 19 DDL - Linguagens de Definição de Dados DROP • É utilizado para remover do banco de dados as tabelas. Quando você usa o DROP TABLE, o gerenciador de banco de dados remove todos os objetos relacionados a essa tabela, incluindo dados, suas definições, índices, restrições de tabela, triggers (gatilhos) e permissões. • O DROP TABLE irá funcionar contendo ou não DADOS em sua tabela. Uma vez que sua tabela é excluída, todos e quaisquer dados que estavam nela serão perdidos. • Se você quiser apenas apagar os dados utilize o comando DELETE ou TRUNCATE. EETEPA – CACAU 2018 20 DDL - Linguagens de Definição de Dados EETEPA – CACAU 2018 21 DML - Linguagem de manipulação de Dados DML (Data Manipulation Language) permite a Inserção, edição e exclusão dos dados das tabelas. • INSERT - insere novos dados em um banco de dados • UPDATE - atualiza os dados em um banco de dados • DELETE - exclui dados de um banco de dados EETEPA – CACAU 2018 22 DML - Linguagem de manipulação de Dados INSERT • O INSERT é muitas vezes chamado de INSERT INTO. • A sintaxe do INSERT que permite inserir um registro de cada vez em uma tabela de banco de dados: EETEPA – CACAU 2018 23 DML - Linguagem de manipulação de Dados EETEPA – CACAU 2018 24 Exemplo INSERT EETEPA – CACAU 2018 25 DML - Linguagem de manipulação de Dados • Mudando a ordem das colunas - Você pode alterar a ordem das colunas no comando insert, porém os valores deverão seguir a mesma ordem das colunas. EETEPA – CACAU 2018 26 DML - Linguagem de manipulação de Dados • Omitindo nome das colunas - Você pode suprimir os nomes das colunas, porém nesse caso, todos os valores correspondentes a todas as colunas dos banco de dados devem ser declarados e na mesma ordem que constam na tabela. EETEPA – CACAU 2018 27 DML - Linguagem de manipulação de Dados • Inserindo apenas algumas colunas - Você pode inserir apenas algumas colunas e deixar outras de fora. EETEPA – CACAU 2018 28 DML - Linguagem de manipulação de Dados UPDATE • Permite modificar dados em uma tabela no banco de dados. Com o UPDATE, você pode modificar os dados de toda a tabela ou um subconjunto de dados com base na condição da cláusulaWHERE. • Quando você usa o UPDATE, você não está apagando nada, em vez disso, você está reciclando um registro velho para um novo registro. • CUIDADO: A cláusula WHERE é opcional. Se você omitir a cláusula WHERE, todos os registros da tabela serão atualizado. EETEPA – CACAU 2018 29 DML - Linguagem de manipulação de Dados • Suponha que um dos funcionários da empresa se case e precise mudar seu sobrenome, então você tem que fazer a mudança usando a instrução UPDATE. Aqui está a consulta para fazer isso: EETEPA – CACAU 2018 30 DML - Linguagem de manipulação de Dados • O UPDATE atualiza uma coluna, ou colunas, com um novo valor. E, assim como o SELECT, você pode utilizar a cláusula WHERE para indicar qual a linha que deseja editar. • A palavra SET informa ao SGBD que é preciso mudar uma coluna, ela deve vir antes do sinal de igual que contém o valor a ser alterado. EETEPA – CACAU 2018 31 DML - Linguagem de manipulação de Dados EETEPA – CACAU 2018 32 DML - Linguagem de manipulação de Dados DELETE • Permite excluir um ou mais registros em uma tabela no banco de dados. • Ele também usa a cláusula WHERE. EETEPA – CACAU 2018 33 DML - Linguagem de manipulação de Dados EETEPA – CACAU 2018 34 DQL – Linguagem de Consulta de Dados DQL (Data Query Language) é utilizado para consultas no banco de dados. SELECT - extrai dados de um banco de dados • A instrução SELECT permite recuperar os dados a partir de uma ou mais tabelas do banco de dados. EETEPA – CACAU 2018 35 DQL – Linguagem de Consulta de Dados • Suponha que você quer recuperar a coluna sobrenome (sobrenome) na tabela funcionários, você pode executar a seguinte consulta: • A consulta busca os valores da coluna sobrenome (sobrenome) em todas as linhas da tabela funcionários e retorna o resultado abaixo. EETEPA – CACAU 2018 36 DQL – Linguagem de Consulta de Dados • Você também pode usar o comando SELECT para recuperar várias colunas de uma tabela no banco de dados. Para fazer isso você deve colocar uma vírgula entre a lista de colunas. EETEPA – CACAU 2018 37 DQL – Linguagem de Consulta de Dados • Para recuperar todas as informações (colunas) de uma tabela, você poderia listar todos os nome de colunas e separá-las por vírgulas. • Ou você pode usar um asterisco (*) para indicar que você deseja recuperar todas as colunas sem precisar explicitamente escrever a lista de colunas. EETEPA – CACAU 2018 38 DQL – Linguagem de Consulta de Dados WHERE • A declaração do SELECT com a cláusula WHERE dá ao SGBD algo específico para ser pesquisado, com isso são retornados apenas as linhas que correspondem à condição. • O sinal de igual (=) na cláusula WHERE é usado para testar se cada valor na coluna é igual a condição, se corresponder, a linha é retornada, caso não encontre nenhum registro, nenhuma linha é retornada. EETEPA – CACAU 2018 39 EETEPA – CACAU 2018 40 DQL – Linguagem de Consulta de Dados WHERE com operador AND Várias condições podem ser unidas pelo operador AND e todas devem ser verdadeiras para retornar a condição como TRUE. Se uma das condições é falsa, toda a condição é avaliada como FALSE. Se uma das condições é desconhecida ou NULL toda a condição é avaliada como UNKNOWN (DESCONHECIDO). EETEPA – CACAU 2018 41 DQL – Linguagem de Consulta de Dados WHERE com operador OR Várias condições unidas pelo operador OR devem ser falsas para a condição inteira ser avaliada como FALSE. Se uma das condições é verdadeira, toda a condição é avaliada como TRUE. Se uma das condições é desconhecida ou NULL toda a condição é avaliada para desconhecida ou NULL. EETEPA – CACAU 2018 42 DQL – Linguagem de Consulta de Dados EETEPA – CACAU 2018 43 DQL – Linguagem de Consulta de Dados DISTINCT - É utilizado para eliminar as linhas duplicadas no conjunto de resultados da instrução SELECT. EETEPA – CACAU 2018 44 DQL – Linguagem de Consulta de Dados ORDER BY - Permite classificar o conjunto de resultados com base em um ou mais parâmetros de classificação em ordem crescente ou decrescente. EETEPA – CACAU 2018 45 DQL – Linguagem de Consulta de Dados IN - O operador IN, juntamente com a clausula where, permite determinar se um valor está contido em um conjunto de valores. • É importante notar que o conjunto de valores deve ser delimitado por vírgulas e encerrado dentro de parênteses. EETEPA – CACAU 2018 46 DQL – Linguagem de Consulta de Dados NOT IN - Para encontrar todos os registros cujo valor da coluna não está no conjunto. O NOT IN lhe dará o resultado oposto do IN. EETEPA – CACAU 2018 47 DQL – Linguagem de Consulta de Dados BETWEEN - permite recuperar os registros que têm valores dentro de um intervalo. • O between é equivalente a usarmos o sinal de <= e => , mas não é a mesma coisa usar < e >. O between retorna os valores iguais também, lembre disso. EETEPA – CACAU 2018 48 DQL – Linguagem de Consulta de Dados EETEPA – CACAU 2018 49 DQL – Linguagem de Consulta de Dados • É possível ter o mesmo resultado do BETWEEN utilizando os operadores menor ou igual (<=) e maior ou igual (> =) operadores como se segue: • Da mesma maneira que o operador IN, o operador BETWEEN pode se combinar com operador NOT para encontrar registros que não têm valores em um determinado intervalo. 50 DQL – Linguagem de Consulta de Dados LIKE • A instrução LIKE permite que você execute uma cadeia de pesquisa de texto com base em padrões. A declaração LIKE é usada na cláusula WHERE de quaisquer declarações SQL válidas como SELECT, INSERT, UPDATE e DELETE. • O SQL fornece-lhe dois carácteres coringa para a construção de um padrão. Eles são porcentagem (%) e underline ( _ ). EETEPA – CACAU 2018 51 • Porcentagem (%) permite combinar uma sequência de caracteres, incluindo espaços. • underline ( _ ) permite corresponder a qualquer caractere único. EETEPA – CACAU 2018 52 DCL - Linguagem de Controle de Dados DCL - (Data Control Language) atribui permissões aos objetos. A Linguagem de Controle de Dados (DCL) é um subconjunto do Lanaguge SQL (Structured Query) que permite que os administradores de banco de dados configurem o acesso de segurança para bancos de dados relacionais. • RANT é utilizado para adicionar novas permissões para um usuário. • REVOKE é utilizado para remover o acesso de banco de dados de um usuário. • DENY é utilizado para impedir explicitamente que um usuário receba uma permissão especial. EETEPA – CACAU 2018 53
Compartilhar