Você está na página 1de 12

TLP IIº Trimestre

O Professor: Edvaldo Ngola

Namibe/2020

1
Índice
Introdução à SQL............................................................................................................... 3
Subconjuntos ..................................................................................................................3
Linguagem de definição de dados..................................................................................... 3
Linguagem de manipulação de dados ............................................................................... 4
Linguagem de controle de dados ...................................................................................... 4
O MySQL ........................................................................................................................... 5
Vantagens do MySQL.....................................................................................................5
Compatibilidade .............................................................................................................5
Licença ...........................................................................................................................5
Criação de tabelas em SQL ................................................................................................ 6
Criação da Base de Dados ...............................................................................................6
Tabelas ...........................................................................................................................6
Inserção de dados ...........................................................................................................6
Visualizar a tabela ..........................................................................................................7
Tipos de Dados em SQL ..................................................................................................... 7
Tipo de dados Numéricos ................................................................................................7
Tipo de dados Literal ......................................................................................................7
Tipo de dados Data/Tempo .............................................................................................8
Tipo de dados Espacial ...................................................................................................8
Chave primária (primary key) ........................................................................................... 8
Manipulação de dados em SQL .......................................................................................... 9
Alter Table .....................................................................................................................9
Manipulação dos registos em SQL.................................................................................... 10
UPDATE ...................................................................................................................... 10
DELETE ....................................................................................................................... 11
Truncate table .............................................................................................................. 11
Chave estrangeira (Foreign key)....................................................................................... 11
Joins ................................................................................................................................. 12
Order by........................................................................................................................... 12

2
Introdução à SQL
SQL: É uma linguagem de programação criada para gerar, manipular e consultar a
informação guardada em base de dados relacional. A sigla SQL (Structured Query
Language) significa em português Linguagem de consulta estruturada.

Alguns sistemas que utilizam SQL:

 MySQL

 Oracle

 Postgre SQL

A linguagem SQL surgiu em 1974 e foi desenvolvida por um grupo de programadores


nos laboratórios da IBM como interface para o SGBDR.

SQL é uma linguagem essencialmente declarativa. Isso significa que o programador


necessita apenas de indicar qual é o objectivo pretendido para que seja executado pelo
SGBDR.

A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua


simplicidade e facilidade de uso.

SQL possibilita ainda a criação de relações entre tabelas e o controlo de acesso aos dados.

Subconjuntos
A linguagem SQL é dividida em subconjuntos de acordo com as operações que queremos
efetuar sobre um banco de dados:

Linguagem de definição de dados (ou DDL, de Data Definition Language) é um


conjunto de comandos dentro da SQL usada para a definição das estruturas de dados,
fornecendo as instruções que permitem a criação, modificação e remoção das tabelas,
assim como criação de índices. Estas instruções SQL permitem definir a estrutura de
uma base de dados, incluindo as linhas, colunas, tabelas, índices, e outros metadados.
Entre os principais comandos DDL estão:

CREATE - Usado para criar uma nova tabela, uma visão de uma tabela, ou outro objeto
em um banco de dados.

ALTER - Usado para modificar um objeto existente de um banco de dados, como uma
tabela.

DROP - Usado para apagar toda uma tabela, uma visão de uma tabela ou outro objeto em
um banco de dados.

3
Linguagem de manipulação de dados (ou DML, de Data Manipulation Language) é o
grupo de comandos dentro da linguagem SQL utilizado para a recuperação, inclusão,
remoção e modificação de informações em bancos de dados.
Os principais comandos DML são:

INSERT (Inserção de Dados)

UPDATE (Actualização de Dados)

DELETE (Exclusão de Dados)

SELECT (Consulta).

Linguagem de controle de dados (ou DCL, de Data Control Language) é o grupo de


comandos que permitem ao administrador de banco de dados controlar o acesso aos
dados deste banco.
Alguns exemplos de comandos DCL são:

GRANT: Permite dar permissões a um ou mais usuários e determinar as regras para


tarefas determinadas;

REVOKE: Revoga permissões dadas por um GRANT.

As tarefas básicas que podemos conceder ou barrar permissões são:

CONNECT

SELECT

INSERT

UPDATE

DELETE

4
O MySQL
É um SGBD (Sistema Gerenciador de Banco de Dados) relacional, que utiliza a
linguagem SQL (Linguagem de Consulta Estruturada). MySQL também é multiusuário e
multitarefas.

Este SGBD inicialmente foi desenvolvido para trabalhar com projetos de pequeno e
médio porte, com a capacidade de suportar por volta de cem milhões de registros em cada
tabela, podendo chegar ao tamanho médio de aproximadamente cem megabytes por
tabela. Porém, hoje em dia o MySQL ultrapassa extraordinariamente esses limites e
capacidades das versões anteriores.

Os principais objectivos do uso do MySQL são: velocidade, robustez e facilidade de uso.

Vantagens do MySQL
MySQL é conhecido por ser de fácil utilização, e usado por empresas que trabalham com
grandes volumes de dados, tais como, NASA, Bradesco, HP, Sony entre outras grandes
empresas de renome. Possui uma interface extremamente simples e é compatível com
grande parte dos sistemas operativos.

Essas são algumas das grandes características que fazem o MySQL ser tão utilizado
atualmente e estar em constante crescimento e atualizações.

Compatibilidade
MySQL é compatível com a maioria dos sistemas operativos existentes atualmente no
mercado. Pelo fato de ser desenvolvido em C e C++, isso faz com que seja extremamente
fácil sua acessibilidade entre os diversos sistemas operativos.

Windows: Compatível com todas as versões

Linux: Sendo compatível com as principais versões, como Fedora, Core, Debian, SuSE
e RedHat.

Unix: Sendo compatível com as versões Solaris, HP-UX, AIX, SCO.

FreeBSD.

Mac OS X Server.

Licença
O MySQL é de Código Aberto (Open-Source), desenvolvido e distribuído sob as licenças
GNU/GLP (Licença Publica Geral), que determina o que se pode ou não fazer à
ferramenta e demais recursos. Além do programa, o seu código-fonte também é
disponibilizado para que qualquer usuário possa editá-lo de forma que atenda suas
necessidades.

Utilização: Permite que o usuário faça uso do software para qualquer finalidade.

Distribuição: Livre distribuição do software entre quaisquer pessoas.

5
Didática: Permite que seu funcionamento seja estudado através de seu código-fonte

Colaboração: Possibilita que seu código-fonte seja modificado para evoluir a ferramenta.

Criação de tabelas em SQL


 Criação da Base de Dados

Para criar uma base de dados é importante usar uma ferramenta que facilite todo o
processo. Uma das ferramentas mais usada para este efeito é o MySQL WorkBench que
disponibiliza as mais diversas funcionalidades.

A sintaxe para a criação da base de dados é:

CREATE Database “Nome_da_base de dados”;

Nota: é necessário habilitar o uso da base de dados usando o comando use “Nome da
base de dados”

Ex: Create Database Loja;

Use Loja;

 Tabelas

As tabelas são as estruturas básicas de armazenamento de dados numa base de dados. Os


SGBD disponibilizados no mercado dispõe de ferramentas capazes de gerar códigos de
criação de tabelas pelo utilizador. No entanto, em sistemas remotos ou em programação
teremos de o fazer recorrendo ao SQL.

A sintaxe para a criação de tabelas é:

CREATE TABLE “Nome_da_tabela”

(“Campo 1”, “Tipo de dados”,

“Campo 2”, “Tipo de dados”,

…);

Ex: Create table Cliente (

Nome varchar (30),

Morada varchar (20),

Idade int (2) );

 Inserção de dadosPara inserir os dados na tabela, devemos especificar no


comando, o nome da tabela, e inserir os dados na mesma ordem que os declaramos
na tabela.

6
A sintaxe para tal é: Insert into “nome da tabela” values (‘Dado1’, ‘Dado 2’);

Ex: insert into Cliente values (‘Pedro Lopes','Rua dos Pinheiros’,‘25');

 Visualizar a tabela

Para visualizar os dados da tabela devemos usar um comando que faz a selecção dos
dados que queremos ver. No caso de ver todos os dados da tabela, basta usar o asterisco.

A sintaxe para tal é: Select * from “nome da tabela”;

Ex: Select * from Cliente;

Tipos de Dados em SQL


O tipo de dados determina o tipo de informação que o campo pode armazenar e o espaço
que a informação ocupa.

Os tipos de dados no MySQL estão organizados da seguinte forma:

 Numéricos;

 Literal;

 Data/Tempo;

 Espacial.

 Tipo de dados Numéricos

Os tipos numéricos são usados quando pretendemos inserir um valor numérico na


base de dados. Estão subdivididos em:

 Inteiro - TinyInt, smallInt, Int, MediumINT e BigInt;

 Real - Decimal, Float, Double, Real;

 Lógico – Bit, Boolean.

 Tipo de dados Literal

Esse tipo de Dado está relacionado com o uso de texto e caractere.

Estas se subdividem em:

 Caractere – Char, varChar;

 Texto – Tinytext, text, MediumText, LongText;

 Binário – TinyBlob, Blob, MediumBlob, LongBlob;

 Colecção – Enum, Set.

7
 Tipo de dados Data/Tempo

Data/Tempo é o tipo de dado usado para especificar datas e horas. Este se subdivide
em:

 Date;

 DateTime;

 TimeStamp;

 Time;

 Year .

 Tipo de dados Espacial

O Tipo Espacial, permite guardar dados volumétricos. Está subdividido em:

 Geometry

 Point;

 Polygon;

 Multipolygon

Chave primária (primary key)


é a garantia de que o modelo relacional de base de dados e a normalização (constraint)
foram gerados na criação de uma base de dados. Visto que fazemos o uso de tabelas,
elas podem ser ligadas pelas chaves primárias.

Por defeito, os campos podem ter valores nulos. Se pretendermos não definir campos
como nulos temos de os definir usando a constraint Not null.

CREATE TABLE produtos (


ID int not null auto_ increment,
Nome_Prod varchar (30) not null,
Data_Fabrico date,
Primary key (id)
);
Auto_Increment
O comando auto_increment é igual ao tipo de dado numeração automática, ou seja, ele
permite inserir de forma automática a numeração ordenada dos dados.
Ao inserir os dados do campo com auto increment, basta usar o comando default no lugar
dos números. Por exemplo, vamos inserir os dados da tabela produtos:
insert into produtos values
(default,'Arroz','2019-02-13'),

8
(default, 'Massa','2018-03-15');

Manipulação de dados em SQL


Alter Table
As vezes surge a necessidade de reeditar uma tabela. Para tal, recorremos à função
ALTER TABLE para adicionar, eliminar ou renomear um campo numa tabela.
Adicionar campo: A sintaxe da função é Alter Table “Tabela” Add “campo” “Tipo de
dados”.
Ex: vamos adicionar o campo email à tabela Cliente
Alter Table Cliente
add column email varchar(10);
Nota: uma coluna adicionada toma, por definição, o último lugar na tabela. Podemos
mudar a posição por usar o comando after e escolher a coluna que irá anteceder.
Alterar o tipo de dados do campo: a sintaxe da função é
Alter Table “Tabela” Modify column“Campo”“Tipo de dados”.
Ex: vamos alterar o tipo de dados do campo email de 10 caracteres para 20.
Alter Table Cliente modify Column email varchar (20);
Alterar o nome do campo: A sintaxe da função é
ALTER TABLE “Tabela”
change column“nome antigo” “nome novo” “Tipo de dados”.
Ex: vamos alterar o nome email para E-mail
ALTER TABLE cliente
change column email Email varchar (20);
Eliminar um campo: A sintaxe da função é
ALTER TABLE “Tabela”
drop column “campo” .
Ex: vamos eliminar o campo E-Mail
ALTER TABLE Cliente
drop column Email.
Alterar o nome da tabela: a sintaxe é
ALTER TABLE “Tabela”
Rename to “novo nome”.
Ex: vamos mudar o nome da tabela Cliente para Clientes
ALTER TABLE Cliente
Rename to Clientes;
Eliminar um campo: A sintaxe da função é
ALTER TABLE “Tabela”
drop column “campo” .
Ex: vamos eliminar o campo E-Mail
ALTER TABLE Cliente
drop column Email.
Alterar o nome da tabela: a sintaxe é
ALTER TABLE “Tabela”

9
Rename to “novo nome”.
Ex: vamos mudar o nome da tabela Cliente para Clientes
ALTER TABLE Cliente
Rename to Clientes;
Eliminar a tabela: A sintaxe da função é
drop table“nome da tabela” ;
Ex: crie a tabela Vendas com os campos
Cliente varchar 20;
Produto varchar 20;
DataVenda date.
 Insira três dados na tabela.
 Mude o nome da tabela para Marimbondo.
 Elimine a tabela.

Manipulação dos registos em SQL


UPDATE
Ao inserir os dados na tabela, podemos algumas vezes cometer alguns erros de
escrita. Para fazer a correcção, precisamos de usar o comando UPDATE (Actualizar).

A sintaxe para alterar um registo é:

Update “nome da tabela”

set “campo”=‘nome corrigido’

where ‘id= id da linha que queremos alterar’;

Ex: vamos alterar nome do primeiro Produto da tabela produtos

update produtos

set nome_prod = 'Bolacha'

where id='1';

Para modificar mais de um registos na mesma linha devemos apenas separar os


campos por vírgula(,)

Ex: vamos mudificar o nome e a data_fab do segundo produto da tabela produtos

update produtos

set nome_prod = 'ovos', data_fabrico='2019-01-01'

where id='2';

10
DELETE
Quando um determinado registo já não for útil na nossa base de dados, haverá a
necessidade de eliminar esse registo. Para tal, usamos o comando DELETE.

A sintaxe é:

delete from “nome da tabela”

where ‘id= id da linha que queremos eliminar’;

Ex: vamos eliminar o segundo registo da tabela produtos

delete from produtos

where id='2‘;

Truncate table
A palavra Truncate literalmente significa cortar o topo. Esse comando é usado para
eliminar todos os registos da tabela.

A sintaxe é:

Truncate table “nome da tabela”;

ou

Truncate “nome da tabela”;

Ex:vamos eliminar todos os registos da tabela produtos

truncate table Produtos;

ou

truncate produtos;

Nota: Durante a aula, vimos apenas exemplos de manipulação dos registos usando a
chave primária (id). No entanto, é possivel manipular os registos a partir dos outros
campos da tabela, levando em conta alguns pormenores importante.

Chave estrangeira (Foreign key)


Uma chave estrangeira (Foreign key) é uma constraint que pode ser definida como
um campo numa tabela que aponta para uma chave primária em outra tabela
possibilitando criar relações entre elas.

O relacionamento é a associação entre entidades (tabelas) . Para tal, é importante que


a cardinalidade seja bem definida, dependendo da base de dados que estamos criando.

Ex: vamos criar uma base de dados com o nome de “Ensino” com as tabelas Alunos
e cursos.

11
Alunos (id_aluno, nome_aluno, data_nasc);

cursos(id_curso, curso);

Criada as tabelas, precisamos de inserir a coluna que permitirá relacionar as tabelas.


Visto que um aluno poderá escolher vários cursos, teremos a cardinalidade 1-muitos.

Vamos adicionar um campo na tabela aluno e vamos dar o nome de Cursoescolhido.

Alter table aluno

Add column cursoescolhido int

Criado o campo, vamos defini-lo como chave estrangeira

Alter table aluno

Add foreign key (cursoescolhido) references cursos(id_curso);

Joins
São comandos usados para se obter dados provenientes de duas ou mais tabelas
baseado num relacionamento entre elas. Os joins podem ser de dois tipos:

Inner join: retorna as linhas quando houver pelo menos uma correspondência em
ambas as tabelas.

Outer join: retorna as linhas mesmo quando não houver pelo menos uma
correspondência em uma das tabelas ou em ambas.

No caso de tabelas relacionadas, devemos usar o inner join ou simplesmente join com
um outro comando de nome ON.

Vamos ver agora o resultado da relação feita entre a tabela aluno e cursos:

select aluno.Nome_aluno, cursos.curso from aluno join cursos on


cursos.id_curso=aluno.“cursoescolhido”

Order by
É o comando usado para ordenar um conjunto de registos. Podemos ordenar os
registos de forma ascedente(ASC) ou descendente (DESC). A sintaxe é:

select*from “nome da tabela” order by “nome do campo” asc ou desc;

Nota: no caso da ordem ascendente, não precisamos de usar a palavra ASC comando.
Ex: vamos ordenar o nosso join criado:

select aluno.Nome_aluno, cursos.curso from aluno join cursos on


cursos.id_curso=aluno.“cursoescolhido order by aluno.Nome_aluno

12

Você também pode gostar