SQL复习01 | SELECT语句基础

前言

  • 参考文献:《SQL基础教程(第二版)》MICK著
  • 本SQL系列旨在建立一个数据库相关知识点备忘录,帮助博主快速上手SQL,同时也希望能够为考前参见SQL考试的同学提供一些微薄的帮助

1. 列查询

基本SELECT语句:

SELECT <列名1>, <列名2> ...
  FROM <表名>;
  • SELECT 子句(clause)列举了希望从表中查询出列的名称
  • FROM子句(clause)指定表名称
  • 查询多列时,需要使用逗号进行分隔
    1)查询结果中列的顺序和 SELECT 子句中的顺序相同
    2)查询出全部列,使用星号(*),采用此方式输出则无法设定列的显示顺序,默认按照表设计结构显示

2. 列别名

SELECT <列名1> AS <别名1>, 
	   <列名2> AS <别名2> ...
  FROM <表名>;
  • 使用AS为列设定别名
  • 别名可使用中文,且需要 双引号括起来

3. 查询常数

  • 支持字符串常数、数字常数和日期常数
  • 必须使用 单引号将上述常数括起来

4. DISTINCT删除重复行

SELECT DISTINCT <列名1>,<列名2> 
  FROM <表名>;
  • NULL也被视为一类数据,即,若NULL存在多行时,也会被合并为一条NULL数据
  • DISTINCT关键字支持在多列之前使用
  • DISTINCT关键字只能用在第一个列名之前

5. WHERE条件表达式

SELECT <列名>, ...

  FROM <表名>

WHERE <条件表达式>;

执行顺序:

  1. 首先通过WHERE子句查询出符合指定条件的记录
  2. 然后再选取出SELECT语句指定的列

WHERE 用法注意事项:

  • WHERE子句必须紧跟在FROM子句后

6. 注释

注释时用来标识说明或者注意事项的部分

  • 单行注释:--
  • 多行注释:/**/之间

注意:MySQL中需要在--之后加入半角空格,才会生效

7. 算术运算符

四则运算的主要算术运算符:

  • +
  • -
  • *
  • /

注意:所有包含NULL的四则计算,结果肯定是NULL

8. 比较运算符

(一)比较运算符

运算符含义
=和~等于
<>和~不相等
>=大于等于~
>大于~
<小于~
<=小于等于~
  • 注意:不等号在左,等号在右

很多RDBMS可以使用!=来表示不等于功能,主要原因如下:

  1. 不符合 ANSI SQL 标准:在 ANSI SQL 标准中,不等于应该使用 <> 符号表示,而不是 != 符号。因此,使用 != 符号可能会使代码与标准不兼容,增加代码的维护难度。
  2. 可读性差:在 SQL 语句中,= 符号通常用于表示相等,因此使用 != 符号来表示不等于可能会导致混淆。相比之下,<> 符号更容易理解和阅读。
  3. 数据库引擎不支持:有些数据库引擎可能不支持 != 符号,这可能会导致在某些数据库中无法使用该符号。
    • MySQL 4.0 及更早版本:在这些版本中,!= 符号不是有效的 SQL 运算符,应该使用 <> 符号表示不等于。
    • Microsoft SQL Server 2000 及更早版本:在这些版本中,!= 符号不是有效的 SQL 运算符,应该使用 <> 符号表示不等于。
    • SQLite 2:在 SQLite 2 中,!= 符号不是有效的 SQL 运算符,应该使用 <> 符号表示不等于。

(二)对字符串使用不等号时的注意事项

  • 字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序进行混淆
  • 不等号的使用场景:不等号通常用于比较字符串的大小关系,例如查询所有字符串大于或小于某个特定值的记录。
  • 大小写敏感性:在许多数据库引擎中,字符串比较是大小写敏感的,这意味着 “ABC” 和 “abc” 是不同的字符串。因此,在使用不等号时,需要注意字符串的大小写是否与预期相符。如果需要进行大小写不敏感的字符串比较,可以使用 LOWER() 函数将所有字符串转换为小写字母进行比较
  • 字符集:不同的字符集可能具有不同的字符排序规则,这可能会影响到字符串的比较结果。例如,在某些字符集中,“é” 可能会被视为与 “e” 不同的字符。因此,需要在使用不等号时考虑字符集的影响。

(三)不能对NULL使用比较运算符

  • 应使用IS NULL或者IS NOT NULL

9. 逻辑运算符

(一)逻辑运算符

  1. NOT:表示否定
  2. AND(并且):在其两侧的查询条件都成立时整个查询条件才成立
  3. OR(或者):在其两侧的查询条件**有一个成立时(两个条件都成立时)**整个查询条件才成立

注意:AND运算符的优先级高于OR运算符,建议使用半角括号进行限定

(二)真值表

以下是一个真值表的例子,包括了基本的逻辑运算符(AND和OR)的真值表:

ABA AND BA OR BNOT A
truetruetruetruefalse
truefalsefalsetruefalse
falsetruefalsetruetrue
falsefalsefalsefalsetrue

注解:

  • 真值表用于确定逻辑表达式中变量的取值组合时的逻辑值,即 true 或 false。
  • 在上面的表中,A 和 B 是变量的值,它们的取值可以是 true 或 false。
  • 然后根据变量 A 和 B 的取值,计算出逻辑运算符 AND、OR 和 NOT 的真值,这些结果也是 true 或 false。

在上述表格中,对于每种逻辑运算符,都列出了所有可能的取值组合及其结果。例如,当 A 和 B 均为 true 时,A AND B 的结果为 true。同样地,当 A 为 false 时,NOT A 的结果为 true。这个表格可以方便地帮助我们在进行逻辑表达式的计算和推导时,确定变量的取值组合时的逻辑值,进而得到表达式的结果。

(三)逻辑积与逻辑和

  • 逻辑积又称为 AND 运算,表示两个逻辑表达式都为真时,整个逻辑表达式为真;

  • 逻辑和又称为 OR 运算,表示两个逻辑表达式中至少有一个为真时,整个逻辑表达式为真。

下面是逻辑积和逻辑和的真值表:

ABA AND BA OR B
0000
0101
1001
1111

其中,A 和 B 分别表示两个逻辑表达式,A AND B 表示逻辑积,A OR B 表示逻辑和。上表中的 0 和 1 分别表示逻辑表达式为假和为真,下面分别展示逻辑积和逻辑和的真值表详细运算过程。

表:AND 逻辑积
ABA AND B
111 * 11
101 * 00
010 * 10
000 * 00
表:OR 逻辑和
ABA OR B
111 + 11
101 + 01
010 + 11
000 + 00
  • 注意,此处的1+1=1运算与通常的整数运算并不相同。只是因为真值中只存在0和1两种情况,所有才有这样的结果
表:三值逻辑中的AND、OR和NOT的真值表
ABA AND BA OR B
不确定不确定
不确定不确定
不确定不确定
不确定不确定
不确定不确定不确定不确定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是希望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值