1、数据库的登录与退出
1
2
3
|
mysql -u root -p
-- 使用root身份登陆当前的数据库
mysql -u root -p -h server0
-- 使用root身份登陆到server0的数据库
quit
--退出数据库
|
2、数据库
2.1、创建
1
2
|
create
databse db1;
-- 创建一个数据库
create
database
db1
character
set
utf8;
-- 创建并定义字符集
|
注:数据库名在linux下大小写敏感(跟系统有关系)
2.2、选中
1
|
use db1;
-- 选中一张表
|
2.3、查看
1
2
|
show databases;
-- 显示数据库
show
create
database
db1
-- 显式数据库创建语句
|
2.4、删除
1
|
drop
database
db1;
-- 删除数据库
|
2.5、数据权限设置
1
2
3
4
5
|
grant
privileges
on
db1.tablename
to
user1@10.168.0.8 identified
by
"password"
;
-- 按数据库授所有权限
grant
select
,
insert
,
update
,
delete
,
create
temporary
tables,
execute
,show
view
on
`db1`.*
to
'user1'
@
'10.168.0.8'
;
-- 按数据库授特定权限
revoke
select
,
insert
,
update
,
delete
,
create
temporary
tables,
execute
,show
view
on
`db1`.*
from
'user1'
@
'10.168.0.8'
;
-- 按数据库取消特定权限
drop
user
'user1'
@
'10.168.0.8'
;
-- 删除特定的用户
fluse
privileges
;
-- 刷新权限表
|
2.6、数据库的备份与还原
1
2
3
|
mysqldump -u username -p
database
> /backup/file.dump
-- 备份数据库
mysqldump -uroot -p
--all-databases | gzip -9 > file.gz -- 备份并压缩数据库
mysqldump -u username -p <./file.dump
-- 还原数据库
|
2.7 密码变更
方法一
1
2
|
mysql -uroot -p
set
password
for
root@localhost = password(
'123456'
);
|
方法二
1
|
mysqladmin -uroot -p password
"123456"
|
方法三
1
2
3
|
use mysql;
update user
set
password=password(
'123456'
) where user=
'root'
and host=
'localhost'
;
flush privileges;
|
方法四
1
2
3
4
5
6
7
8
|
service mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user
set
password=password(
'123456'
) where user=
'root'
and host=
'localhost'
;
flush privileges;
quit;
service mysqld restart
|
3、表
3.1、创建
3.1.1、创建1
1
2
3
4
|
create
tabale tb1 (
id
int
not
null
,
name
varchar
(10)
);
-- 创建一张表
|
3.1.2、创建2
1
2
3
4
|
create
tabale tb1 (
id
int
not
null
,
name
varchar
(10)
)engine=MYISAM
default
charset=utf8;
-- 创建一张表
|
注:表名在linux下大小写敏感(跟系统有关系)
3.2、查看
1
2
3
4
5
6
|
show tables;
-- 显示当前库中的表
show
create
table
tb1;
--显式创建表的语句
describe tb1;
-- 查看表结构
show
create
table
tb1;
-- 查看见表命令
show
index
from
tb2;
-- 查看表包含的索引
show
table
status
like
'%tb3%'
;
-- 查看当前表的状态
|
3.3、删除
1
2
|
drop
table
tb1
drop
table
if exists tab1
|
3.4、修改
1
|
alter
table
tb1 engine=myisam;
|
4、表的列操作
4.1、增加字段
1
|
alter table Persons add column `City` varchar(255) DEFAULT NULL;
|
4.2、修改字段
1
|
alter table Persons modify column `City` varchar(255) DEFAULT NULL comment
'城市'
;
|
4.3、删除字段
1
|
alter table `Persons` drop column `City`;
|
5、表的行操作
5.1、查询
1
2
3
4
|
select
email
from
user
group
by
email
having
count
(email) > 1;
-- 查询重复的列
select
*
from
user
where
email
in
(
select
email
from
user
group
by
email
having
count
(u_email) > 1
);
-- 查询重复数据列的行
|
5.2、插入
5.2.1、单行插入
1
|
insert
into
tablename
set
column1 = value1 , coumn2 = values2...;
|
5.2.2、多行插入
1
2
|
insert
into
tablename (column1,column2...)
values
(value1,value2....);
insert
into
tablename (column1,column2...)
values
(value1,value2....),(value1,value2....)...;
|
5.2.3、简写
1
|
insert
into
tablename
values
(value1,value2....);
|
注:当满足表中所有列都插入数据时才可简写
5.2.4、插入查询结果
1
|
insert
into
tablename (column1,column2...)
select
(column1,column2...)
from
tablename2 [
where
condition];
|
简写
1
|
insert
into
tablename
select
(column1,column2...)
from
tablename2 [
where
condition];
|
5.3、更新
1
|
update tablename
set
column1 = valuesl,column2 = values2... [where condition];
|
注:不写where会修改整张表数据(危险操作)
5.4、删除
1
|
delete
from
tablename [
where
condition];
|
注:不写where会清空整张表数据(危险操作)
6、事务
1
2
3
4
|
begin; -- 开启事务(必选)
-- 这里做引起数据变更的操作(可选)
rollback; -- 回滚事务(可选)
commit; -- 提交事务(必选)
|
注:数据InnoDB引擎支持表事务性操作
1
2
3
|
show variables like
'%commit'
; -- 查询事务自动提交设置
set
autocommit=0; -- 自动提交关闭(需要手动键入commit,执行前所有操作当一个事务处理)
set
autocommit=1; -- 自动提交打开(每个操作一个事务)
|
7、版本信息查看
7.1、登录信息查看
1
|
mysql -uroot -p
|
7.2、函数方式查看
1
2
|
mysql -uroot -p
>
select
@@version;
|
7.3、状态信息查看
1
2
|
mysql -uroot -p
>status
|
7.4、命令行方式查看
1
|
mysql -V
|
7.5 帮助方式查看
1
|
mysql --help |
grep
Distrib
|
7.6、环境变量方式查看
1
|
show variables like
'version'
;
|
8、其他查询或命令
1
2
3
4
5
6
7
8
9
|
show engines;
-- 查看引擎
show variables
like
'%storage_engine%'
;
-- 数据库默认引擎
show
create
table
tabName;
-- 查询某表的引擎
show warnings;
-- 查询警告信息
show variables;
-- 查询变量环境
show variables
like
'%query_cache%'
;
-- 查询基于特定关键字环境变量
show variables
like
"max_connections"
;
-- 查询最大连接数
show processlist;
-- 查询进程列表
kill processID
-- 结束查询的进程
|
9、QEP
1
|
explan
select
user,host from user\G
|
10、MySQLAdmin
1
|
mysqladmin -u root -p -P 3306 --socket=
/tmp/mysql
.sock
shutdown
|
不详尽请参阅:
本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1697305,如需转载请自行联系原作者