MYSQL – Comandos Úteis

Neste post vou estar destacando alguns comandos úteis para o uso no MYSQL que encontrei no Portal Open Source.

Para fazer login (de uma shell Unix) utilize -h apenas de necessário.
[mysql dir]/bin/mysql -h hostname -u root -p

Criar uma base de dados em num servidor sql.
create database [databasename];

Listar todas as bases de dados no servidor sql.
show databases;

Mudar de base de dados.
use [db name];

Para ver todas as tabelas da Base de Dados.
show tables;

Para ver os formatos dos campos.
describe [table name];

Para apagar uma base de dados.
drop database [database name];

Para apagar uma tabela.
drop table [table name];

Para ver toda a informação de uma tabela.
SELECT * FROM [table name];

Retornar a informação das colunas e as respectivas colunas da tabela especificada.
show columns from [table name];

Ver campos especificos com o valor “qualquer coisa”.
SELECT * FROM [table name] WHERE [field name] = “qualquer coisa”;

Ver todas as entradas que contenham o nome “Manuel” e o Numero de telefone ‘3444444′.
SELECT * FROM [table name] WHERE name = “Manuel” AND phone_number = ‘3444444′;

Ver todas as entradas que contenham o nome “José” e o número de telefone ‘3444444′ ordenadas pelo campo do telefone.
SELECT * FROM [table name] WHERE name != “José” AND phone_number = ‘3444444′ order by phone_number;

Ver todas as entradas que comecem pelas letras ‘joão’ e pelo telefone ‘3444444′.
SELECT * FROM [table name] WHERE name like “joão%” AND phone_number = ‘3444444′;

Utilizar uma expressão regular para encontrar entradas. Utilizar “REGEXP BINARY” para forçar case-sensitivity. Neste caso procura qualquer entrada começada por a.
SELECT * FROM [table name] WHERE rec RLIKE “^a$”;

Mostrar entradas únicas.
SELECT DISTINCT [column name] FROM [table name];

Mostrar entradas seleccionadas por ordem ascendente (asc) ou descentente (desc).
SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;

Retorna o número de colunas.
SELECT COUNT(*) FROM [table name];

Soma as colunas.
SELECT SUM(*) FROM [table name];

Juntar as tabelas em colunas comuns.
select lookup.illustrationid, lookup.personid,person.birthday from lookup
left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;

Mudar para a mysql db. Criar um novo utilizador.
INSERT INTO [table name] (Host,User,Password) VALUES(’%’,’user’,PASSWORD(’password’));

Mudar a password. (de uma consola unix).
[mysql dir]/bin/mysqladmin -u root -h hostname.blah.org -p password ‘new-password’

Mudar uma password de um utilizador.(da linha de comandos MySQL).
SET PASSWORD FOR ‘user’@’hostname’ = PASSWORD(’passwordhere’);

Autorizar o utilizador “zé” a ligar-se ao servidor do host local utilizando a password “passwd”
grant usage on *.* to zé@localhost identified by ‘passwd’;

Mudar para uma mysql db.Dar previlégios a um utilizador sobre uma db.
INSERT INTO [table name] (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES (’%’,’databasename’,’username’,’Y’,’Y’,’Y’,’Y’,’Y’,’N’);

or

grant all privileges on databasename.* to username@localhost;

Para actualizar a informação de uma tabela.
UPDATE [table name] SET Select_priv = ‘Y’,Insert_priv = ‘Y’,Update_priv = ‘Y’ where [field name] = ‘user’;

Apagar linhas de uma tabela.
DELETE from [table name] where [field name] = ‘whatever’;

Actualizar premissões e previlégios de uma base de dados.
FLUSH PRIVILEGES;

Apagar uma Coluna.
alter table [table name] drop column [column name];

Adicionar uma coluna a uma Base de Dados.
alter table [table name] add column [new column name] varchar (20);

Mudar o nome de uma tabela.
alter table [table name] change [old column name] [new column name] varchar (50);

Criar uma única coluna.
alter table [table name] add unique ([column name]);

Criar uma coluna maior.
alter table [table name] modify [column name] VARCHAR(3);

Apagar unica de uma tabela.
alter table [table name] drop index [colmn name];

Carregar um ficheiro CSV para uma tabela.
LOAD DATA INFILE ‘/tmp/filename.csv’ replace INTO TABLE [table name] FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’ (field1,field2,field3);

Fazer um backup de todas as bases de dados.
[mysql dir]/bin/mysqldump -u root -ppassword –opt >/tmp/alldatabases.sql

Fazer um backup de apenas uma base de dados.
[mysql dir]/bin/mysqldump -u username -ppassword –databases databasename >/tmp/databasename.sql

Fazer o backup de uma tabela de uma base de dados.
[mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql

Restaurar uma base de dados (ou tabela) de um backup.
[mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql

Criar Tabela Exemplo 1.
CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups
VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));

Criar Tabela Exemplo 2.
create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default ‘bato’);

Estes são alguns exemplos de comandos que nos ajudam a trabalhar com o MYSQL caso você queira ajudar a completar esta lista deixe um comentário. Lembrando que o posto original está no endereço do Portal Open Source