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语句