MySQLDAY2

PART4运算符

1.算数运算符

+、-、*、/、%(加、减、乘、除、取模)

注意:sql中,不同于java,“+”仅有加法作用,没有连接作用(即会将字符串隐式转化为数值)

          取模时结果的符号与被模数一致

2.比较运算符 

左右两边操作数进行比较,比较结果为真时返回1;为假时返回0;其他情况返回NULL。

2.1第一组

=,<=>,< >,!=,<,<=,>,>=

其他的都比较好理解,但特别注意<=>含义:安全等于,用于解决NULL问题

比较等于和安全等于的区别:

例如:查询commission_pct为NULL的数据

SELECT commission_pct FROM employees WHERE commission_pct=NULL;

运行结果:

SELECT commission_pct FROM employees WHERE commission_pct <=> NULL;

原因:使用等号时,有NULL的运算结果都为NULL;所以得用安全等于来避免这个事情发生。

2.2第二组

2.2.1 IS NULL,IS NOT NULL,ISNULL

和安全等于符号有异曲同工之妙,都可以用于解决有关于NULL的问题

例如:查询commission_pct为NULL的数据

SELECT commission_pct FROM employees WHERE commission_pct IS NULL;
SELECT commission_pct FROM employees WHERE ISNULL(commission_pct);

查询commission_pct不为NULL的数据 

SELECT commission_pct FROM employees WHERE commission_pct IS NOT NULL;

2.2.2 LEAST(),GREATEST()

一个是求其最小值,另外一个是求其最大值。

2.2.3 BETWEEN...AND...

查询一个连续的区间,包括其边界值。

SELECT salary FROM employees WHERE salary BETWEEN 6000 AND 8000;

等价于

SELECT salary FROM employees WHERE salary >= 6000 AND salary <= 8000;

2.2.4 IN(set),NOT IN(set)

查出来的是一个离散的集合,找到的是符合set条件内的数据。

SELECT salary FROM employees WHERE department_id IN(10,30);

等价于

SELECT salary FROM employees WHERE department_id=10 OR department_id=30;

2.2.5 LIKE模糊查询

当不确定要查询的数据在哪个精确的位置时,会使用LIKE关键字进行查询。

LIKE关键字一般搭配着%或_进行使用,%表示通配任意N个字符,_表示1个不确定字符。

例1:查询last_name中包含字符“a"的员工信息。

SELECT last_name FROM employees WHERE last_name LIKE '%a%';

例2:查询last_name以字符"a"为开头的员工信息。

SELECT last_name FROM employees WHERE last_name LIKE 'a%';

例3:查询last_name第二个字符为"a"的员工信息。

SELECT last_name FROM employees WHERE last_name LIKE '_a%';

(注意:这里第二个字符为a,则有一个下划线;第三个字符为a,则有两个下划线)

3.逻辑运算符

||,&&,!,XOR(或,与,非,异或)

注意:and的优先级比or高,要是写sql语句时判断不了优先级,则将需要先算的加小括号。

4.位运算符(了解)

PART5排序与分页 

排序

若没有使用排序操作,则默认按数据添加顺序显示。

若要自定义排序,则用ORDER BY对查询列的数据排序

升序:ASC ,降序:DESC

例1:按照员工的工资降序去排序员工表。

SELECT last_name,salary FROM employees ORDER BY salary DESC;

注意:有ORDER BY和WHERE同时出现时,写的格式一定是:FROM...WHERE...ORDER BY...

若给某一列起别名,此别名能在ORDER BY中使用,但不能在WHERE中使用。

二级排列(多级排列同原理)

例2:显示员工信息,按照department_id的降序排列,再按照salary的升序排列。

SELECT employee_id,salary,department_id FROM employees ORDER BY department_id DESC,salary ASC;

分页

当有太多条数据时,可以使用LIMIT关键字进行数据的分页显示。

形式:LIMIT 位置偏移量,条目数;

位置偏移量从0开始,即第一条数据的位置偏移量为0。

例:表中有107条数据,显示第32,33条数据。

SELECT employee_id,last_name FROM employees LIMIT 31,2;

ps:在8.0的版本时也可以写成

SELECT employee_id,last_name FROM employees LIMIT 2 OFFSET 31;

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值