Você está na página 1de 71

CENTRO DE FORMAÇÃO

SÃO DOMINGOS
Curso de Base de Dados-2014
Mysql e SQL Parte I

Wilson Jolomba Manuel Fernando


Paulino Mendes “Peregrino”
MYSQL
Mysql - sobre
3

O MySql teve o seu inicio de desenvolvimento na


Suécia na década de 1980 por dois suecos e um
Finlandês: David Axmark, allan Larsson e Michael
“Monty” Widenius integrantes da empresa MySql AB.
Hoje o seu desenvolvimento e manutenção é mantida
por milhares de profissionais no mundo inteiro e mais de
mil contribuem testando o software, integrando - o a
outros produtos e escrevendo acerca dele. Aos 16 de
Janeiro de 2008 é anunciada a compra da empresa
MySql AB pela Sun Microsystens a qual foi comprada
no ano seguinte dia 20 do mês de Abril pela Oracle
sendo actualmente a proprietária do MySql.
4

É um dos sistemas gerenciadores de base de


dados relacional mais populares actualmente tendo
mais de 10 milhões de máquinas usuarias no mundo
entre elas:
Ano 2012
É open Source, estável e totalmente portável a quase
toda a plataforma existente actualmente, possibilitando
uma integração com as mais variadas linguagens de
programação entre as quais java, c++ e Delphi.
Como a maior parte dos sistemas gerenciadores de
base de dados relacional utiliza uma implementação
SQL(veremos mais a diante), proporcionando
acesso aos dados de uma maneira rápida, flexivel e
multi-usuária.
7

O mysql vem evoluindo de uma maneira


impressionante o qual tem versões Enterprise e
Community esta última sob licença GPL(GNU Public
License). Cada versão possui um manual de
referência para auxiliar na produtividade com o
mysql.
Como baixar
8

Existem inumeros sites em que se podem baixar o


mysql provendo assim em sites confiaveís e não
confiaveis. É aconselhavel que se baixe o mesmo no
site oficial do produto www.mysql.com
É necessário que o usuario Mysql vai consultando
sempre estes sites de modo a usufruir das novas
revisões e de novas versões mysql.
9

Depois de ser baixado, o mysql pode ser acessado


por um cliente em linha de comando denominado
Mysql Command Line Cliente e clientes gráficos(Mysql
Query Browser, mysql Administrador…) este último
cliente deve ser instalado separadamente,o mesmo
encontra-se no site onde pode baixar-se o mysql
denominado geralmente por mysql gui tools que vem
de ferramentas visuais Gui – Guider user interface.
Actualmente todas as aplicações do SGBD Mysql estão
integrados no pacote Mysql WorkBench, o qual vem
incorporado no arquivo de instalação do mysql.
Mysql – Alguns comandos
Depois de ter feito toda instalação de todos os pacotes
do mysql podemos acessar o cliente comand line cliente
da seguinte forma(fig 1):
Iniciar - > Todos os Programas
-> Mysql -> Mysql Command Line Client

Informar a senha: “senha posta durante a instalação”.


Fig 1
Para verificarmos todas as bases de dados existentes no
MYSQL podemos utilizar o comando SHOW DATABASES;
Para utilizarmos uma base de dados especifica utilizamos o
comando USE<nome da base de dados>;
Para verficarmos as tabelas que tem nesta mesma base de
dados usamos o comando SHOW TABLES;
O mysql possui vários comandos e um comando especial de
ajuda especificado por help ou referenciado apenas pelo
ponto de interrogação (?) Para auxilio de conhecimento de
comandos.
Por exemplo se especificamos help ou ? Na linha de
comando aparecerá um conjunto de comandos.
Todos os comandos devem terminar com ponto e virgula e
primar a tecla Enter para executar.
Mysql – Tipos de dados
Uma das grandes potências do mysql é a capacidade
de suportar diversos tipos de dados proporcionando
assim um armazenamento consistente no que toca ao
conteúdo que queremos armazenar, lógico que para maior
aprofundamento sobre o mesmo assunto é necessário que se
consulte bibliografias especificas(mostradas mais adiante)
relacionadas a este SGBD.

Podemos dividir os tipos de dados do mysql nos seguintes


principais grupos: Números, Data e hora, e Strings.
Mysql – Tipos de dados - Números
Este grupo esta relacionado com os tipos de dados
específicos para o armazenamento de números,
podemos destacar os seguintes tipos de dados:
INT: um inteiro de tamanho normal que ocupa espaço de 4
bytes na memória do computador.

FLOAT :um número de ponto flutuante com precisão simples


que ocupa espaço de 4 bytes na memória do
computador.

Double: um número de ponto flutuante com precisão dupla


que ocupa espaço de 8 bytes na memória do
computador.
Mysql – Tipos de dados - Strings
Este grupo esta relacionado com os tipos de dados
específicos para o armazenamento de caracteres,
textos, podemos destacar os seguintes tipos de dados:
CHAR(M): onde M representa o número de caracteres, é
uma String de caracteres de tamanho fixo(0 a 255
caracteres) que ocupa espaço de M bytes na
memória do computador.
VARCHAR(M): uma String de caracteres de tamanho
variável que ocupa espaço de tamanho do valor + 1
bytes para registar o tamanho na memória do
computador.
Mysql – Tipos de dados – Data e Hora

Este grupo esta relacionado com os tipos de dados


específicos para o armazenamento de data e hora,
podemos destacar os seguintes tipos de dados:
DATE : uma data no formato”YYYY-MM-DD”, que
ocupa espaço de 3 bytes na memória do
computador.

DATETIME :Uma combinação de data e hora no formato


"YYYY-MM-DD HH:MM:SS". que ocupa espaço de 3
bytes na memória do computador.
SQL
18
SQL - Sobre
19

Devido a grande popularidade dos SGBD relacionais


várias empresas começaram a desenvolver os seus
próprios SGBD provocando assim uma maior
dificuldade nos usuários destes mesmos SGBD no que
concerne a manipulação das bases de dados. Surgiu a
necessidade de adoptar uma linguagem especifica para
a manipulação destes mesmos SGBD de modo que os
mesmos usuários pudessem imigrar facilmente de um
SGBD relacional para outro.
20

A SQL(STRUCTED QUERY LANGUAGE ou


LINGUAGEM DE CONSULTA ESTRUTURADA) foi
desenvolvida originalmente no início dos anos 70 nos
laboratórios da IBM em San Jose, a linguagem é um
grande padrão para a manipulação de base de dados
nos SGBD relacionais isto devido a sua simplicidade e
facilidade de uso.
Embora a SQL tenha sido originalmente criado pela
IBM, rapidamente foram surgindo vários “dialectos”
essa expansão levou a necessidade de adoptar um
padrão para esta linguagem. Esta tarefa foi realizada
pela American National Standards Institute(ANSI) em
1986 e a INTERNATIONAL ORGANIZATION FOR
STANDARDIZATION (ISO) em 1987.
22

Os fabricantes de SGBD podem espandir a linguagem


SQL padrão ANSI, desde que os comandos básicos
sejam aceitos. Na verdade cada fabricante possui uma
própria extenção da SQL de modo a adicionar recursos
especificos de cada SGBD.
SQL - Divisões
23

Embora de principio tenha sido projectada para ser


uma linguagem orientada a consultas a SQL também
nos permiti que além de consultas, inserções, alterações
sobre os dados sejam feitas também a própria criação
de tabelas ,campos e outras requisições ,dividindo
assim a SQL em quatro partes entres elas:
DDL  linguagem de definição de dados.
DML  linguagem de manipulação de dados.
DCL  linguagem de controle de dados.
DTL  linguagem de transação de dados.
DQL  linguagem de consulta de dados.
SQL - Divisões - DDL
25

DDL é uma divisão SQL que permite ao utilizador


definir tabelas novas e elementos associados. Os
comandos básicos da DDL são:
CREATE, DROP E ALTER.
SQL - Divisões - DML
26

DML é uma divisão SQL que é utilizada para realizar


inclusões, consultas, alterações e exclusões de dados
presentes nos registos através dos seguintes comandos:
INSERT, SELECT, UPDATE, DELETE.
SQL - Divisões - DCL
27

Esta divisão controla os aspectos relacionados a


autorização de dados dentro de uma base de dados
exemplos de alguns comandos desta divisão são o
comandos:
GRANT – autoriza ao usuario executar ou setar
operações .
REVOKE – remove ou restringe a capacidade de um
usuário executar operações.
SQL - Divisões - DTL
28

Esta divisão controla os aspectos relacionados as


transações na base de dados exemplos de alguns
comandos desta divisão são os comandos:
BEGINWORK (ou START TRANSACTION, dependendo
do dialecto SQL) pode ser usado para marcar o
começo de uma transacção na base de dados que
pode ser completada ou não.
COMMIT finaliza uma transacção dentro de um sistema
gerenciador de base de dados.
SQL - Divisões - DQL
29

Embora tenha apenas um comando, a DQL é a divisão


SQL mais utilizada. O comando permite ao úsuario
especificar uma consulta atravez do comando já dito
acima SELECT.
SQL – Conhecendo os principais
comandos SQL com
o MYSQL
31

Base de dados a manipular(gestao_funcionario)

categoria(codigo_categoria,descricao_categoria,salari
o_categoria)

funcionario(codigo_funcionario,nome_funcionario,se
xo_funcionario,telefone_unitel_funcionario,codigo_
categoria)
32

Acessar o cliente em linha de comando do mysql(já visto


acima como acessar), depois de acessado podemos
começar por conhecer os principais comando SQL, todos
os comandos SQL terminam com ponto e virgula(;) e
deve-se primar a tecla enter para executar.
Eliminar uma base de dados
Para eliminarmos uma base de dados usamos o
comando DROP que tem como sintaxe:

DROP DATABASE <nome da base de dados>;

Por ex: supondo que temos já uma base de dados


denominada gestao_funcionario e queremos elimina-
la para nos possibilitar criar outra usariamos,
O comando da seguinte forma;

DROP DATABASE gestao_funcionario;


Criar uma base de dados
Para criar uma base de dados utilizamos o comando
CREATE DATABASE que tem como sintaxe:

CREATE DATABASE <nome da base de dados>;


podendo assim criar a base de dados acima da
seguinte forma:

CREATE DATABASE gestao_funcionario;


Especificar a base de dados a manipular

Para manipular a base de dados criada anteriormente


acima usaremos o comando já conhecido por nós USE,
especificando na linha do comando do mysql, que tem
como sintaxe:

USE <nome da base de dados>;

Neste caso teremos:


USE gestao_funcionario;
Restrições(Constraints)
Antes de continuarmos com a definição das nossas
tabelas na nossa base de dados ,iremos abordar
um assunto que são as restrições.
Restrições são “regras” que a gente dita ao nosso
SGBD no que concerne o tratamento especial de
alguns atributos da nossa tabela como por ex:
dizer a ele que naquela coluna em particular não
serão aceites valores nulos durante a inserção de
dados.
As principais tipos de restrições que podemos manter
em uma base de dados são:
 Not Null

 Default

 Unique

 Check

 Primary Key

 Foreign Key
Not null - especifica que um campo não
pode conter valores nulos, o padrão do mysql é null.
Default - especifica que para um atributo
se não for especificado nenhum valor durante a
inserção de dados o mesmo tomará um valor
predefinido que é especificado na restrição default
Unique - é utilizada para manter os dados
inseridos com valores únicos.
Check – verifica se um valor encontra-se em uma
faixa predefina por ex: Masculino e Femenino.
Primary Key – criação da chave primária.
Foreign Key – criação da chave estrangeira.
Criar tabela na base de dados
41

Para criar uma tabela usamos o comando CREATE


TABLE que tem como sintaxe:

CREATE TABLE <nome da tabela>(definição dos


campos);
Tabela categoria

CREATE TABLE categoria(codigo_categoria int not null


auto_increment,
descricao_categoria varchar(30),
salario_categoria double default 0,
constraint pk_categoria primary key(codigo_categoria)
);
A palavra reservada auto_increment especifica que
Este campo será incrementado automaticamente a
medida que forem inseridos os registros.
Existem diversas maneiras de especificar a chave
primária, esta maneira é a recomendada pelos
especialistas que atuam na área a nível global.
Verificando se a nossa tabela foi bem
definida
É possível verificar se a nossa tabela foi bem
definida através do comando describe ou desc
abreviadamente que tem como sintaxe a seguinte:

DESC <nome de table>;

Assim, para verificarmos se a tabela categoria foi


bem criada digitaríamos o seguinte:
DESC categoria;
e teremos como resultado a descrição da tabela
categoria.
Tabela funcionário

CREATE TABLE funcionario(codigo_funcionario int not null auto_increment,


nome_funcionario varchar(30),
sexo_funcionario varchar(10),
telefone_unitel_funcionario varchar(30),
codigo_categoria int,
constraint verifica_sexo check (sexo_funcionario in
(‘Masculino’,’Femenino’) ),
constraint pk_funcionario primary key(codigo_funcionario),
constraint fk_funcionario_categoria foreign
key(codigo_categoria) references categoria(codigo_categoria)
);
Existem diversas maneiras de especificar a chave
estrangeira, esta maneira é a recomendada pelos
especialistas que actuam na área a nível global.

É importante referir que as boas práticas de criação


das tabelas dizem que se crie primeiro as tabelas
pais e as suas respectivas chaves e só assim criar as
tabelas filhas.
Removendo tabelas

Para remover uma tabela usamos o comando DROP


TABLE que tem como sintaxe:

DROP TABLE <nome da tabela>;

Por exemplo se quiséssemos remover a tabela


funcionário da base de dados digitaríamos:
DROP TABLE funcionario;
Alterando a definição de uma tabela
49

Adicionando um campo

Para alterar uma tabela usamos o comando ALTER


TABLE e para adicionarmos um campo utilizaremos o
comando ALTER TABLE com a união do comando ADD
tendo como sintaxe a seguinte:

ALTER TABLE <nome_da_tabela> ADD


<nome_do_campo> <tipo_de_dado> [outras
restrições];
Por exemplo para adicionarmos o campo
telefone_movicel na tabela funcionario usaremos o
seguinte comando:

ALTER TABLE funcionario ADD


telefone_movicel_funcionario varchar(30);
51

Alterando o tipo de dado de um campo

para mudarmos o tipo de dado de um campo


utilizamos o comando ALTER TABLE com a união do
comando MODIFY tendo como sintaxe a seguinte:

ALTER TABLE <nome_da_tabela> MODYFI


nome_do_campo <novo tipo_de_dado> ;
Por exemplo para alterarmos o campo
telefone_movicel_funcionario na tabela funcionário
para o tipo de dado CHAR usariamos o seguinte
comando:

ALTER TABLE funcionario MODIFY


telefone_movicel_funcionario CHAR(30);
53

Renomear um campo e alterar o tipo de dado

para mudarmos o tipo de dado e o nome de um campo


utilizamos o comando ALTER TABLE com a união do comando
CHANGE COLUMN tendo como sintaxe esta operação a
seguinte:

ALTER TABLE <nome_da_tabela> CHANGE COLUMN


nome_do_campo <novo_nome_campo> <novo_tipo>;
Por exemplo para alterarmos o nome campo
telefone_movicel_funcionario para
telefone_fixo_funcionario e o seu tipo de dado na
tabela funcionário usaremos o seguinte comando:

ALTER TABLE funcionario CHANGE COLUMN


telefone_movicel_funcionario
telefone_fixo_funcionario VARCHAR(30);
55

Apagando um campo

para apagarmos um campo utilizamos o comando


ALTER TABLE com a união do comando DROP COLUMN
tendo como sintaxe esta operação a seguinte:

ALTER TABLE <nome_da_tabela> DROP COLUMN


nome_do_campo;
Por exemplo para apagarmos campo
telefone_fixo_funcionario da tabela funcionario
usaremos o seguinte comando:

ALTER TABLE funcionario DROP COLUMN


telefone_fixo_funcionario;
Alterando o nome de uma tabela

para alteramos o nome de uma tabela utilizamos o


comando ALTER TABLE com a união do comando RENAME
TO tendo como sintaxe esta operação a seguinte:

ALTER TABLE <nome_da_tabela> RENAME TO


<novo_nome>;
Por exemplo para renomearmos a tabela
funcionario usaremos o seguinte comando:

ALTER TABLE funcionario RENAME TO funcio;


ALTER TABLE funcio RENAME TO funcionario;
Inserindo dados

Para inserirmos dados numa tabela utilizamos o


Comando INSERT com a palavra reservada INTO que
tem como sintaxe:

INSERT
INTO<nome_da_tabela>(campo1,campo2,…,campo
N) values(valor1,valor2,….,valorN);
Ou
INSERT
INTO<nome_da_tabela>values(valor1,valor2,valorN);

Ou ainda inserindo vários valores em simultâneo:

INSERT
INTO<nome_da_tabela>(campo1, campo2, campoN)
values(valor1,valor2,valorN), (valor1,valor2,valorN),
(valor1,valor2,valorN);
Por exemplo para inserimos dados a tabela categoria
usaremos o seguinte comando:

INSERT INTO categoria(codigo_categoria,


descricao_categoria,salario_categoria)
values(0,’gerente’,120.000);
ou
Ou
INSERT INTO categoria values(0,’caixa’,100.000);

Ou ainda inserindo vários registos:

INSERT INTO categoria(codigo_categoria,


descricao_categoria,salario_categoria)
values(0,’seguranca’,20.000),(0,’Limpeza’,5.000);
A inserção do número 0 no campo codigo_categoria
deve-se ao facto de ele ser auto incrementado. A
descrição dos campos de texto podem ser envolvidos
por aspas duplas ou simples. É importante especificar a
lista de atributo ao inserir os dados devido a dois
pontos principais:
 Quando não nos lembramos a ordem pela qual os
atributos foram definidos na criação da tabela
 Quando não temos todos os valores e queremos que
o SGBD preencha os atributos em falta
com null ou com um valor por defeito e ainda em alguns
casos em que o valor de uma chave é auto
incrementada.

Para visualizar se os dados utilizamos o comando


SELECT(veremos mais adiante) da seguinte forma:
SELECT *FROM categoria;

E visualizaremos todos os dados.


Eliminando dados

Para eliminarmos dados em uma tabela utilizamos o


comando DELETE que tem como sintaxe

DELETE FROM <nome_da_tabela> [ WHERE condições];

Por Exemplo para eliminarmos todos os dados da


Tabela categoria usaremos a seguinte instrução:

DELETE FROM categoria;


O comando acima exclui todos os registos da tabela
categoria. Para excluir apenas um subconjunto dos
registos, é necessário utilizar a cláusula WHERE(veremos
mais adiante).
Actualizando dados

Para actualizarmos dados em uma tabela utilizamos o


comando UPDATE com a palavra reservada SET que
tem como sintaxe:

UPDATE nome_da_tabela SET campo1 = valor1,


campo2 = valor2, campo3 = valor3, ...,campoN =
valorN [ WHERE condições];
Por Exemplo para alteramos todos os categorias para
gerente usaremos a seguinte instrução:

UPDATE categoria SET descricao_categoria =


‘gerente’;

O comando acima altera o campo nome de todos os


registos da tabela categoria. Para alterar apenas um
subconjunto dos registos, é necessário utilizar a cláusula
WHERE(veremos mais adiante).
Referências Bibliográficas

 Beighley,Lin. Use a cabeça SQL, ALTA Books, 2010

 DAMA,LUIS. SQL - Structured Query Language, 6ª


edição ,FCA - Editora Informática,2005.
Obrigado!
Centro de Formação São Domingos
“Estudar Próxima Semana tem Avaliação”.

Você também pode gostar