Arron的博客

导航

mysql常用命令

1、连接数据库

mysql -h主机地址 -u用户名 -p用户密码   -- u和用户名之间可以没有空格,p和用户密码之间必须没有空格

2、show命令

show global variables like '%lower%'     -- 查看大小写敏感配置
show databases    -- 显示数据库列表
show tables      -- 显示当前选择的数据库内可用表的列表
show columns from thetable        -- 显示表名为thetable的列,效果同desc thetable
show create table thetable  -- 显示表thetable的建表语句  
show profiles          --默认显示最近15条sql语句的执行时间
show profile           --默认最新一条sql语句的Duration列总消耗时间,可通过参数指定具体的sql语句和显示列
show engine innodb status;  --查看innodb引擎时间信息,常用于死锁分析和innodb内存使用情况

3、select命令

select user()    -- 显示当前用户名
select database()  -- 显示当前使用数据库
select version()  --显示数据库版本

4、数据导出

mysqldump -u username -p dbname table1 table2 ... > BackupName.sql   #备份一个库中的一些表 -d不含数据,仅表结构
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql    #备份多个数据库
mysqldump -u root -p --all-databases > alldb.sql             #备份所有数据库   

5、创建和删除用户

create user 'username'@'host' identified by 'password';     --host:本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
drop user 'username'@'host'

6、修改用户密码

-- set password命令
set password for username@host=password('新密码')
set password=password('新密码')  -- 修改当前用户密码
set password for username=password('新密码')  --修改指定用户密码

-- mysqladmin命令
mysqladmin -u用户名 -p旧密码 password 新密码
-- 直接编辑user表
use mysql; 
update user set password=password('新密码') where user='username' and host='host'; 
flush privileges;

7、授权和撤销权限

-- 给用户授权
-- privileges操作权限:select、insert、update、all等
-- databasename和tablename可以用*表示任意,如*.*所有数据库和表
-- 带上with grant option,用户可以给其他用户授权,否则被授权的用户不能给其他用户授权
grant privileges on databasename.tablename to 'username'@'host' with grant option

-- 撤销用户权限
-- privilege, databasename, tablename:同授权部分
revoke privilege on databasename.tablename from 'username'@'host'

-- 查看用户权限
show grants for 'username'@'host'

8、正则表达式regexp

select * from product where num regexp '^[0-9]{4}'    -- 查找产品号以连续4位数字开始的产品

9、拼接字段concat

select concat(name,' (',age,')') from students

10、单条insert语句插入多行

insert into student(name,age) values('小明',22),('小红',23),('小花',20);    -- 比使用多条insert语句插入快
insert into student(name,age) select name,age from student_new;    -- 插入检索出的数据

 11、in多个字段

select * from student where (id,age) in ((1,20),(3,18),(7,22));    --in后面可以是一条select语句

 

posted on 2016-11-15 10:32  aaron_shu  阅读(177)  评论(0编辑  收藏  举报