Você está na página 1de 43

Banco de dados – 2022/1

Linguagem Estruturada de Pesquisa


SQL – Parte 01

Prof. Dr. Roberto Benedito – roberto@ic.ufmt.br


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

Você também pode gostar