mysql 几个常用命令

1. mysql_install_db 安装mysql后建立数据库

2. show variables ; 数据库变量

3. show character set ; 数据库支持的编码

4. show create database (table) dbname (tablename) ; 查看创建数据库参数

5. create (drop) database (table) ; 创建删除数据库

6. show columns from table ;
describe table ; 查询表字段

7.
mysqladmin -u root -p password mypasswd mysql更改密码

8. /*!40101 SET NAMES GBK */; 在SQL脚本前输入这句,可更改查询编码

9. alter database testdb character set utf8; 更改数据库编码

10. SET NAMES 'utf8'; 设置终端查询编码
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

11. mysqldump -u root -punitech --default-character-set=latin1 --set-charset=gb2312 --skip-opt jinrui_inner > jinrui_innter.sql 指定字符导出

12. mysql 数据库表备份
恢复
mysqldump -u user -p db tab1 tab2 > db.sql
mysql -u user -p db < db.sql
mysqldump db1 | gzip >/backup/db1.20060725 压缩备份

(1) lock tables read tbl_name;

select * into outfile 'tbl_name.bak' from tbl_name ;

unlock tables;

(2) lock tables tbl_name write;

load data infile 'tal_name.bak' into table tbl_name;

(3) load data low_priority infile 'tbl_name' into table tbl_name;

mysqldump --databases db1 db2>db.bak

mysqldump --tab=/var/mysqldb/ db

有关生成sql语句的优化控制
--add-locks 生成的sql 语句中,在每个表数据恢复之前增加lock tables并且之后unlock table。(为了使得更快地插入到mysql)。

--add-drop-table 生成的sql 语句中,在每个create语句之前增加一个drop table。
-e, --extended-insert 使用全新多行insert语法。(给出更紧缩并且更快的插入语句)

下面两个选项能够加快备份表的速度:
-l, --lock-tables. 为开始导出数据前,读锁定所有涉及的表。
-q, --quick 不缓冲查询,直接倾倒至stdout。
理论上,备份时你应该指定上诉所有选项。这样会使命令行过于复杂,作为代替,你可以简单的指定一个--opt选项,它会使上述所有选项有效。

例如,你将导出一个很大的数据库:
mysqldump --opt db_name > db_name.txt
当然,使用--tab选项时,由于不生成恢复数据的sql语句,使用--opt时,只会加快数据导出。

mysql常用语句
(一)
创建,删除和最基本查询:
显示数据库 mysql->show databases;
创建数据库 mysql->create database db;
删除数据库  mysql->drop database db;
选择数据库 mysql->use db
创建表 mysql->create table mytable(name varchar(20),sex(char(1),birth date);
删除表    mysql->drop table mytable;
显示表的内容 mysql->show tables;
显示表的结构 mysql->describe mytable;

更新:
1、对列的操作:
在一个表中增加一条字段 mysql->alter table yourtable add name varchar(20)not null;
删除一个字段 mysql->alter table yourtable drop name ;
2、对行的操作:
插入一条记录 mysql->insert into mytable values('summer','m','1983-08-24');
删除一条记录 mysql->delete from mytable where name='summer';
修改一条记录 mysql->update mytable set sex='vm' where name='summer';
插入多条记录 mysql->insert into mytable select *from yourtable;(
这种形式的INSERT 语句中,新行的数据值不是在语句正文中明确地指定的.而是语句中指定的一个数据库查询. 该查询的逻辑限制:
?查询不能含有ORDER BY子句. ?查询结果应含有与INSERT语句中列数目相同的列,且数据类型必须逐列兼容. )

简单查询:
1.在查询结果中显示列名
a.用as关键字:select name as '姓名' from students order by age
b.直接表示:select name '姓名' from students order by age

(二)
(1). 查询语句:
select username,uid from supesite.supe_userspaces where catid='91';
select T1.image from supesite.supe_spaceimages AS T1 INNER JOIN supesite.supe_spaceitems AS T2 ON T1.itemid = T2.itemid where T2.username = '".$username."' LIMIT 1;

(2).插入语句:
insert into cdb_members (username,password) values ('$username','$passwd');

(3).更新语句:
update vpopmail.vpopmail set pw_privilege='1' where pw_name='haha';

(4).修改表结构语句:
alter table vpopmail add pw_haha int (10) default null;
alter table vpopmail drop pw_haha;
alter table haha add uid int (10) not null auto_increment, add primary key (uid);

(5). 创建表 数据库:
create table lian (a int,b char(10));
create database jie;

(6) .删除数据库 表 记录:
drop database jie;
drop table lian;
delete from lian where username='dd';

(7) mysql 备份
mysqldump --all-databases > all_databases.sql

(8) mysql 恢复
mysql < all_databases.sql

(9) 创建mysql帐户
mysql> grant all privileges on *.* to 'lianbinjie'@'localhost'
-> identified by '840611';

mysql> GRANT SELECT,UPDATE ON *.* TO 'monty'@'%' (可以网络访问的账户)
-> IDENTIFIED BY '840611';

(10) 更改已有帐户的密码
mysql> grant all privileges on *.* to 'lianbinjie'@'localhost'
-> identified by '840611';
mysql> flush privileges;

你可能感兴趣的:(mysql)