MySQL学习(二)—— 数据库的基本查询

记录查询

最基本的查询语句是由SELECT和FROM 关键字组成的
SELECT * FROM t_emp; // 查询t_emp表下所有
SELECT empno,ename FROM t_emp; // 查询t_emp表下empno,ename

SELECT语句屏蔽了物理层的操作,用户不必关心数据的真实存储,交由数据库高效的查找数据

使用列别名

通常情况下,SELECT子句中使用了表达式,那么这列的名字就默认为表达式,因此需要一种对列名重命名的机制

SELECT
	empno,
	sal*12 AS "income"
FROM t_emp;
查询语句的子句执行顺序
  1. 语法分析与优化,读取SQL语句
  2. FROM 选择数据来源
  3. SELECT选择输出内容
数据分页

如果结果集的记录很多,则可以使用LIMIT 关键字限定结果集数量

SELECT ...... FROM ....... LIMIT 起始位置,偏移量;
SELECT ename FROM t_emp LIMIT 20,20;  // 从第20条往后查20条
数据分页的简写用法

如果LIMIT子句只有一个参数,它表示的是偏移量,起始值默认为0

SELECT empno FROM t_emp LIMIT 10; // 等同于
SELECT empno FROM t_emp LIMIT 0,10;

优先级

FROM => SELECT => LIMIT
结果集排序

如果没有设置,查询语句不会对结果集进行排序。也就是说,如果想让结果集按照某种顺序排列,就必须使用ORDER BY子句

SELECT ...... FROM ....... ORDER BY 列名 [ASC(默认) | DESC]

SELECT ename FROM t_emp ORDER BY sal DESC;
排序关键字
  • ASC代表升序(默认),DESC代表降序
  • 如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型就按照日期大小排序,如果是字符串就按照字符集序号排序
排序字段内容相同的情况
  • 默认情况下,如果两条数据排序字段内容相同,那么排序会按照主键排序
  • 我们可以使用ORDER BY 规定首要排序条件和次要排序条件。数据库会先按照首要排序条件排序,如果遇到首要排序内容相同的记录,那么就会启用次要排序条件接着排序
SELECT
	empno,ename,sal,deptno
FROM t_emp
ORDER BY deptno,sal DESC;


SELECT
	empno,ename,sal,deptno
FROM t_emp
ORDER BY sal DESC,empno LIMIT 0,5;
排序+分页

ORDER BY 子句书写的时候放在LIMIT 子句的前面
FROM => SELECT => ORDER BY => LIMIT

去除结果集重复记录

如果我们需要去除重复的数据,可以使用DISTINCT关键字来实现

SELECT DISTINCT 字段 FROM ......;

SELECT DISTINCT job FROM t_emp;
注意事项
  • 使用DISTINCT 的SELECT子句中只能查询一列数据,如果查询多列,完全一样才去重
  • DISTINCT 关键字只能在SELECT子句中使用一次
条件查询 WHERE
SELECT ...... FROM ...... WHERE 条件 [ AND | OR ] 条件

SELECT ename,sal FROM t_emp
WHERE deptno=10 AND sal >= 2000;

算数运算符
+、-、*、/、%
与null运算返回null

10*IFNULL(null,0)
// DATEDIFF 相差多少天
DATEDIFF(NOW(),hiredate)/365>=20

SELECT ename,sal FROM t_emp
WHERE deptno=10 AND (sal+IFNULL(comm,0)) >= 2000
AND DATEDIFF(NOW(),hiredate)/365>=20;

比较运算符

表达式意义例子
>大于
>=大于等于
<小于
<=小于等于
=等于
!=不等于
IN包含deptno IN(10,30,40)
IS NULL为空comm IS NULL
IS NOT NULL不为空comm IS NOT NULL
BETWEEN AND范围sal BETWEEN 2000 AND 3000
LIKE模糊查询ename LIKE “A%”
REGEXP正则表达式ename REGEXP “[a-zA-Z]{4}”

例:

SELECT
	ename,comm,sal
FROM t_emp WHERE comm IS NULL
AND sal BETWEEN 2000 AND 3000
AND ename LIKE "_LIKE"

SELECT
	ename,comm,sal
FROM t_emp WHERE comm IS NULL
AND sal BETWEEN 2000 AND 3000
AND ename REGEXP "^[\\u4e00-\\u9fa5]{2,4}$";

逻辑运算符

表达式意义例子
AND与关系age > 18 AND sex = “男”
OR或关系
NOT非关系NOT deptno = 20
XOR异或关系age > 18 XOR sex = “男” (两边都一样才为true,例如都为true或都为false)
SELECT
	emane, deptno
FROM t_emp
WHERE NOT deptno IN(10,20) XOR sal>=2000;

二进制按位运算

二进制位运算的实质是将参与运算的两个操作数,按对应的二进制数逐位进行逻辑运算。

WHERE 子句的注意事项

WHERE子句中,条件执行的顺序是从左到右的。所以我们应该把索引条件,或者筛选掉记录最多的条件写在最左侧

SELECT empno,ename FROM t_emp
WHERE ename = "FORD" AND sal >= 2000;

SELECT empno,ename FROM t_emp
WHERE deptno = 10 AND sal >= 2000;
各种子句的执行顺序

FROM => WHERE => SELECT => ORDER BY => LIMIT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值