========================================================================
第四章没太多好讲的,简单讲一个重点就好。
SELECT field1,field2,[fieldn] FROM my_table;
SQL语句不区分大小写,因此
SELECT与select是相同的。同样,写成Select也没有关系。
许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有
列和表名使用小写,这样做使代码更易于阅读和调试。
分号不要忘记。
通配符 *
SELECT* FROM my_table;
一般,除非你确实需要表中的每个列,否则最
好别使用*通配符。虽然使用通配符可能会使你自己省事,不
用明确列出所需列,但检索不需要的列通常会降低检索和应
用程序的性能。
检索不同的行(DISTINCT)
此关键字指示MySQL,只返回不同的值。
- DISTINCT关键字应用于所有列的一个组合,而不仅是前置它的列。
限制结果(LIMIT)
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为
了返回第一行或前几行,可使用LIMIT子句。
在select
语句的最后,加上
LIMIT start, cols
或者:
LIMIT cols OFFSET start
几个注意点:
-
行索引从0开始
-
start表示开始查的行索引,cols 是查询允许的最多函数。
-
在行数不够的时候,能返回多少就返回多少。
比如 LIMIT 1,2 表明最多查第2行和第三行
使用完全限定的表名
使用完全限定的名字来引用列(同时使用表名和列字)。在后面的多表联查会用到。
========================================================================
这一章内容也比较简单,主要就讲了排序。
子句(clause) SQL语句由子句构成,有些子句是必需的,而
有的是可选的。一个子句通常由一个关键字和所提供的数据组
成。子句的例子有SELECT语句的FROM子句,我们在前一章看到过这个子
句。
-
ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
-
按多个列排序时,排序完全按所规定的顺序进行。
-
通过非检索列进行排序,也是可行的。
如:
意思就是将学生的分数按从低到高排列,分数相同的学生按名字排序。
SELECT id,score
FROM student_score
ORDER BY score,name;
指定排序方向(DESC)
为了进行降序排序,
必须指定DESC关键字。
下面的SQL的功能就是让学生的分数从高到低排序了。
SELECT id,score
FROM student_score
ORDER BY score DESC,name;
- 在多个列上降序排序 如果想在多个列上进行降序排序,必须对每个列都指定DESC关键字。
ORDER BY和LIMIT的组合
下面的SQL就是只找出分数最高的学生的信息。
SELECT id,name
FROM student_score
ORDER BY score DESC;
LIMIT 1;
子句的位置顺序
- 在给出ORDER BY子句时,应该保证它
位于FROM子句之后。
- 如果使用LIMIT,它必须位于ORDER BY
之后。使用子句的次序不对将产生错误消息。
后面讲到其他子句的时候,还会在讲到子句的顺序。
========================================================================
在FROM
子句后面,加上WHERE
子句来过滤数据。
WHERE子句的位置 在同时使用ORDER BY和WHERE子句时,应
该让ORDER BY位于WHERE之后,否则将会产生错误(关于ORDER
BY的使用,请参阅第5章)。
-
等于
=
-
不等于
!=
(<>
) -
小于
<
-
小于等于
<=
-
大于 >
-
大于等于
>=
-
介于两者之间
BETWEEN
如:
SELECT num FROM test WHERE num BETWEEN 1 AND 3;
几个注意点:
-
=
匹配字符串的时候,字符串用单引号’'包裹,此匹配不区分大小写。(可以根据MySQL的配置去改)。 -
范围匹配的BETWEEN的包括左右端点 ;
- NULL与不匹配的问题。
注意值为NULL和字段不匹配不是一回事,MYSQL为null有特殊的含义。
比如where name != 'tiger'
想过滤出那些名字不是tiger的记录,但是那么name字段为null的记录没有筛选出来!
========================================================================
本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件。 我们还将学习如何使用NOT和IN操作符。
操作符(operator) 用来联结或改变WHERE子句中的子句的关键
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
针对以上面试题,小编已经把面试题+答案整理好了
面试专题
除了以上面试题+答案,小编同时还整理了微服务相关的实战文档也可以分享给大家学习
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
14662516)]
[外链图片转存中…(img-za1ayUOR-1713514662518)]
面试专题
[外链图片转存中…(img-3SBkIGs2-1713514662520)]
除了以上面试题+答案,小编同时还整理了微服务相关的实战文档也可以分享给大家学习
[外链图片转存中…(img-MfcbVA0b-1713514662523)]
[外链图片转存中…(img-dQg0VCbT-1713514662525)]
[外链图片转存中…(img-T02DBH1j-1713514662527)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!