Escolar Documentos
Profissional Documentos
Cultura Documentos
1
APOSTILA DE MYSQL
2
APOSTILA DE MYSQL
Apostila de
MySQL
3
APOSTILA DE MYSQL
Aparecido Quesada
Adriana Tosta
Eder Moura Dourado
Simone Leal dos Santos
Thyago Akira de Morais Ribeiro
Yuri Robinson de Souza
Contato
treinamento_cge@prefeitura.sp.gov.br
telecentros@prefeitura.sp.gov.br
PALCIO DO ANHANGABA
VIADUTO DO CH N 15
CEP 01002-000 SO PAULO
TEL: 3113-8938 FAX 3113-8939
4
APOSTILA DE MYSQL
ndice
5
APOSTILA DE MYSQL
6
APOSTILA DE MYSQL
7
APOSTILA DE MYSQL
8
APOSTILA DE MYSQL
Introduo
9
APOSTILA DE MYSQL
N de cadastro: 19.000/2
10
APOSTILA DE MYSQL
CONTROLE DE REDUNDNCIAS
11
APOSTILA DE MYSQL
CONTROLE DE ACESSO
INTERFACEAMENTO
ESQUEMATIZAO
CONTROLE DE INTEGRIDADE
12
APOSTILA DE MYSQL
CPIAS DE SEGURANA
USURIOS
13
APOSTILA DE MYSQL
USURIOS FINAIS
14
APOSTILA DE MYSQL
Veja o exemplo:
15
APOSTILA DE MYSQL
EXERCCIOS:
16
APOSTILA DE MYSQL
O MySQL
Caractersticas do MySQL
17
APOSTILA DE MYSQL
SQL
INTRODUO
18
APOSTILA DE MYSQL
COMANDO CREATE
Sintaxe:
CREATE DATABASE < nome_db >;
onde:
nome_db: indica o nome do Banco de Dados a ser criado.
Exemplo:
CREATE DATABASE curso;
Sintaxe:
CREATE TABLE < nome_tabela > (
nome_atributo1 < tipo > [ NOT NULL ],
nome_atributo2 < tipo > [ NOT NULL ],
19
APOSTILA DE MYSQL
......
nome_atributoN < tipo > [ NOT NULL ]
PRIMARY KEY(nome_atributo)
);
onde:
nome_tabela: indica o nome da tabela a ser criada.
Exemplo:
CREATE table alunos(
codigo int NOT NULL AUTO_INCREMENT,
nome VARCHAR(20) NOT NULL ,
telefone CHAR(8) NOT NULL,
PRIMARY KEY(codigo)
);
20
APOSTILA DE MYSQL
COMANDO DROP
Sintaxe:
DROP TABLE < nome_tabela > ;
DROP DATABASE <nome_banco_de_dados>;
Exemplo:
DROP TABLE alunos;
DROP DATABASE curso;
DROP TABLE estudantes;
COMANDO ALTER
21
APOSTILA DE MYSQL
COMANDO SELECT
onde:
DISTINCT: Elimina linhas duplicadas na seleo.
22
APOSTILA DE MYSQL
Operadores lgicos
operador significado
= igual a
> maior que
>= maior que ou igual a
< menor que
<= menor que ou igual a
Exemplos:
SELECT cidade, estado FROM brasil WHERE populacao >
100000;
Selecionar os campos cidade e estado da tabela brasil de
todos os registros que tiverem valor maior que 100.000 no campo
populacao.
23
APOSTILA DE MYSQL
Selees:
COMANDO INSERT
24
APOSTILA DE MYSQL
COMANDO UPDATE
Onde:
tabela: O nome da tabela onde voc quer modificar os dados.
25
APOSTILA DE MYSQL
COMANDO DELETE
onde:
tabela: O nome da tabela de onde os registros so excludos.
26
APOSTILA DE MYSQL
Exemplos:
27
APOSTILA DE MYSQL
FROM EMP
WHERE EMPNOME LIKE 'F%';
OUTROS OPERADORES:
FUNES DE AGRUPAMENTO:
Administrao do MySQL
28
APOSTILA DE MYSQL
1. MODO TEXTO
Prompt:
mysql>
29
APOSTILA DE MYSQL
shell> mysql
mysql> QUIT
Bye
Entrando e consultando:
30
APOSTILA DE MYSQL
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
31
APOSTILA DE MYSQL
32
APOSTILA DE MYSQL
+---------+-------+
| artigo |preco |
+---------+-------+
| 0001 | 3.99 |
| 0002 |10.99 |
| 0003 | 1.69 |
| 0004 |19.95 |
+---------+-------+
mysql>show databases;
mostra os bancos de dados existentes no MySQL.
mysql>use <bancodedados>;
seleciona <bancodedados> pra ser utilizado.
mysql>show tables;
exibe as tabelas existentes no banco de dados selecionado.
33
APOSTILA DE MYSQL
mysql>desc <tabela>
exibe uma descrio da <tabela>.
34
APOSTILA DE MYSQL
Roteiro:
35
APOSTILA DE MYSQL
EXERCCIOS:
36
APOSTILA DE MYSQL
funcionarios
37
APOSTILA DE MYSQL
msql2mysql
mysql
mysqlaccess
mysqladmin
mysqlbinlog
38
APOSTILA DE MYSQL
mysqldump
mysqlimport
mysqlshow
replace
TINYINT
Um inteiro muito pequeno. A faixa deste inteiro com sinal de
-128 at 127. A faixa sem sinal de 0 at 255.
39
APOSTILA DE MYSQL
BIT
BOOL
BOOLEAN
Na verso 4.0 e anteriores, este so sinnimos para
TINYINT(1). A partir da verso 4.1.0, a exigncia de armazenamento
um nico bit (mais a exigncia atual para NULL se a coluna no
especificada como NOT NULL). O sinnimo BOOLEAN foi
adicionado na verso 4.1.0. Um tipo boolean verdadeiro ser
introduzido de acordo com o SQL-99.
SMALLINT
Um inteiro pequeno. A faixa do inteiro com sinal de -32768
at 32767. A faixa sem sinal de 0 a 65535.
MEDIUMINT
Um inteiro de tamanho mdio. A faica com sinal de -8388608
a 8388607. A faixa sem sinal de 0 to 16777215.
INT
Um inteiro de tamanho normal. A faixa com sinal de -
2147483648 a 2147483647. A faixa sem sinal de 0 a 4294967295.
INTEGER
Este um sinnimo para INT.
BIGINT
Um inteiro grande. A faixa com sinal de -
9223372036854775808 a 9223372036854775807. A faixa sem
sinal de 0 a 18446744073709551615. Existem algumas coisas
sobre campos BIGINT sobre as quias voc deve estar ciente:
Todas as operaes aritimticas so feitas usando valores
BIGINT ou DOUBLE com sinal, no devemos utilizar inteiros sem
sinal maiores que 9223372036854775807 (63 bits) exceto com
funes ded bit! Se voc fizer isto, alguns dos ltimos digitos no
resultado podem estar errados por causa de erros de
arredondamento na converso de BIGINT para DOUBLE. O MySQL
40
APOSTILA DE MYSQL
FLOAT(preciso)
Um nmero de ponto flutuante. No pode ser sem sinal.
preciso pode ser <=24 para um nmero de ponto flutuante de
preciso simples e entre 25 e 53 para um nmero de ponto flutuante
de dupla-preciso. Estes tipos so como os tipos FLOAT e DOUBLE
descritos logo abaixo. FLOAT(X) tem a mesma faixa que os tipos
correspondentes FLOAT e DOUBLE, mas o tamanho do display e
nmero de casas decimais indefinido. Na verso 3.23 do MySQL,
este um verdadeiro valor de ponto flutuante. Em verses anteriores,
FLOAT(preciso) sempre tem 2 casas decimais. Note que o uso
de FLOAT pode trazer alguns problemas inesperados como nos
clculos j que em MySQL todos so feitos com dupla-preciso.
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
Um numero de ponto flutuante pequeno (preciso simples).
Os valores permitidos esto entre -3.402823466E+38 e -
1.175494351E-38, 0 e entre 1.175494351E-38 e 3.402823466E+38.
Se UNSIGNED for especificado, valores negativos no so
permitidos. O M a largura do display e o D o nmero de casas
decimais. FLOAT sem um argumento ou FLOAT(X) onde X <=24
tende a um nmero de ponto flutuante de preciso simples.
41
APOSTILA DE MYSQL
DOUBLE[(M,D)]
Um nmero de ponto flutuante de tamanho normal (dupla-
preciso). Valores permitidos esto entre -1.7976931348623157E+308
e -2.2250738585072014E-308, 0 e entre 2.2250738585072014E-308
e 1.7976931348623157E+308. Se UNSIGNED for especificado,
valores negativos no so permitidos. O M a largura do display e o D
nmero de casa decimais. DOUBLE sem argumento ou FLOAT(X)
onde 25 <= X <= 53 so nmeros de ponto flutuante de dupla-preciso.
DOUBLE PRECISION
REAL[(M,D)]
Estes so sinnimos para DOUBLE.
DECIMAL[(M[,D])]
Um nmero de ponto flutuante no empacotado. Se comporta
como um campo CHAR: ``no empacotado'' significa que o nmero
armazenado como uma string, usando um caracter para cada
digito do valor. O ponto decimal e, para nmeros negativos, o sinal
de menos (`-'), no so contados em M (mas reservado espao
para isto). Se D for 0, os valores no tero ponto decimal ou parte
fracionria. A faixa mxima do valor DECIMAL a mesma do
DOUBLE, mas a faixa atual para um campo DECIMAL dado pode
ser limitado pela escolha de M e D. Se UNSIGNED especificado,
valores negativos no so permitidos. Se D no for definido ser
considerado como 0. Se M no for definido considerado como
10. Note que antes da verso 3.23 do MySQL o argumento M deve
incluir o espao necessrio para o sinal o ponto decimal.
DEC[(M[,D])]
NUMERIC[(M[,D])]
FIXED[(M[,D])]
Este um sinnimo para DECIMAL. O alias FIXED foi
adicionado na verso 4.1.0 para compatibilidade com outros
servidores.
42
APOSTILA DE MYSQL
DATE
Uma data. A faixa suportada entre '1000-01-01' e '9999-12-
31'. MySQL mostra valores DATE no formato 'AAAA-MM-DD', mas
permite a voc a atribuir valores a campos DATE utilizando tanto
strings quanto nmeros.
DATETIME
Um combinao de hora e data. A faixa suportada entre
'1000-01-01 00:00:00' e '9999-12-31 23:59:59'. MySQL mostra
valores DATETIME no formato 'AAAA-MM-DD HH:MM:SS', mas
permite a voc que atribuir valores a campos DATETIME utilizado
strings ou nmeros.
TIMESTAMP[(M)]
Um timestamp. A faixa entre '1970-01-01 00:00:00' e algum
momento no ano 2037. No MySQL 4.0 ou anteriores, os valores
TIMESTAMP so exibidos nos formatos YYYYMMDDHHMMSS,
YYMMDDHHMMSS, YYYYMMDD, ou YYMMDD, dependendo se M
14 (ou no definido), 12, 8 ou 6, mas permite a voc atribuir valores
ao campo TIMESTAMP usando strings ou nmeros. Um campo
TIMESTAMP util para gravar a data e a hora em uma operao de
INSERT or UPDATE porque automaticamente definido a data e a
hora da operao mais recente se voc prprio no especificar um
valor. Voc tambm pode definir a data e a hora atual atribuindo ao
campo um valor NULL. Desde o MySQL 4.1, TIMESTAMP retornado
com um string com o formato 'YYYY-MM-DD HH:MM:SS'. Se voc
deseja t-lo como um nmero voc deve adcionar +0 a coluna
timestamp. Timestamp de tamanhos diferentes no so suportados.
Desde a verso 4.0.12, a opo --new pode ser usada para fazer o
servidor se comportar como na verso 4.1. Um TIMESTAMP sempre
armazenado em 4 bytes. O argumento M s afeta como a coluna
TIMESTAMP exibida. Note que colunas do tipo TIMESTAMP(M)
columns onde M 8 ou 14 so apresentadas como nmeros
enquanto as outras colunas TIMESTAMP(M) so strings. Isto apenas
para assegurar que podemos eliminar e restaurar com segurana
tabelas com estes tipos!
43
APOSTILA DE MYSQL
TIME
Uma hora. A faixa entre '-838:59:59' e '838:59:59'. MySQL
mostra valores TIME no formato 'HH:MM:SS', mas permite a voc
atribuir valores para as colunas TIME usando strings ou nmeros.
YEAR[(2|4)]
Um ano no formato de 2 ou 4 digitos (padro so 4 digitos). Os
valores permitidos esto entre 1901 e 2155, 0000 no formato de 4
digitos, e 1970-2069 se voc estiver usando o formato de 2 digitos
(70-69). MySQL mostra valores YEAR no formato YYYY, mas permie
atribuir valores aos campos do tipo YEAR usando strings ou
nmeros. (O tipo YEAR novo na verso 3.22 do MySL).
CHAR(M)
Uma string de tamanho fixo que sempre preenchida a direita
com espaos at o tamanho especificado quando armazenado. A
faixa de M de 1 a 255 caracteres. Espaos extras so removidos
quando o valor recuperado. Valores CHAR so ordenados e
comparados no modo caso insensitivo de acordo com o conjunto
de caracteres padro, a menos que a palavra chave BINARY seja
utilizada. A partir da verso 4.1.0, se o valor M especificado maio
que 255, o tipo de coluna convertido para TEXT. Este um recurso
de compatibilidade. NATIONAL CHAR (ou em sua forma reduzida
NCHAR) o modo SQL-99 de definir que um campo CHAR deve
usar o conjunto CHARACTER padro. Este o padro no MySQL.
CHAR uma simplificao para CHARACTER. O MySQL lhe
permite criar um campo do tipo CHAR(0).Isto muito til quando
voc precisa de comptibilidade com aplicativos antigos que
dependem da existncia de uma coluna, mas que, na verdade,
no utiliza um valor. Isto tambm muito bom quando voc precisa
de uma coluna que s pode receber 2 valores. Um CHAR(0), que
no definido como um NOT NULL, s ir ocupar um bit e pode
assumir 2 valores: NULL or "".
44
APOSTILA DE MYSQL
BIT
BOOL
VARCHAR(M)
Uma string de tamanho varivel. NOTA: Espaos extras so
removidos quando o caracter armazenado (o que difere da
especificao ANSI SQL). A faixa de M de 1 a 255 characters.
Valores VARCHAR so ordenados e comparados no modo caso
insensitivo a menos que a palavra chave BINARY seja utilizada. A
partir da verso 4.1.0, se o valor M especificado maio que 255, o
tipo de coluna convertido para TEXT. Este um recurso de
compatibilidade. VARCHAR uma simplificao para CHARACTER
VARYING.
TINYBLOB
TINYTEXT
Um campo BLOB ou TEXT com tamanho mximo de 255
(2^8 - 1) caracteres.
BLOB
TEXT
Um campo BLOB ou TEXT com tamanho mximo de 65535
(2^16 - 1) caracteres.
MEDIUMBLOB
MEDIUMTEXT
Um campo BLOB ou TEXT com tamanho mximo de
16777215 (2^24 - 1) caracteres.
LONGBLOB
LONGTEXT
Um campo BLOB ou TEXT com tamanho mximo de
4294967295 ou 4G (2^32 - 1) caracteres. At a verso 3.23 o
protocolo cliente/servidor e tabelas MyISAM tinham um limite de
16M por pacote de transmisso/registro de tabela, a partir da verso
4.x o tamanho mximo permitido das colunas LONGTEXT ou
LONGBLOB depende do tamanho mximo configurado para o
pacote no protocolo cliente/servidor e da memria disponvel.
45
APOSTILA DE MYSQL
ENUM('valor1','valor2',...)
Uma enumerao. Um objeto string que s pode ter um valor,
selecionado da lista de valores 'valor1', 'valor2', ..., NULL ou valor
especial de erro "". Um ENUM pode ter um mximo de 65535
valores diferentes.
SET('valor1','valor2',...)
Um conjunto. Um objeto string que pode ter zero ou mais
valores, cada um deve ser selecionado da lista de valores 'valor1',
'valor2', .... Um SET pode ter at 64 membros.
EXERCCIOS:
46
APOSTILA DE MYSQL
47
APOSTILA DE MYSQL
48
APOSTILA DE MYSQL
Bibliografia
www.mysql.com
49
APOSTILA DE MYSQL
Anotaes
50
APOSTILA DE MYSQL
Anotaes
51
APOSTILA DE MYSQL
Anotaes
52
APOSTILA DE MYSQL
Anotaes
53
APOSTILA DE MYSQL
Anotaes
54
APOSTILA DE MYSQL
Anotaes
55
APOSTILA DE MYSQL
Anotaes
56
APOSTILA DE MYSQL
Anotaes
57
APOSTILA DE MYSQL
Anotaes
58
APOSTILA DE MYSQL
59
APOSTILA DE MYSQL
60