MySQL高阶语句(一)

一、常用查询

1.按关键字排序

1.1 语法

SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... 

1.2 示例

1.2.1 将下列表按hobbid升序/降序排列

在这里插入图片描述

1.2.2 对nanjing的学生进行成绩降序排列

在这里插入图片描述

1.2.3 查询学生信息先按hobbid降序排列,相同兴趣的,id也按降序排列

在这里插入图片描述

1.2.4 查询学生信息先按hobbid降序排列,相同兴趣的,id也按升序排列

在这里插入图片描述

2.区间判断及查询不重复记录

2.1 找出成绩70-90之间的学生

在这里插入图片描述

2.2 找出成绩高于90或低于70的学生并降序排列

在这里插入图片描述

2.3 查询不重复记录

在这里插入图片描述

3.对结果进行分组

3.1 语法

SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator valueGROUP BY column_name;

3.2 按hobbid相同的分组,计算相同分数的学生个数(基于name个数进行计数)

在这里插入图片描述

3.3 结合where语句,筛选分数大于等于80的分组,计算学生个数

在这里插入图片描述

3.4 结合order by把计算出的学生个数按升序排列

在这里插入图片描述

4.限制结果条目

在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,
这时候就需要用到 LIMIT 子句

4.1 语法

SELECT column1, column2, ... FROM table_name LIMIT [offset,] number

4.2 查询前4行记录

在这里插入图片描述

4.3 从第4行开始,往后显示3行内容

在这里插入图片描述

4.4 按id的大小升序排列显示前三行

在这里插入图片描述

4.5 输出最后三行

在这里插入图片描述

5.设置别名

在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。
使用的时候直接使用别名,简洁明了,增强可读性

5.1 语法

对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;

5.2 查询info表的字段数量,以number显示

在这里插入图片描述

5.3 创建t1表,将info表的查询记录全部插入t1表

在这里插入图片描述

6.通配符

通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。

通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:
%:百分号表示零个、一个或多个字符
_:下划线表示单个字符

6.1 查询名字是l开头的记录

在这里插入图片描述

6.2 查询l和i之间有两个字符的记录

在这里插入图片描述

6.3 查询名字中间有g的记录

在这里插入图片描述

6.4 查询名字带i且后最少有三个字符的

在这里插入图片描述

7.子查询

子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。
子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。
子语句可以与主语句所查询的表相同,也可以是不同表

7.1 查询和id在test2范围中的info的信息且按id升序排列

在这里插入图片描述

7.2 查询分数大于80的记录

在这里插入图片描述

7.3 将id为2的成绩改为50

在这里插入图片描述

7.4 将其他成绩改为100

在这里插入图片描述

8.视图

数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射
简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性
本质而言视图是一种select(结果集的呈现)

8.1 与表的区别

  • 视图是已经编译好的sql语句。而表不是

  • 视图没有实际的物理记录。而表有。

  • 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改

  • 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

  • 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

  • 视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的)

8.2 创建视图

在这里插入图片描述

8.3 修改视图数据

在这里插入图片描述

8.4 修改表数据

在这里插入图片描述

8.5 多表创建视图

在这里插入图片描述

9.NULL

9.1 NULL和空值的区别

NULL就是在字段中存储NULL值,空值就是字段中存储空字符(’’)
在这里插入图片描述
从上面看出空值(’’)的长度是0,是不占用空间的;而NULL长度是NULL,其实它是占用空间的

使用 COUNT(字段) 统计会过滤掉 NULL 值,但是不会过滤掉空值。

NULL值查询使用is null/is not null查询,而空值(’’)可以使用=或者!=算术运算符查询

9.2 统计数量

在这里插入图片描述

9.3 对NULL查询

在这里插入图片描述

9.4 查询空值

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值