二.MYSQL命令用法

142 阅读3分钟

二、mysql用法****

SQL语句类型:
·DDL:数据定义语言,用于增删改数据库的对象,如库、表、索引等
·DML:数据操纵语言,用于对表中的数据进行增删改
·DQL:数据查询语言,用于数据查询
·DCL:数据控制语言

查看数据库支持字符类型 show charset;

查看数据库: show databases;

创建一个叫yun1的数据库,并指定字符类型 create database yun1 charset utf8mb4;(后面指定字符类型的可以不加)

查看某个库的详细情况 show create database yun2;

修改某个库的字符类型 alter database yun2 charset utf8mb4;

切换库操作(相当于Linux的cd命令) use yun1;

删除库 drop database yun2;

查看当前库的所有表的; show tables;

查看表结构 desc benet;

增加表结构 alter table benet add (telephone int(11),salary int(10));

修改表结构 alter table benet change salary xinzi int(10);

删除表结构 alter table benet drop telephone;

删除表 drop table test;

删除表内容不删除定义不释放空间 delete table test; 5.7不能用

删除内容不删除定义释放空间 truncate table test;

create table benet (id int primary key not null auto_increment,name char(10) default 'kong' comment '姓名',age int unsigned,sex enum ('man','woman','other') default 'other') engine innodb charset utf8mb4;

插入数值

不指定字段的时侯要把每个字段都要有值insert into benet values(2,'lisi',22,'男',200000);

给指定字段增加值 insert into benet (id,name,sex)values(3,'wangwu','man');

查看表的内容 select * from 表名

根据已有表创建一个相同结构的表 create table test like benet;

查看指定字段 select name,sex from benet;

修改某个字段的值 update benet set sex='man' where name='lisi';

删除某个字段(整行删) delete from benet where name='wangwu';

一次性录入多行

insert into benet (name,id,sex,xinzi,age)values('哪吒',5,'man',8888888,18),(' 红孩儿',6,'man',66666,6);

DQL语句

查询本实例端口select @@port;

查询当前的登录用户select user();

查看指定字段的指定行数:select name,id from benet limit 2;

通过where字段指定过滤条件:select name,xinzi from benet where age>18; (此处比较是可以识别大于小于等于)

在数据库中%相当于通配符的*表示任意的意思,通常可以和like配合使用进行模糊匹配

统计年龄,按名称分组

select name,count(age) from benet group by name;

select name,sum(xinzi) from benet group by name;

select name,count(name) from benet group by name;

配合where优先执行过滤

select name,xinzi from benet where xinzi=(select max(xinzi) from benet)

select name,xinzi from benet where xinzi>=(select avg(xinzi) from benet);

select name,xinzi from benet where xinzi<=(select avg(xinzi) from benet);

select max(xinzi) from benet;

max min  avg  sum  count

多个表结合查询内容

select benet.bid,name,bname,xinzi from benet,bumen where benet.bid=bumen.bid;

select id,name,xinzi,bname,benet.bid from benet,bumen where benet.bid=bumen.bid;

select * from benet as a,bumen as b where a.bid=b.bid;

筛选排序(可以跟多个字段)

select * from benet order by age,xinzi;    asc         正序

select * from benet order by age desc;

select * from benet order by age desc,xinzi desc; 倒序

模糊查询 select id,name from benet where name like '八%';

求薪资最高的人所在的部门名称

select benet.bid,bumen.bname from benet,bumen where benet.bid=bumen.bid and xinzi =(select max(xinzi) from benet);

查询各部门的平均薪资:

查询对应关系 select user,host,authentication_string from mysql.user;

创建用户 create user yun1@'%' identified by '123123';

用户授权命令 grant all on . to root@'192.168.159.141' identified by '666666';

让更改立即生效命令 flush privileges;

非交互式访问数据库 mysql -uroot -e "show processlist"

mysql 5.7版本的用户密码字段 authentication_string

创建用户 create user yun@'192.168.159.131' identified by '666666';

换密码 alter user yun3@'%' identified by '666666';

删除用户 drop user yun3@'%';

查看用户权限

show grants;

show grants for 'root'@'localhost';

给普通用户授予所有权,默认是没用授权权限的。如果想让普通用户拥有授权权限,授权时加上with grant option

grant all on . to yun@'%' identified by '123123'

grant all on . to yun@'%' identified by '123123' with grant option;

撤销权限 revoke insert on yun1.* from yun1@'%';