TUTORIAL: Aprenda os comandos e funções básicas para trabalhar com banco de dados MySql

Instalação

Windows
Instale com o pacote Xampp (xampp.sf.net)

Linux
sudo apt-get install mysql-server-5.1 phpmyadmin

Executando

Uma boa opção de administração do MySQL é o phpmyadmin, que também acompanha o Xampp.

Para administração pela linha de comando use:

mysql -h host -u user -p    (o super usuário default é root)
mysql -u root (quando estiver sem senha)

TROCANDO SENHA DO USUÁRIO ROOT

mysql -u root teste (Usuário root acessar banco teste)
use mysql;
UPDATE user SET Password=PASSWORD(“novasenha”) WHERE user=”root”;
FLUSH PRIVILEGES;

Ou

mysql -u root clientes
SET PASSWORD FOR root=PASSWORD(‘senhadoroot’);

No Ubuntu

sudo dpkg-reconfigure mysql-server-5.1

CRIANDO USUÁRIOS

mysql –user=root mysql
GRANT ALL PRIVILEGES ON *.* TO super@localhost
IDENTIFIED BY ‘senha’ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO super@”%”
IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;

super – é um total super usuário que pode se conectar no localhost e
de qualquer lugar (“%”), mas precisa usar senha

GRANT RELOAD,PROCESS ON *.* TO admin@localhost;

admin – usuário que pode se conectar no localhost sem senha.
Pode executar os comandos mysqladmin reload, mysqladmin refresh, and mysqladmin flush-*
e mysqladmin processlist . Não tem nenhum privilégio relacionado aos bancos.

GRANT USAGE ON *.* TO fraco@localhost;

fraco – pode conectar somente via localhost sem senha mas sem privilégios, somente para uso.

Exemplo:
GRANT ALL PRIVILEGES ON *.* TO ribafs@localhost IDENTIFIED BY ‘ribafs’ WITH GRANT OPTION;
mysql -u ribafs    // Dá erro de senha

mysql -u ribafs -p //Funciona após entrar a senha ribafs

REMOVENDO USUÁRIOS

DROP USER nomeusuario;

PRIVILÉGIOS

REVOKE GRANT ALL ON nomebancooutabelaou*ou*.* FROM nomeusuario
* – todas as tabelas
*.* todos os bancos e todas as tabelas
banco.* – todas as tabelas do banco

GRANT SELECT,INSERT,UPDATE ON nomebanco.* TO nomeuser;

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON nomebanco.* TO usuario@localhost
IDENTIFIED BY ‘senha';

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON nomebanco.* TOusuario@dominio.com.br
IDENTIFIED BY ‘senha';

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON nomebanco.* TO usuario@’%’
IDENTIFIED BY ‘senha';

INSTALAR COMO SERVIÇO NO WINDOWS

Instalar MySQL como serviço no Windows para trabalhar com Java (J2EE):
mysqld-nt –install –ansi –sql-mode=ANSI_QUOTES

Instalar como serviço:
bin\mysqld-nt –install mysql

Remover o serviço:
bin\mysqld –remove mysql

Remover serviço ansi:
bin\mysqld –remove –ansi

CRIAR TABELAS COM RELACIONAMENTOS

create table produto(
codigo int not null primary key,
nome varchar(50) not null unique,
descricao varchar(200),
valor real(6, 2)
) ENGINE=INNODB;

create table cliente(
codigo int not null primary key,
nome varchar(50) not null,
email varchar(100) not null unique,
cpf varchar(11) not null
) ENGINE=INNODB;

create table pedido(
numero int not null primary key auto_increment,
codigocliente int not null references cliente(codigo),
valortotal real(7,2) DEFAULT ‘0.00’ NOT NULL
) ENGINE=INNODB;

create table item(
numeropedido int not null references pedido(numero),
codigoproduto int not null references produto(codigo),
quantidade int not null,
primary key(numeropedido, codigoproduto)
) ENGINE=INNODB;

CREATE TABLE product (
category INT NOT NULL,
id INT NOT NULL,
price DECIMAL,
PRIMARY KEY(category, id)
) ENGINE=INNODB;

CREATE TABLE product_order (
no INT NOT NULL AUTO_INCREMENT,
product_category INT NOT NULL,
product_id INT NOT NULL,
customer_id INT NOT NULL,
PRIMARY KEY(no),
INDEX (product_category, product_id),
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX (customer_id),
FOREIGN KEY (customer_id)
REFERENCES customer(id)
) ENGINE=INNODB;

O tipo InnoDb dá suporte à constraint Foreign Key (references).

REMOVER SERVIÇO NO WINDOWS NT/XP

mysql\bin\mysqld — remove    (remove o serviço mysql)
— remove –ansi  (remover o serviço ansi)

RESUMO DE USO

1) mysql -u root -p ou mysql -u root

mysql -h host -u user -p banco

Obs: Caso receba a mensagem: Can’t connect to MySQL server on ‘localhost’
Falta startar o MySQL

2) create database nomebanco;

3) use nomebanco;

4) create table nometabela(campos tipos…);

5) select * from nometabela;

6) show databases;

7) show tables;

8) describe nometabela;

IMPORTAR E EXPORTAR

Exportando:
bin\mysqldump -u user -p passwd banco > banco.sql

Importando:
bin\mysql -u user -p password banco < banco.sql

Mudar Conjunto de Caracters para LATIN1

musql -u root
\C latin1

POPULANDO TABELAS APÓS A CRIAÇÃO

O comando LOAD DATA pode ser utilizado para popular tabelas, trazendo de arquivos:

LOAD DATA LOCAL INFILE ‘/path/arquivo.txt’ INTO TABLE nometabela;

SELECT DATABASE();

SHOW CHARACTER SET;

CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]

CREATE TABLE tbl_name (column_list)
[[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]]
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]
Example:
CREATE TABLE t1 ( … ) CHARACTER SET latin1 COLLATE latin1_danish_ci;

col_name {CHAR | VARCHAR | TEXT} (col_length)
[CHARACTER SET charset_name] [COLLATE collation_name]

Example:
CREATE TABLE Table1
(
column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci
);

FUNÇÕES COM DATAS

DATE_SUB
SELECT something FROM tbl_name WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;
SELECT DATEDIFF(‘1997-12-31 23:59:59′,’1997-12-30′);

DATE_ADD
SELECT DATE_ADD(‘2006-05-00′,INTERVAL 1 DAY);

SELECT CURDATE();

SELECT CURTIME();

DATE_FORMAT
SELECT date_format( ‘2006-04-30′, ‘%d/%m/%Y’ ); — 30/04/2006
SELECT DATE_FORMAT(‘2003-10-03′,GET_FORMAT(DATE,’EUR’)); — 03.10.2003
SELECT DATE_FORMAT(‘2006-06-00′, ‘%d/%m/%Y’);

SELECT NOW();

SELECT TO_DAYS(‘1997-10-07′); — RETORNA DIAS

SELECT YEAR(‘2000-01-01′); 

Be Sociable, Share!

Comentários desativados.