Você está na página 1de 15

Guia de Consulta Rpida

MySQL 5
Juliano Niederauer
Rubens Prates
Novatec Editora
Copyright 2006 da Novatec Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de
19/02/1998. proibida a reproduo desta obra, mesmo
parcial, por qualquer processo, sem prvia autorizao,
por escrito, do autor e da Editora.
Editor: Rubens PRates
ISBN: 85-7522-081-0
novatec editoRa Ltda.
Rua Lus Antnio dos Santos 110
02460-000 So Paulo SP Brasil
Tel.: +55 11 6959-6529
Fax: +55 11 6950-8869
E-mail: novatec@novatec.com.br
Site: www.novatec.com.br
3
Introduo.......................................................................................................................5
Objetivos.....................................................................................................................5
O.que..MySQL?...........................................................................................................5
Download.e.instalao................................................................................................5
Extenso.MySQL.para.o.PHP........................................................................................6
Novidades.do.MySQL.5.0.............................................................................................6
Outras.funcionalidades.e.melhorias............................................................................6
Operaes.bsicas.do.MySQL............................................................................................7
Criando.um.banco.de.dados........................................................................................7
Criando.tabelas...........................................................................................................7
Inserindo.dados...........................................................................................................8
Alterando.registros.ou.tabelas.....................................................................................9
Excluindo.registros.ou.tabelas.....................................................................................9
Executando.consultas................................................................................................10
Ordenando.e.limitando.os.resultados........................................................................11
Numerao.automtica.de.campos...........................................................................12
Comentrios.no.cdigo.SQL.......................................................................................12
Nomes.de.identifcadores..........................................................................................13
Comandos.SQL...............................................................................................................14
Banco.de.dados.INFORMATION_SCHEMA.......................................................................43
Tipos.de.dados.do.MySQL...............................................................................................44
Operadores....................................................................................................................50
Operador.LIKE...........................................................................................................50
Operador.REGEXP......................................................................................................50
Operadores.aritmticos.............................................................................................51
Operadores.bitwise...................................................................................................51
Operadores.lgicos....................................................................................................51
Operadores.de.comparao.......................................................................................51
Funes.do.MySQL.........................................................................................................52
Funes.de.agregao...............................................................................................52
Funes.de.comparao............................................................................................52
Funo.CASE..............................................................................................................53
Funes.numricas....................................................................................................54
Funes.de.string......................................................................................................56
Funes.de.Data.e.Hora.............................................................................................60
Outras.funes..........................................................................................................66
Principais.programas.do.MySQL.....................................................................................70
Opes.de.programas................................................................................................70
myisamchk.e.isamchk...............................................................................................79
myisampack.e.pack_isam.........................................................................................81
mysql........................................................................................................................82
mysqladmin..............................................................................................................83
mysqldump...............................................................................................................84
mysqlimport.............................................................................................................87
mysqlshow................................................................................................................88
Controle.de.acesso.a.banco.de.dados.............................................................................89
Ferramentas.externas.de.administrao........................................................................91
phpMyAdmin............................................................................................................91
MySQL-Front.............................................................................................................91
Funes.PHP.relacionadas.com.MySQL...........................................................................92
Extenso.MySQL........................................................................................................92
Extenso.MySQLi.......................................................................................................96
Informaes.gerais.sobre.o.MySQL...............................................................................104
Informaes.adicionais................................................................................................106
ndice.remissivo...........................................................................................................107
Somrio
4
Introduo
Objetivos
Este guia foi criado para orientar os programadores e administradores
de bancos de dados que desejam conhecer as funcionalidades do
SGBD (Sistema de Gerncia de Bancos de Dados) MySQL. Para isso,
sero apresentados os principais recursos desse software, incluindo a
referncia dos comandos SQL, operadores, funes, tipos de dados,
programas clientes e procedimentos de confgurao do SGBD.
O guia tambm apresenta a descrio das funes de conectividade
entre o MySQL e a linguagem PHP, utilizada para a criao de
pginas dinmicas na Web.
O que MySQL?
MySQL um SGBD relacional que utiliza a linguagem padro
SQL (Structured Query Language) e largamente utilizado em
aplicaes para a Internet. o mais popular entre os bancos de dados
com cdigo-fonte aberto. H mais de cinco milhes de instalaes
do MySQL no mundo todo, inclusive em sites com alto volume de
dados e de trfego, como Associated Press, Google, NASA, Sabre
Holdings e Suzuki.
O MySQL uma alternativa atrativa porque, mesmo possuindo uma
tecnologia complexa de banco de dados, seu custo bastante baixo.
Tem como destaque suas caractersticas de velocidade, escalabilidade
e confabilidade, o que vem fazendo com que ele seja adotado por
departamentos de TI (Tecnologia da Informao), desenvolvedores
Web e vendedores de pacotes de softwares.
A seguir so listadas algumas vantagens do MySQL:
nmero ilimitado de utilizao por usurios simultneos;
capacidade de manipulao de tabelas com mais de 50.000.000
de registros;
alta velocidade de execuo de comandos;
fcil e efciente controle de privilgios de usurios.
Para o desenvolvimento de sites dinmicos, o MySQL forma uma
excelente dupla com a linguagem PHP, tanto para websites pequenos
como para grandes portais.
Download e instalao
Para efetuar o download do MySQL, acesse o site http://www.mysql.
com, entre na seo de produtos, escolha Database Server e faa o
download do arquivo de instalao para o seu sistema operacional.
Se voc pretende instalar o MySQL no Linux, uma boa opo fazer
o download do pacote rpm, que de fcil instalao.
No caso do Windows, ao terminar o download do arquivo, execute-o
para inciar a instalao, e siga as instrues que iro aparecer na tela.
Durante a instalao, voc poder optar se deseja que o servidor
MySQL seja iniciado automaticamente na inicializao do sistema.
bom voc marcar essa opo, para no ter que iniciar manualmente
o servidor cada vez que a mquina for reiniciada.
Qualquer dvida, consulte a documentao contida no subdiretrio
Docs.
lnlroooo
5
Extenso MySQL para o PHP
Se voc pretende usar o MySQL com a linguagem PHP, ser
necessrio habilitar a extenso mysql (ou mysqli) no arquivo de
confgurao do PHP, chamado php.ini. Isso feito atravs da
seguinte linha:
extension=php_mysql.dll
Se a sua verso do MySQL for a 4.1 ou superior, voc ter que usar
a extenso mysqli:
extension=php_mysqli.dll
Normalmente essas linhas j existem no seu arquivo php.ini, mas
esto comentadas com uma vrgula na frente. Nesse caso, basta
remover a vrgula. Em seguida, reinicie o servidor Web para que as
alteraes tenham efeito.
Novidades do MySQL 5.0
As caractersticas listadas a seguir devem fazer parte da verso
5.0 do MySQL, sendo que algumas delas, como os procedimentos
armazenados (stored procedures), j esto includas desde a verso
alpha. Outras esto apenas parcialmente implementadas, como por
exemplo os cursores.
Views
As vises (views) permitem que os usurios acessem um conjunto
de tabelas como se fosse uma nica tabela. Ou seja, seria como uma
tabela virtual.
Stored Procedures e Triggers
Os procedimentos armazenados (stored procedures) so conjuntos
de comandos SQL que podem ser armazenados no servidor, para
posteriormente serem chamados pelos clientes. Esto implementados
com base no padro SQL:2003.
Os gatilhos (triggers) so objetos que podem ser associados s tabelas
do banco de dados, e so ativados na ocorrncia de determinados
eventos nessas tabelas.
Outras funcionalidades e melhorias
Suporte elementar aos cursores. Os cursores simples so
suportados dentro dos procedimentos armazenados e funes, e
utilizam a mesma sintaxe do SQL embutido (embedded SQL).
Especifcao explcita do uso de ndices RTREE para criao
tabelas MyISAM. No MySQL 4.1, os ndices RTREE so
usados apenas internamente para dados geomtricos.
Linhas de tamanho dinmico para tabelas MEMORY. A nova
verso tambm possui um melhor suporte a esse tipo de
tabelas.
Suporte a dicionrio de dados / INFORMATION_SCHEMA.
Linhas de tamanho dinmico e manipulao mais rpida das
mesmas, devido reduo no nmero de cpias.
Para ver uma descrio mais detalhada de todas as melhorias e novas
funcionalidades, assim como as mudanas planejadas para verses
futuras, consulte a seo News do manual do MySQL.
lnlroooo

Operaes bsicas do MySQL


Criando um banco de dados
No MySQL, para criar um banco de dados utilizamos o utilitrio
mysql. Trata-se do programa cliente, que executado pela prpria
linha de comando (tanto do Windows como do Linux). Se voc no
tiver a permisso para a criao de um banco de dados, deve solicitar
ao seu administrador para que ele crie sua base de dados inicial. Caso
contrrio, execute as seguintes linhas para criar um banco de dados
chamado bdteste:
mysql
> CREATE DATABASE bdteste;
> USE bdteste;
Veja que, primeiramente executamos o programa cliente mysql, para
depois escolher o banco de dados que ser utilizado, e isso feito
por meio do comando USE.
Se a criao do banco de dados foi feita por seu administrador,
provavelmente voc ter um nome de usurio e uma senha para
acesso sua base de dados. Para acess-la, voc dever digitar o
seguinte comando:
mysql -u username -p
Por exemplo, supondo que no Linux o mysql esteja localizado em
/usr/bin e voc queira se conectar com o usurio root, bastaria
digitar:
/usr/bin/mysql -u root -p
A opo -u indica que o parmetro seguinte o nome de usurio
utilizado para o acesso, e a opo -p indica que ser digitado um
password (senha) para conexo. Aps a digitao da senha, voc
j estar conectado ao banco de dados criado, podendo inserir e
manipular livremente seus dados.
Criando tabelas
Aps a criao do banco de dados, podemos acess-lo (com o
utilitrio mysql) e comear a criar as tabelas que armazenaro os
dados. Isso feito por meio do comando CREATE TABLE, cuja sintaxe
mais bsica a seguinte:
CREATE TABLE <nome_tabela> (
<nome_campo> tipo_de_dado [NULL | NOT NULL]
[DEFAULT valor_padro], ...
);
No tpico Comandos SQL deste guia, voc encontra uma descrio
completa do comando, incluindo chaves primrias e outras opes.
Veja o signifcado de cada uma das partes desse comando:
Parte. Descrio
nome_tabela Representaonomedatabelaquesercriada.Nopode
havernomesdetabelasrepetidos.
nome_campo Representa o nome pelo qual o campo ser referencia-
do.
tipo_de_dado Deve ser substitudo por um dos tipos apresentados no
tpicoanterior.
NULL|NOT NULL Defneseocampopodeaceitarvaloresnulosouno.
DEFAULT Defne um valor-padro para inseres na tabela. Esse
valorserutilizadosenenhumvalorparaestecampofor
informado.
Coroos osicos oo MySCL
7
Por exemplo, imagine que precisamos de uma tabela para armazenar
as seguintes informaes sobre os produtos de uma loja virtual:
Cdigo
Nome
Descrio
Preo
Categoria
Para criar essa tabela com o comando CREATE TABLE, faramos da
seguinte forma:
CREATE TABLE produtos (
codigo_produto smallint NOT NULL,
nome_produto varchar(80) NOT NULL,
descricao_produto text,
preco foat NOT NULL,
cod_categoria smallint NOT NULL,
primary key(codigo_produto)
);
Os campos seguidos da clusula NOT NULL no aceitaro valores nulos
no momento da insero no banco de dados. Quanto aos tipos de
dados (int, foat, char etc.) aceitos pelo MySQL, consulte o tpico
Tipos de colunas deste guia.
Para visualizar o nome das tabelas criadas no MySQL, digitamos:
SHOW TABLES;
E para visualizar a estrutura de determinada tabela, basta digitar:
DESC <nome_tabela>;
Voc ver uma tela com os nomes dos campos, o tipo, se aceitam
valores NULL, entre outras caractersticas da tabela. Por exemplo:
Inserindo dados
Para incluir um ou mais registros em uma tabela, utilizamos o
comando INSERT da SQL. Existem duas sintaxes possveis para
esse comando:
INSERT INTO <nome_tabela> VALUES (valor1, valor2, ..., valorn);
ou
INSERT INTO <nome_tabela> (nome_campo1, ..., nome_campox)
VALUES (valor1, valor2, ..., valorx);
Na primeira variao, os valores digitados no lugar de valor1, valor2,
..., valorn sero includos na mesma ordem em que foram defnidos
os campos no momento da criao da tabela.
Na segunda variao do comando insert, os valores sero inseridos
na ordem especifcada entre parnteses, logo aps o nome da tabela.
Os campos no listados recebero o valor NULL ou o valor-padro
(caso exista um).
Os valores numricos no devem ser delimitados por aspas. Observe
o exemplo a seguir, em que utilizamos o comando INSERT para fazer
a incluso de um produto na tabela produtos:
Coroos osicos oo MySCL
8
INSERT INTO produtos VALUES (1, Refrigerador Tabajara Plus,
Excelente refrigerador, com 30 anos de garantia., 1500, 1);
Aps a execuo do comando, deve aparecer uma mensagem do
tipo:
Query OK, 1 row affected (0.75 sec)
Note que na tabela produtos existe um campo (descricao_produto)
que no foi declarado com a clusula NOT NULL. Nesse caso, podemos
utilizar a segunda variao do comando INSERT:
INSERT INTO produtos (codigo_produto,nome_produto, preco,
cod_categoria) VALUES (2, Fogo 16 bocas Tabajara, 549.90, 1);
Assim, o campo descricao_produto fcar com o valor NULL.
Observao: se tivssemos um campo do tipo date, o formato de
entrada dependeria da confgurao do SGBD. O formato mais
usado o aaaa-mm-dd, delimitado por aspas simples (por exemplo:
2005-11-24).
Alterando registros ou tabelas
O comando UPDATE realiza alteraes em um ou mais registros de
determinada tabela. Sua sintaxe a seguinte:
UPDATE <nome_tabela>
SET campo1=valor1 [, campo2=valor2, ..., campon=valorn]
[WHERE <condies>];
Se a clusula WHERE no for utilizada, a alterao ser efetuada em
todos os registros da tabela. Se quisermos, por exemplo, alterar o
preo de um produto, podemos utilizar o seguinte comando:
UPDATE produtos SET preco=1700 WHERE codigo_produto=1;
O outro tipo de alterao que podemos fazer em uma tabela em
sua estrutura, utilizando o comando ALTER TABLE. Podem ser usadas
as seguintes sintaxes:
ALTER TABLE <nome_tabela> ADD <nome_campo> tipo_de_dado;
ALTER TABLE <nome_tabela> RENAME TO <novo_nome_tabela>;
Para adicionar, por exemplo, o campo fabricante nossa tabela de
produtos, devemos executar a seguinte linha:
ALTER TABLE produtos ADD fabricante varchar(50);
O campo fabricante ser includo como o ltimo campo da tabela
produtos.
Excluindo registros ou tabelas
O comando DELETE exclui um ou mais registros de determinada
tabela. Sua sintaxe a seguinte:
DELETE FROM <nome_tabela> [WHERE <condies>];
Se a clusula WHERE no for utilizada, todos os registros da tabela
sero excludos. Por exemplo, para excluir o produto de cdigo 2,
podemos digitar o comando a seguir:
DELETE FROM produtos WHERE codigo_produto=2;
Para excluir todos os produtos existentes na tabela, basta digitar:
DELETE FROM produtos;
Para excluir uma tabela inteira (dados e estrutura) do banco de dados,
usamos o comando DROP TABLE. Sua sintaxe a seguinte:
DROP TABLE <nome_tabela1> [,<nome_tabela2>, ...];
Por exemplo, para excluir a tabela de produtos, basta digitar:
DROP TABLE produtos;
Coroos osicos oo MySCL

Existe tambm o comando DROP DATABASE, que serve para excluir


um banco de dados inteiro. Porm, para executar esse comando
necessrio que o administrador do sistema lhe d essa permisso.
Executando consultas
Com o comando SELECT podemos executar diversos tipos de consultas
sobre as tabelas de um banco de dados. Sua sintaxe mais bsica
a seguinte:
SELECT <lista_de_campos> FROM <lista_de_tabelas>
[WHERE <condies>];
Consulte a sintaxe completa no tpico Comandos SQL deste
guia.
Se <lista_de_campos> for substituda por um asterisco (*), sero
retornados todos os campos existentes na(s) tabela(s) em uso. Se a
clusula WHERE for omitida, sero mostrados todos os registros das
tabelas determinadas em <lista_de_tabelas>.
Por exemplo, para selecionar os campos cdigo, nome e preo da
tabela de produtos, o comando seria:
SELECT codigo_produto, nome_produto, preco FROM produtos;
O resultado seria semelhante ao apresentado na fgura a seguir:
Agora vamos ver um exemplo usando a clusula WHERE para
determinar quais registros devem ser retornados. Se quisermos, por
exemplo, obter o nome dos produtos que custam mais de R$600,00,
executamos o seguinte comando:
SELECT nome_produto FROM produtos WHERE preco > 600;
Se houvesse mais de uma condio a ser analisada na clusula
WHERE, utilizaramos os operadores lgicos AND e OR entre elas. Por
exemplo:
SELECT codigo_produto, nome_produto FROM produtos
WHERE cod_categoria=2 AND preco<100;
A linguagem SQL nos oferece um operador de grande utilidade, que
o LIKE. Com ele, podemos descobrir, por exemplo, todos os produtos
que comeam com a letra F, ou todos que terminam com a letra
A, ou ainda todos que contenham a letra O. Por exemplo:
SELECT * FROM produtos WHERE nome_produto LIKE Fogo%;
Esse comando retorna todos os produtos cujo nome comea com
Fogo. O smbolo % representa uma seqncia de caracteres.
Poderamos usar tambm o smbolo _, que representa um caractere
qualquer.
Agora vamos ver como realizar outros tipos de consultas. Por
exemplo, para contar quantos registros existem em nossa tabela de
produtos, utilizamos a funo COUNT:
SELECT COUNT(*) FROM produtos;
Para somar os valores de determinado campo de uma tabela,
utilizamos a funo SUM. Vamos somar os preos de todos os produtos
de nossa loja, executando o seguinte comando:
SELECT SUM(preco) FROM produtos;
Coroos osicos oo MySCL
1C
Para descobrir quanto custa o produto mais caro da loja, podemos
utilizar a funo MAX:
SELECT MAX(preco) FROM produtos;
Se ao invs da funo MAX fosse utilizada a funo MIN, seria retornado
o preo do produto mais barato da loja.
A linguagem SQL nos oferece ainda a opo GROUP BY, que nos
permite agrupar os resultados de uma consulta. Se quisermos,
por exemplo, saber quantos produtos existem em cada uma das
categorias, podemos fazer da seguinte forma:
SELECT cod_categoria,COUNT(*)
FROM produtos GROUP BY cod_categoria;
O comando GROUP BY tambm pode ser utilizado com a opo
HAVING, que seleciona alguns registros retornados pelo GROUP BY.
Para retornar, por exemplo, somente as categorias que possuem 1
nico produto cadastrado, digitamos o seguinte comando:
SELECT cod_categoria,COUNT(*) FROM produtos GROUP BY cod_
categoria HAVING COUNT(*)=1;
Ordenando e limitando os resultados
Para ordenar os registros retornados por uma consulta, utilizamos
a clusula ORDER BY, seguida pelo nome dos campos a serem
ordenados. Os campos sero avaliados da esquerda para a direita.
Um exemplo seria mostrar em ordem alfabtica o nome de todas os
produtos da loja:
Podemos tambm fazer uma ordenao decrescente dos resultados,
e para isso basta utilizar a opo DESC aps o nome do campo:
SELECT nome_produto FROM produtos ORDER BY nome_produto DESC;
Podemos tambm utilizar a clusula LIMIT para determinar o
nmero mximo de registros que uma consulta pode retornar. Se, por
exemplo, um usurio fzer uma busca pela palavra CD, e houver
mais de 500 CDs na loja, obviamente no mostraremos os 500 CDs
na mesma tela, pois a pgina fcaria muito grande. Poderamos, ento,
determinar que devem ser retornados no mximo 10 CDs, utilizando
o seguinte comando:
SELECT * FROM produtos
WHERE nome_produto LIKE CD % LIMIT 10;
Dessa forma exibiramos apenas os 10 primeiros CDs ao usurio,
e colocaramos um link para a prxima pgina, em que seriam
mostrados os prximos 10. claro que, para obtermos 10 registros
por vez, devemos utilizar a opo ORDER BY. Assim, evitamos que
os registros apaream em uma ordem diferente a cada chamada.
Por exemplo:
SELECT * FROM produtos WHERE nome_produto LIKE CD %
ORDER BY nome_produto LIMIT 10;
O parmetro OFFSET pode ser utilizado em conjunto com o LIMIT,
para determinar a partir de qual registro a consulta deve retornar.
Portanto, para retornar os prximos 10 registros, utilizamos o
seguinte comando:
SELECT * FROM produtos WHERE nome_produto LIKE CD %
ORDER BY nome_produto LIMIT 10 OFFSET 10;
Coroos osicos oo MySCL
11
Ento bastaria incrementar o parmetro OFFSET de 10 em 10 para
obter todos os produtos que contm a palavra CD.
Numerao automtica de campos
Em algumas ocasies, precisamos criar em uma tabela um campo
com numerao automtica (sequencial). No MySQL, isso pode ser
feito com a propriedade de auto-incremento, da seguinte forma.
CREATE TABLE produto (
codigo int NOT NULL AUTO_INCREMENT,
nome varchar(70) NOT NULL,
primary key(codigo)
);
Para inserir registros nessa tabela, faramos do seguinte modo:
INSERT INTO produto (nome) VALUES (Raquete de Tnis);
INSERT INTO produto (nome) VALUES (Taco de Baseball);
Nesse exemplo, o produto Raquete de Tnis fcar com o cdigo
1, e o produto Taco de Baseball fcar com o cdigo 2.
Comentrios no cdigo SQL
Se voc criar um arquivo de script SQL, existe a possibilidade de
comentar alguns trechos, para evitar que determinados comandos
sejam executados quando o script for chamado. Os caracteres #, -- e
/* */ so utilizados para indicar comentrios no cdigo SQL:
# comentrio para o fm da linha
-- comentrio para o fm da linha. Requer pelo menos um espao aps
--
/* comentrio de uma nica linha */
/*
este comentrio ocupa
mais de uma linha
*/
Existem algumas limitaes no uso de /*...*/:
Caracteres como apstrofo e aspas indicam o incio ou o fm de
um string mesmo dentro do comentrio.
Ponto e vrgula indicam o fnal do comando. Tudo que estiver
aps o ponto e virgula interpretado como um novo comando.
Tipo especial de comentrio
A partir do MySQL 3.23 possvel desabilitar recursos especfcos do
MySQL, utilizando a forma especial de comentrio /*! ... */ dentro
de um comando. O sinal de ! indica que o MySQL deve interpretar e
executar o cdigo dentro dos comentrios, enquanto outros servidores
ignoram o que estiver entre /* e */. Por exemplo:
SELECT /*! STRAIGHT_JOIN */ coluna
FROM tabela1, tabela2 WHERE ...
No exemplo anterior somente o MySQL considerar a opo
STRAIGHT_JOIN.
Tambm possvel desabilitar recursos recursos de verses antigas
do MySQL. Se voc adiciona o nmero da verso aps o sinal !, a
sintaxe ser executada somente se a verso do MySQL for igual ou
mais recente que o nmero da verso utilizada:
CREATE /*!32302 TEMPORARY */ TABLE (a int);
O comando anterior signifca que o MySQL utilizar a palavra-chave
TEMPORARY se a verso for 3.23.02 ou mais recente.
Coroos osicos oo MySCL
12
Nomes de identifcadores
Nomes de bancos de dados, tabelas, ndices, colunas e alias seguem
as mesmas regras no MySQL.
Identifcador Tam. mx Caracteres permitidos
Banco de dados 64 Qualquer caractere permitido em um nome de
diretrio,exceto/,\ou.
Tabela 64 Qualquer caractere permitido em um nome de
arquivo,exceto/,\ou.
Coluna 64 Todososcaracteres
ndice 64 Todososcaracteres
Alias 255 Todososcaracteres
As regras para nomes so as seguintes:
Um nome pode conter caracteres alfanumricos do character
set corrente e tambm os caracteres _ e $. O character
set default ISO-8859-1 (Latin1); que pode ser alterado
recompilando o MySQL.
Um nome pode iniciar com qualquer caractere vlido, inclusive
um nmero, mas no somente nmeros.
O caractere . (ponto) no pode ser utilizado dentro do nome
pois utilizado nas referncias de colunas, que podem ser feitas
das seguintes formas:
Referncia.. Signifcado
coluna Nomedacolunaqueutilizadadentrodeumcomando
select,update,etc.
coluna Nomedeumacolunadelimitadacomapstrofeindicaque
o nome da coluna uma palavra reservada ou contm
caracteresespeciais.
tabela.coluna Nomedacolunadatabelaespecifcadadobancodedados
corrente.
bd.tabela.coluna Nomedacolunadatabelaebancodedadosespecifca-
dos.
Uso de maisculas e minsculas
No MySQL, bancos de dados e tabelas correspondem a diretrios e
arquivos dentro desses diretrios. Em razo disso, no Unix feita
distino entre minsculas e maisculas nos nomes de tabelas e
bancos de dados, e no Win32 no feita distino.
Nos nomes de colunas no feita distino, em todos os casos.
Coroos osicos oo MySCL
13
Comandos SQL
Este tpico contm uma referncia dos comandos bsicos da SQL
(Structured Query Language Linguagem de Consulta Estruturada),
a linguagem padro para manipulao de bancos de dados no
MySQL. Para cada comando apresentada sua descrio e sintaxe,
assim como seus principais parmetros.
ALTER DATABASE
>4.1.1
Permite alterar as caractersticas de um banco de dados.
Essas caractersticas fcam armazenadas no arquivo db.opt,
localizado no diretrio do banco de dados. Para executar esse
comando, voc precisa ter o privilgio de alterao (ALTER).
ALTER {DATABASE | SCHEMA} nome_bd ao [,ao] ...
O parmetro ao pode ser:
[DEFAULT] CHARACTER SET conj_caracteres
| [DEFAULT] COLLATE comp_caracteres
Parmetro. Signifcado
conj_caracteres Conjuntodecaracteres(charset)usadonobancode
dados(ex:latin1,utf8etc.).Vocpodeusarocomando
SHOW CHARACTER SETparavisualizarasopes
disponveis.
comp_caracteres Conjuntoderegras(collation)paracomparaodos
caracteresdeumconjunto(charset).Vocpodeusar
o comando SHOW COLLATION para visualizar as
opesdisponveis.
ALTER PROCEDURE e ALTER FUNCTION
>5.0.3
Pode ser usado para renomear um procedimento armazenado
(stored procedure) ou funo, alm de alterar suas
caractersticas.
ALTER {PROCEDURE | FUNCTION} nome [caracterstica ...]
caracterstica:
NAME novo_nome
| SQL SECURITY {DEFINER | INVOKER}
| COMMENT comentrio
ALTER SCHEMA
>5.0.2
Permite alterar as caractersticas de um banco de dados.
Para executar esse comando, voc precisa ter o privilgio de
alterao (ALTER).
ALTER {DATABASE | SCHEMA} nome_bd ao [,ao] ...
O parmetro ao pode ser:
[DEFAULT] CHARACTER SET conj_caracteres
| [DEFAULT] COLLATE comp_caracteres
Para uma descrio detalhada dos parmetros, veja o comando
ALTER DATABASE, cuja sintaxe a mesma.
ALTER TABLE
Modifca os atributos de um campo ou adiciona um novo
campo em uma determinada tabela em um banco de dados
selecionado.
ALTER [IGNORE] TABLE tabela ao [, ao...]
Comonoos SCL
14
Parmetro. Signifcado
IGNORE Utilizasomenteaprimeiralinhaquandoencontrarduplicidadeem
umachaveUNIQUE.Asdemaisseroeliminadas.Seaopono
forespecifcada,seremitidaumamensagemdeerroenenhuma
alteraoserfeita.
tabela Nomedatabelaaseralterada.
ao Aoouaesaseremefetuadasnatabela.
Aes do comando ALTER TABLE
ADD COLUMN
Adiciona uma coluna tabela.
ALTER [IGNORE] TABLE tabela
ADD [COLUMN] decl_coluna [FIRST | AFTER nome_coluna]
| ADD [COLUMN] (decl_coluna,...)
Parmetro. Signifcado
decl_coluna Declarao da coluna; mesmo formato usado no comando
CREATE TABLE.
FIRST Adicionaanovacolunanaprimeiraposiodatabela.
AFTER Adicionaanovacolunaapsacolunaespecifcada.
ADD INDEX
Adiciona um ndice tabela.
ALTER [IGNORE] TABLE tabela
ADD INDEX [ndice] [tipo_ndice] (coluna,...)
ADD PRIMARY KEY
Adiciona uma chave primria tabela.
ALTER [IGNORE] TABLE tabela
ADD [CONSTRAINT [smbolo]]
PRIMARY KEY [tipo_ndice] (coluna,...)
ADD UNIQUE
Adiciona um ndice sem duplicidade tabela.
ALTER [IGNORE] TABLE tabela
ADD [CONSTRAINT [smbolo]]
UNIQUE [ndice] [tpo_ndice] (coluna,...)
ADD FULLTEXT/ ADD SPATIAL
>4.1
Adiciona um ndice para colunas do tipo texto ou para colunas
espaciais (ex: tipos geomtricos).
ALTER [IGNORE] TABLE tabela
ADD [FULLTEXT|SPATIAL] [ndice] (coluna,...)
ADD FOREIGN KEY
>4.0
Adiciona uma chave estrangeira tabela.
ALTER [IGNORE] TABLE tabela
ADD [CONSTRAINT [smbolo]]
FOREIGN KEY [ndice] (coluna,...)
[definio_referncia]
ALTER COLUMN
Altera (SET) ou elimina (DROP) o valor padro de uma coluna.
ALTER [IGNORE] TABLE tabela
ALTER [COLUMN] coluna
{SET DEFAULT literal | DROP DEFAULT}
Comonoos SCL
15
CHANGE COLUMN
Altera o nome e/ou a declarao de uma coluna.
ALTER [IGNORE] TABLE tabela
CHANGE [COLUMN] coluna decl_coluna
[FIRST|AFTER nome_coluna]
Parmetro. Signifcado
coluna Nomeatualdacoluna.
decl_coluna Declaraodanovacoluna(mesmoformatousadonocomando
CREATE TABLE).
FIRST
>4.0.1
Posicionaacolunanoinciodatabela.
AFTER
>4.0.1
Posicionaacolunaapsaespecifcadapornome_coluna.
DISABLE KEYS
>4.0
Indica que o MySQL deve parar de atualizar os ndices que no
so nicos (uniques).
ALTER [IGNORE] TABLE tabela
DISABLE KEYS
DROP COLUMN
Remove uma coluna da tabela.
ALTER [IGNORE] TABLE tabela
DROP [COLUMN] coluna
DROP INDEX
Remove um ndice da tabela.
ALTER [IGNORE] TABLE tabela
DROP INDEX ndice
DROP PRIMARY KEY
Remove a chave primria da tabela.
ALTER [IGNORE] TABLE tabela
DROP PRIMARY KEY
DROP FOREIGN KEY
>4.0.13
Remove uma chave estrangeira da tabela especifca.
ALTER [IGNORE] TABLE tabela
DROP FOREIGN KEY smbolo_fk
ENABLE KEYS
>4.0
Usado para recriar os ndices perdidos devido ao uso da opo
DISABLE KEYS.
ALTER [IGNORE] TABLE tabela
ENABLE KEYS
MODIFY COLUMN
Altera a declarao de uma coluna. Similar a CHANGE COLUMN,
exceto que no permite alterar o nome da coluna.
ALTER [IGNORE] TABLE tabela
MODIFY [COLUMN] decl_coluna
[FIRST | AFTER nome_coluna]
Parmetro. Signifcado
decl_coluna Declarao da coluna (mesmo formato usado no comando
CREATE TABLE).
FIRST
>4.0.1
Posicionaacolunanoinciodatabela.
AFTER
>4.0.1
Posicionaacolunaapsaespecifcadapornome_coluna.
Comonoos SCL

Você também pode gostar