MySQL学习(二)

本文所用示例:https://download.csdn.net/download/weixin_43956958/19037585

一、数据库操作语言:普通查询

记录查询:
SELECT * FROM t_emp;
SELECT empno,ename,sal FROM t_emp;

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

使用列别名

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

SELECT
	empno,
	sal*12 AS "income"
FROM t_emp;
查询语句的子句执行顺序

1.词法分析与优化,读取SQL语句
2.FROM 选择数据来源
3.SELECT 选择输出内容

二、数据库操作语言:数据分页

使用LIMIT关键字限定结果集数量。

SELECT ......FROM ...... LIMIT 起始位置,偏移量;

eg:SELECT empno,ename FROM t_emp LIMIT 0,20;
简写用法:SELECT empno,ename FROM t_emp LIMIT 10;
起始值默认为0.
执行顺序:FROM —> SELECT —> LIMIT

三、数据库操作语言:结果集排序

结果集按照某种顺序排列,使用ORDER BY子句。

SELECT ......FROM ...... ORDER BY 列名 [ASC|DESC];

eg:SELECT ename,sal FROM t_emp ORDER BY sal DESC;
DESC为降序排列,ASC为升序排列
若ORDER BY后不加关键字,则默认为升序排列。

排序字段内容相同的情况

在这里插入图片描述
默认以主键大小排列。

多个排序字段
SELECT empno,ename,sal,hiredate
FROM t_emp
ORDER BY sal DESC,hiredate ASC;

执行顺序:
FROM —> SELECT —>ORDER BY —>LIMIT

四、数据库操作语言:结果集去除重复记录

使用DISTINCT关键字

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

eg:SELECT DISTINCT job FROM t_emp;
注意事项:

  • 使用DISTINCT的SELECT子句只能查询一列数据,如果查询多列,去除重复记录就会失效。
  • DISTINCT关键字只能在SELECT子句中使用一次

四、数据库操作语言:条件查询

使用WHERE子句。

SELECT ...... FROM ...... WHERE 条件 [AND|OR] 条件 ......;

eg:SELECT empno,ename,sal FROM t_emp WHERE deptno=10 AND sal>=2000;
WHERE语句中的条件运算会用到四种运算符:
在这里插入图片描述

算数运算符

在这里插入图片描述
计算工资:

SELECT empno,ename,sal,hiredate 
FROM t_emp 
WHERE deptno=10 AND (sal+IFNULL(comm,0))*12>=15000
AND DATEDIFF(NOW(),hiredate)/365>=20;
比较运算符

在这里插入图片描述
在这里插入图片描述

逻辑运算符

在这里插入图片描述

二进制按位运算

二进制位运算的实质是将参与运算的两个操作数,按对应的二进制数逐位进行逻辑运算。
在这里插入图片描述
按位运算符
在这里插入图片描述

WHERE子句的注意事项
  • WHERE子句中,条件执行的顺序是从左到右。应该把索引条件,或者筛掉记录最多的条件写在最左侧。
    执行顺序:
    FROM —> WHERE —>SELECT —> ORDER BY —> LIMIT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值