0% acharam este documento útil (0 voto)
4 visualizações28 páginas

Introdução à Linguagem SQL para SGBDs

O documento apresenta a Linguagem SQL, uma linguagem declarativa utilizada para manipulação de bancos de dados em SGBDR. Ele abrange a criação, modificação e supressão de tabelas, além de operações de manipulação e interrogação de dados. Também discute funções de agregação e restrições de integridade, fornecendo exemplos práticos para cada conceito.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações28 páginas

Introdução à Linguagem SQL para SGBDs

O documento apresenta a Linguagem SQL, uma linguagem declarativa utilizada para manipulação de bancos de dados em SGBDR. Ele abrange a criação, modificação e supressão de tabelas, além de operações de manipulação e interrogação de dados. Também discute funções de agregação e restrições de integridade, fornecendo exemplos práticos para cada conceito.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Instituto Superior de Ciências Aplicadas e de Tecnologia de Sousse

Engenharia de Banco de Dados


Licenciatura em Ciências da Computação

Imen MOALLA
[Link]@[Link]

Année universitaire : 2020-2021


A Linguagem SQL
Linguagem de Consulta Estruturada

2
Apresentação de SQL

SQL é uma linguagem declarativa destinada a


manipulação de bancos de dados no âmbito dos
SGBDR que abrange tanto os problemas
de criação dos objetos de base de dados
(modelo), de manipulação de dados, de gestão
da segurança e de tratamentos locais de dados
É utilizado pelos principais SGBDs do mercado:
Oracle, SQL Server, MySQL, Access, DB2,…

3
Apresentação de SQL

Langage de définition de données (schéma, LDD)


. Criação de tabela (relação): CREATE TABLE
. Modificação de tabela (relação): ALTER TABLE
. Supressão de tabela (relação): ELIMINAR TABELA
. Vues: CRIA A VISÃO

Linguagem de manipulação de dados (esquema,


LMD
. Inserção de tuplas: INSERIR
. Atualização de tuplas: ATUALIZAR
. Supressão de tuplas: EXCLUIR

4
Apresentação do SQL

Linguagem de Controle de Dados (LCD)


. Para gerenciar os direitos sobre os objetos do banco (criação
dos usuários e atribuição de seus direitos)
. CONCEDER e REVOGAR

Langage de contrôle de données (TCL)


. Paraa gestão das transações (validação ou cancelamento
de modificações de dados na BD)
. INICIAR e FINALIZAR TRANSAÇÃO
. COMMIT e ROLLBACK

5
Criação das tabelas

A criação de uma tabela consiste em definir seu nome,


as colunas que a compõem e seus tipos
. Sintaxe
Pour créer une table, on fait recours à l’instruction
seguinte :
CRIE TABELA nom_table
(Nome_atributo 1 tipo1,
Nom_attribut 2 tipo2,
……,
CHAVE PRIMÁRIA(nom_attribut_clé),
CHAVE ESTRANGEIRA(nom_attribut_clé_étrangère)
REFERENCESnom_table( nom_attribut_clé_étrangère ));

6
Criação das tabelas
Tipo de dados
-NUMBER( N ): Entier à N chiffres
-NÚMERO( N , M ): Real com N dígitos no total, M após a
vírgula.
-DATA: Data completa (data e/ou hora)
-VARCHAR( N ),VARCHAR2( N ): string de N caracteres
(comprimento variável).
-CHAR( N ): Cadeia de N caracteres (comprimento fixo).

7
Contraintes d'intégrité
Uma restrição de integridade é uma regra que define a
coerência de um dado ou de um conjunto de dados
da BD

Condição sobre uma coluna (condição-col)


. NULL/NONNULL: Proíbe uma coluna de conter um valor nulo
. ÚNICO: Proíbe que dois tuples da relação tenham o mesmo valor para
o atributo.

. PRIMARY KEY:définit l'attribut comme la clé primaire

8
Restrições de integridade
Contrainte sur une table (contrainte-table)
.ÚNICO (lista de atributos): É proibido que dois tuplos da
as relações têm os mesmos valores para todos os atributos
da lista.
.PRIMARY KEY(liste d'attributs):Définit les attributs de la liste
como a chave primária
.CHAVE ESTRANGEIRA (lista de atributos) REFERENCIAS nome-tabela
[(nomes-cols)]:Contrôle l'intégrité référentielle entre les
atributos da lista e da tabela e suas colunas especificadas

9
Exemple de création de tables
Etudiant (NumEtud, NomEtud, PrenomEtud, #NumClass)
Classe (NumClass, NomClass)
CRIAR TABELA CLASSE (
NUMCLASSENUMBER(5),
NOMCLASSEVARCHAR2(10),
CHAVE PRIMÁRIA(NUMCLASSE) ;

CRIAR TABELA ESTUDANTE (


NumEtudNUMBER(5)CHAVE PRIMÁRIA,
NOMVARCHAR2(10)
PRENOMVARCHAR2(10),
NUMCLASSEVARCHAR2(10),
CHAVE ESTRANGEIRA(NUMCLASSE)REFERENCIAS CLASSE(NUMCLASSE);

10
Supressão / Modificação de uma tabela
Supressão das tabelas
. Sintaxe
Para remover o conteúdo de uma tabela, bem como seu esquema, você
utilize a instrução que se segue :
REMOVER TABELA nom_table ;
Nota: Atenção, a exclusão de uma tabela gera a
perda dos dados que ela contém.
. Exemplo
Para remover a tabela ESTUDANTE assim como seu conteúdo, faz-se
recurso à instrução :
DROPTABLE ESTUDANTE ;

11
Supressão / Modificação de uma tabela
Modificação das tabelas
Existem várias modificações que podem ser feitas em uma tabela
donnée:
. Adição de atributos
Após criar o banco de dados, tarefas de manutenção
parecem ser às vezes necessários. Daí a adição de um novo atributo:
ALTER TABLEnom_table
ADICIONAR(tipo de atributo);
. Exemplo
Adicionar o campo Número de telefone à tabela Estudante significa
écrire :
ALTER TABLE Estudante
ADICIONAR(Num_tel varchar(10));

12
Supressão / Modificação de uma tabela
. Modificação dos atributos
Após criar o banco de dados, pode-se modificar o tipo
de um atributo usando a seguinte instrução:
ALTER TABLE nom_table
MODIFICAR(tipo de atributo);

. Exemplo
Modificar o número de dígitos do campo Num_tel da tabela
O estudante necessita do recurso à instrução:
ALTER TABLE Estudante
MODIFICAR(Num_tel varchar(8));

13
Manipulação de dados
. Adição de dados
Para adicionar uma linha (tupla) em uma tabela, procede-se
como segue:
INSERIR NO nom_table
VALORES( valor_atributo1, valor_atributo2,…) ;
. Exemplo
Dada a tabelaEstudante(NumEstud, nome, sobrenome, cidade). Se
on souhaite insérer les informationsd ’unnouvel étudiant
disposant des informations suivantes (1234, Ben Salah, Salah,
Djerba), escreve-se:
INSERIR NO ESTUDANTE
VALORES(1234, BEN SALAH, SALAH, DJERBA) ;

14
Manipulação de dados
. Modificação de dados
Para modificar o valor de um atributo relativo a um ou vários
Tuplas de uma tabela, procede-se da seguinte forma:
ATUALIZA nom_table
SETattribut1 = valeur1, attribut2 = valeur2
[CONDIÇÃOWHERE];
. Exemplo
Modificar a cidade do estudante Salah Ben Salah que mora
agora em Tunis, escrevemos neste caso:
ATUALIZAÇÕESDOESTUDANTE

SETVILLE=TUNIS
WHERENumEtud=1234;

15
Manipulação de dados
.Supressão de dados
Trata-se de remover uma ou mais tuplas de uma tabela.
Para isso, escrevemos:
DELETE FROM nom_table
[CONDICAOonde]

. Exemplo
Remover o estudante deNumEtd 1234 da tabela
Estudante, escreve-se:
DELETAR DE ETUDIANT
ONDENumEtd=1234 ;

16
Interrogação de dados
. Generalidades
Trata-se de procurar uma ou mais tuplas do banco de dados.
Sintaxe :
. Há um nome de atributo (de coluna)
SELECIONAR A1,…., A2 . Rjun nome de relação (de tabela)
. DEfinit a partir de quais
DE R1,…….,Rm tabelas o resultado é calculado
[WHERE[condition] . ONDE define os predicados de
sélection du résultat
Agrupar por <expressão>; . Agrupar linhas para os
valores iguais nas colunas
Tendo<expressão>; mencionadas
. Havingsélectionne os grupos de
Ordenar por [DESC/ASC]; linhas que satisfazem a condição
. Ordem por precisão se a classificação for feita de
manière croissante (par défaut) ou
decrescente 17
Interrogatório de dados
. Projeção
Todos os atributos de uma tabela:
SELECIONE*
FROMnom_table;
.Exemplo
Mostrar a lista de todos os estudantes
SELECT*FROMETUDIANT;
Alguns atributos:
SELECIONAR atributo1, atributo2,…
DE nom_table;
. Exemplo
Exibir a lista dos nomes dos estudantes
SELECIONARNOME
DOESTUDANTE
18
Interrogação de dados
. Restrição
As restrições se traduzem em SQL usando o predicado "WHERE"
como segue :
SELECIONAR attribut1, attribut2, DE nom_table
CONDIÇÕESWHERE;
Uma condição simples é a comparação entre dois
expressões ou mais ao meio de um operador lógico (=, !=, <,)
<=, >, >=)
. Exemple 1
Liste des étudiants qui s’appellent Ali
SELECIONAR * DE ESTUDANTE
WHEREPRENOM =‘ALI’;

19
Interrogatório de dados
. Exemplo 3
Liste des étudiants qui ne s’appellent pas Ali
SELECIONE * DE ESTUDANTE
ONDE PRENOM != 'ALI';
. Exemplo 4
Lista de estudantes com NumEtd inferiores a 100
SELECIONE * DE ESTUDANTE
WHERENumEtd < 100;
. Exemplo 5
Lista de estudantes com NumEtd entre 100 e 200
SELECIONAR * DE ESTUDANTE
ONDE NumEtd ENTRE 100 E 200 ;

20
Interrogatório de dados
. Jointures
. A junção permite combinar duas ou mais tabelas a fim de
extrair dados.
. A junção é realizada com o uso de uma coluna comum às tabelas.
que normalmente é a chave primária
. Quando uma coluna projetada se encontra nas duas tabelas a
joindre, o nome da coluna projetada deve ser precedido pelo nome
da tabela de onde os dados serão extraídos
. Quando uma coluna projetada se encontra em uma única entre as
mesas a serem unidas, não é necessário indicar o nome da
mesa

21
Interrogação de dados
. Exemplo de consulta de junção simples:
TableA (idTableA,colonne1,colonne2)
TabelaB (idTabelaB, coluna1, coluna2, #idTabelaA)

SELECIONE TableA.coluna1, coluna 2


DA TabelaA, TabelaB
ON [Link] = [Link]

. Os alias de tabela servem para nomear temporariamente as tabelas


de junção para encurtar a instrução SQL e torná-la mais legível.

SELECIONAR TA.coluna1, coluna2, coluna3


DA TabelaA TA, TabelaB TB
ON [Link] = [Link]
22
Interrogatório de dados
Exemplo de junção na mesma tabela:

Listar casais de filmes do mesmo ano.


SELECIONE f1.Título, f2.Título
DE Filme f1, Filme f2
ONDE f1.Título <> f2.Título E [Link] = [Link]

23
Interrogatório de dados
Exemplo de junção entre duas tabelas:

Listar as salas de cinema exibindo filmes de


2005
SELECIONE [Link]
DE Filme f, Teatro t
ONDE f.Título = t.Título
E [Link] = [Link]
E [Link] = 2005; 24
Interrogação de dados
Exemple de jointure entre deux tables:
STUDENTS [StudNb, Name, Address]
INSCRIPTION [CourseCode, Year, Time, #StudNb]

Liste os nomes dos alunos matriculados no curso


BD1-2019
SELECIONE [Link]
DOS Alunos S, INSCRIÇÃO I
ONDE ([Link]=[Link]) e ([Link] =’BD1-
2019

25
Funções de agregação
. Uma função de agregação calcula um valor a partir de uma
lista de valores em uma coluna.
. SQL também permite agrupar tuplas de uma relação de acordo com
certos critérios, como o valor de outra coluna.
. Esses operadores são aplicados em uma cláusula SELECT

SOMA:soma dos valores das tuplas selecionadas


AVG:moyenne des valeurs
MIN:valeur Minimum
MAX:valeur Maximum
COUNT:nombre de tuples sélectionnées

26
Funções de agregação
. Exemplo:

STUDENTS [Number, Name, Address, Age]


INSCRIÇÃO [#EstudNb, #CódigoCurso, Ano, Horário]
COURSE [CourseCode, CourseT itle, CreditNb, HoursNb]

Encontrar a média de idade dos estudantes que habitam em Blois

SELECIONE A MÉDIA (Idade) DO ESTUDANTES


ONDE Endereço = 'Blois';
Quantos estudantes temos?

SELECIONAR contagem(*)
DOS ALUNOS;
27
Funções de agregação
. Exemplo:

STUDENTS [Number, Name, Address, Age]


INSCRIPTION [StudNb, CourseCode, Year, Time]
COURSE [CourseCode, CourseT itle, CreditNb, HoursNb]

Donner le nom et l'Agede l’étudiant le plusâgé

SELECIONE [Link], [Link]


DOS ESTUDANTES S
ONDE [Link] = (SELECIONAR MÁXIMO ([Link]) DE ESTUDANTES S2);

28

Você também pode gostar