MySQL高阶语句
一、常用查询
(增删改查)
对MySQL数据库的查询,除了基本的查询外,有时候需要对查询结果进行处理。
例如只取10条记录、对查询结果进行排序或分组等等
按关键字排序
select column1,column2,...from table_name order by column1,column2...
asc|desc
asc是按照升序排序的(默认的)(可以省略)
desc是按照降序排序的。order by 前面也可以使用where子句对查询结果进一步过滤
MySQL进阶查询
MySQL数据库函数
MySQL存储过程
select id,name,score from ky29 order by score desc;
select name,score from ky29 where address='nanjing' order by score desc;
select id,name,score,address,hobbid from ky29 order by id asc;
desc降序
asc升序
区间判断及查询不重复记录
and/or-----且/或
select * from ky29 where score >70 and score<90;
select * from ky29 where score >80 or score<60;
select * from ky29 where score >80 or score<60 order by score asc;
按字母升序排序
select name,score from ky29 order by name;
select name,score from ky29 order by name;
嵌套多条件
select * from ky29 where score > 60 or (score>60 and score<90);
对结果进行分组
使用group来实现,group by通常和聚合函数一起使用,常用聚合函数包括:计数(count)、求和(sum)、求平均数(avg)、最大值(max)、最小值(min),group by 分组的时候可以按一个或多个字段对结果进行分组处理
select count(name),hobbid from ky29 group by hobbid;
结合order by吧计算出的学生个数按升序排列
select count(name),score,hobbid from ky29 where score>=80 group by hobbid order by count(name) asc;
限制结果条目(limit)
limit限制输出的结果记录
select * from ky29 limit 3;
select name as 姓名,score as 成绩 from ky29;
设置别名
select count(*) as 数量 from ky29;
as使用场景
1、对复杂的表进行查询的时候,别名可以缩短查询语句的长度
2、多表相连查询的时候(通俗易懂、减短sql语句)
此外,AS还可以作为连接语句的操作符。
克隆、复制表
create table t1 as select * from ky29;
create table t2(select * from ky29 where score >=80);
select * from t2;
通配符
%:百分号表示零个、一个或多个字符 *
_:下划线表示单个字符
select id,name from ky29 where name like 'l_l%';
允许用户zangsan在192.168.10段的终端远程连接mysql并拥有benet库下所有权限
grant all privileges on benet.* to 'zhangsan'@'192.168.10%' identified by 'abc123'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;