Banco de dados – 2022/1
Linguagem Estruturada de Pesquisa
SQL – Parte 01
Banco de dados
Introdução
Uma linguagem de consulta é a linguagem por
meio da qual os usuários obtêm informações do banco
de dados.
Essas linguagens são, tipicamente, de nível mais
alto que as linguagens de programação tradicionais. As
linguagens de consulta podem ser categorizadas como
procedurais ou não-procedurais. 2
Banco de dados
Introdução
Em uma linguagem procedural, o usuário deve
"ensinar" ao sistema a realização de uma sequência de
operações no banco de dados para obter o resultado
desejado.
Em uma linguagem não-procedural, o usuário descreve
a informação desejada sem fornecer um procedimento
específico para a obtenção dessas informações.
3
Banco de dados
Introdução
Os sistemas de banco de dados comerciais oferecem
uma linguagem de consulta que incorpora elementos de
ambos os enfoques: procedurais e não-procedurais.
Linguagens "puras": a álgebra relacional é
procedural, enquanto o cálculo relacional de uma tupla e
o cálculo relacional de um domínio são não-procedurais.
4
Banco de dados
Introdução
Essas linguagens de consulta são concisas e
formais, sem "o açúcar sintático" das linguagens
comercias, mas ilustram as técnicas fundamentais
para a extração de dados do banco de dados.
5
SQL - História
6
Banco de dados
SQL - História
O nome "SQL" significa "Structured Query Language" -
Linguagem Estruturada de Pesquisa. Essa linguagem, de grande
utilização, teve seus fundamentos no modelo relacional de
Codd (1970).
Sua primeira versão recebeu o nome de SEQUEL
("Structured English Query Language"), sendo definida por D.
D. CHAMBERLIN, entre outros, em 1974, nos laboratórios de
pesquisa da IBM (Califórnia). 7
Banco de dados
SQL - História
Devido ao sucesso dessa nova forma de consulta
e manipulação de dados, dentro de um ambiente de
banco de dados, a utilização da SQL foi se tornando
cada vez maior.
Com isso uma grande quantidade de SGBD's
tiveram como linguagem básica a SQL - SQL/DS e DB2
da IBM, ORACLE da Oracle Corporation, RDB da
Digital, SYBASE da Sybase INC, e Microsoft® SQL
ServerTM, entre outros. 8
Banco de dados
SQL - História
A SQL tornou-se um padrão de fato, no mundo
dos ambientes de banco de dados relacionais.
Bastava agora se tornar de direito. Então, em 1982,
o American National Standard Institute (ANSI)
tornou a SQL padrão oficial de linguagem em
ambiente relacional.
9
Banco de dados
SQL - História
O modelo relacional é constituído basicamente
de tabelas, cada qual contendo linhas (tuplas) e
colunas.
Os registros na tabela não são ordenados e sua
localização se faz por meio de um campo-chave, ou
seja, um campo que assume o papel de chave
primária da tabela. É por intermédio dessa chave que
se identifica uma, e somente uma, ocorrência do valor
contido no campo. 10
Banco de dados
SQL - História
Uma das razões da popularidade dos sistemas
relacionais é a sua facilidade de manipulação e
entendimento.
A linguagem SQL foi desenvolvida
especialmente para o ambiente relacional, podendo
ser adaptada a qualquer ambiente não relacional.
11
Banco de dados
SQL - História
A ideia original da SQL só previa seu uso de forma
interativa. Após sofrer alguns acréscimos, ela passou
também a ter capacidade de ser utilizada em linguagens
hospedeiras, tais como: COBOL, FORTRAN, "C", etc.
Atualmente, a linguagem SQL assume um papel
muito importante nos sistemas de gerenciamento de
banco de dados, podendo ter muitos enfoques. 12
Banco de dados
SQL - História
13
SQL
14
Banco de dados
SQL
Linguagem interativa de consulta (query AdHoc)
Por meio de comandos SQL, os usuários podem montar
consultas poderosas sem a necessidade da criação de um
programa, podendo utilizar Forms ou ferramentas de montagem
de relatório;
Linguagem de programação para acesso a banco de dados
Comandos SQL embutidos em programas de aplicação que
15
acessam os dados armazenados;
Banco de dados
SQL
Linguagem de administração de banco de dados
responsável pela administração do banco de dados (DBA)
pode utilizar comandos SQL para realizar suas tarefas;
Linguagem cliente/servidor
Os programas (cliente) dos computadores pessoais usam
comandos SQL para se comunicarem por meio de uma rede
local, compartilhando os dados armazenados em um único
local (servidor). 16
Banco de dados
SQL
Linguagem para banco de dados distribuído
A SQL auxilia na distribuição dos dados por meio de vários nós
conectados ao sistema de computação. Auxilia também na
comunicação de dados com outros sistemas;
Caminho de acesso a outros bancos de dados em diferentes
máquinas
A SQL auxilia na conversão entre diferentes produtos de banco de
dados colocados em diferentes máquinas. 17
Banco de dados
SQL
Por ser uma linguagem de numerosas
aplicações, a SQL pode manipular objetos de
diferentes classes entre as funções de um SGBD:
18
Banco de dados
SQL
Definição de dados (DDL) - permite ao usuário a definição
da estrutura e organização dos dados armazenados, e as
relações que existem entre eles;
Manipulação de dados (DML) - permite ao usuário ou a
um programa de aplicação, a inclusão, remoção, seleção ou
atualização de dados previamente armazenados no banco;
Controle de acesso - protege os dados de manipulações
não autorizadas; 19
Banco de dados
SQL
Compartilhamento de dados - coordena o
compartilhamento dos dados por usuários concorrentes,
sem contudo interferir na ação de cada um deles;
Integridade dos dados - auxilia no processo de
definição da integridade dos dados, protegendo contra
corrupções, inconsistências e falhas do sistema de
computação. 20
Banco de dados
Abreviações
• Data Definition Language – DDL (Linguagem de Definição de
Dados);
• Data Manipulation Language - DML (Linguagem de Manipulação
de Dados);
• Data Query Language – DQL (Linguagem de Consulta de Dados);
• Data Control Language - DCL (Linguagem de Controle de Dados);
• Data Transaction Language – DTL (Linguagem de Transação de
Dados);
21
Hierarquia dos dados
22
Banco de dados
Hierarquia dos dados
SGBD PostGreSQL
Base de Dados NotaFiscal Projeto
Esquema Public Cliente Estoque
Tabelas Tabela 1 Tabela 2 Tabela 3 Tabela 4
Atributos Colunas Colunas Colunas Colunas
23
Banco de dados
Hierarquia dos dados no MySQL
SGBD MySQL
Base de Dados / NotaFiscal Projeto
Esquemas
Tabelas Tabela 1 Tabela 2 Tabela 3 Tabela 4
Atributos Colunas Colunas Colunas Colunas
https://dev.mysql.com/doc/refman/8.0/en/create-database.html 24
DDL – Linguagem de Definição de Dados
25
Banco de dados
DDL - Criar uma Base de Dados
Sintaxe:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]
db_name [create_specification] … ;
Exemplo:
26
Banco de dados
DDL – Apagar Base de Dados
Sintaxe:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name ;
Exemplo:
27
Banco de dados
DDL – Selecionar uma base
Sintaxe:
USE db_name ;
Exemplo:
28
Banco de dados
DDL – Criar uma tabela
Sintaxe:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...) [table_options]
Exemplo:
29
Banco de dados
Exemplo 2
30
Banco de dados
DDL - Comparativo do fator incrementacional
Mysql – auto_increment
id int not null auto_increment
MS-SQL – identity (1,1)
id int not null identity(1,1)
Oracle – 12c >
id number GENERATED BY DEFAULT ON NULL AS IDENTITY
id number GENERATED ALWAYS as IDENTITY(START with 1
INCREMENT by 1)
PostgreSQL – serial
id serial
31
Banco de dados
Exemplo 3
32
Banco de dados
Exemplo 4
33
Banco de dados
Exemplo 5
Motor de Armazenamento
34
Banco de dados
35
https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html
Banco de dados
DDL – Alterar tabela
Adicionar atributo:
ALTER TABLE tbl_name ADD [COLUMN] col_name
column_definition [FIRST | AFTER col_name ];
36
Banco de dados
DDL – Alterar tabela
Alterando o nome e o tipo do atributo
ALTER TABLE tbl_name CHANGE [COLUMN]
old_col_name new_col_name column_definition
[FIRST|AFTER col_name];
37
Banco de dados
DDL – Alterar tabela
Modificando o tipo do atributo
●
ALTER TABLE tbl_name MODIFY [COLUMN] col_name
column_definition [FIRST | AFTER col_name];
38
Banco de dados
DDL – Alterar tabela
Apagando um atributo
ALTER TABLE tbl_name DROP [COLUMN] col_name;
39
Banco de dados
DDL – Alterar tabela
DROP (Apagando) PRIMARY KEY
●
ALTER TABLE aluno MODIFY id INT NOT NULL;
●
ALTER TABLE aluno DROP PRIMARY KEY;
Remover
auto_increment
40
Banco de dados
DDL – Alterar tabela
DROP (Apagando) FOREIGN KEY fk_symbol
ALTER TABLE aluno DROP FOREIGN KEY DISCIPLINA_ibfk_1;
41
Banco de dados
DDL – Alterar tabela
Renomear tabela
ALTER TABLE tbl_name_atual rename to tbl_name;
42
Banco de dados
DDL – Apagar tabela
Apagando tabela
DROP TABLE tbl_name;
43