表的查询

select列

全列查询

select * from exam_result;

指定列查询

select id,name from exam_result;

查询字段为表达式

select id,yingyu+yuwen from exam_result;

为查询结果指定别名

SELECT column [AS] alias_name [...] FROM table_name;

结果去重

select distinct shuxue from exam_result;

where条件

运算符

说明

>, >=, <, <= 大于,大于等于,小于,小于等于

大于,大于等于,小于,小于等于

=

等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL

<=>

等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)

!=, <>

不等于

BETWEEN a0 AND a1

范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)

IN (option, ...)

如果是 option 中的任意一个,返回 TRUE(1)

IS NULL

NULL

IS NOT NULL

IS NOT NULL 不是 NULL

LIKE

模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符:

说明

AND

多个条件必须都为 TRUE(1),结果才是 TRUE(1)

OR

任意一个条件为 TRUE(1), 结果为 TRUE(1)

NOT

条件为 TRUE(1),结果为 FALSE(0)

 例如:

查询英语不及格的同学及英语成绩

select name,yingyu from exam_result where yingyu<60;

 

查询语文成绩在[80,90]之间的成绩

select name,yuwen from exam_result where yuwen between 80 and 90;

select name,yuwen from exam_result where yuwen>=80 and yuwen<=90;

 

查询数学成绩是58或者59或者98或者99的同学及数学成绩

select name,shuxue from exam_result where shuxue = 58 or shuxue = 59 or shuxue = 98 or shuxue = 99;

select name,shuxue from exam_result where shuxue in (58,59,98,99);

 

结果排序

ASC为升序

DESC为降序

默认为ASC

筛选分页结果

-- 起始下标为 0

-- 从 0 开始,筛选 n 条结果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;

-- 从 s 开始,筛选 n 条结果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;

-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET n;

数据更新

将孙悟空的数学成绩改为80

UPDATE exam_result SET shuxue = 80 WHERE name = '孙悟空';

将总成绩倒数前三的三位同学的数学成绩加上30分

UPDATE exam_result SET shuxue = shuxue + 30 ORDER BY yuwen + shuxue + yingyu LIMIT 3;

删除数据

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

截断表

TRUNCATE [TABLE] table_name

1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;

2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快

3. 会重置 AUTO_INCREMENT

聚合函数

 

函数说明
count返回查询到的数据的 数量
sum返回查询到的数据的 总和,不是数字没有意义
avg返回查询到的数据的 平均值,不是数字没有意义
max返回查询到的数据的 最大值,不是数字没有意义
min返回查询到的数据的 最小值,不是数字没有意义

 

group by子句的使用

 select column1, column2, .. from table group by column;

 

SQL查询中各个关键字的执行先后顺序 from > on> join > where > group by > with > having > select > distinct > order by > limit

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值