SQL高级语法操作记录

WHERE子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。

SQL高级语法操作记录

 

 

 如果想在 MySQL 数据表中读取指定的数据,WHERE 子句是非常有用的。使用主键来作为 WHERE 子句的条件查询是非常快速的。

如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。

SQL高级语法操作记录

 SQL高级语法操作记录

当需要多条件才能确定数据时,可使用AND或者OR运算符来确定数据

在WHERE子句中字符串比较查询是不区分大小写的。若想进行大小写区分可使用BINARY关键字

LIKE操作符

SQL LIKE 子句中使用百分号(%)字符来表示任意字符,类似于UNIX或正则表达式中的星号 (*)。如果没有使用百分号(%), LIKE 子句与等号(=)的效果是一样的。

LIKE子句需要编写在WHERE子句中。

表达式 LIKE   pattern

通配符(pattern)

在 SQL 中,通配符与 LIKE 操作符一起使用。SQL 通配符用于搜索表中的数据。在 SQL 中,可使用以下通配符:

SQL高级语法操作记录

 SQL高级语法操作记录

 ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序(ASC)对记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字

SQL高级语法操作记录

 可支持多字段同时排序,但 DESC或者 ASC 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

SQL高级语法操作记录

 SQL高级语法操作记录

 IN 操作符

IN 操作符允许在 WHERE 子句中规定多个值。IN运算符是一个逻辑运算符,用于将值与一组值进行比较。 如果值在值集内,则IN运算符返回true。否则,它返回false或unknown。

expression   IN  (value1,value2,...)

SQL高级语法操作记录

 子查询

子查询(subquery)是嵌套在另一个查询中的查询,例如:SELECTINSERTUPDATEDELETE语句。放在括号内的查询称为子查询,它也称为内部查询或内部选择。 包含子查询的查询称为外部查询或外部选择。

可以在许多地方使用子查询,例如:

① 使用IN或NOT IN运算符

表达式 IN/NOT IN (subquery)

② 比较运算中

表达式 =/>/=/<=/<>/!= (subquery)

③ 使用EXISTS或NOT EXISTS运算符

表达式 EXISTS/ NOT EXISTS (subquery)

④ 使用ANY或ALL运算符

表达式 ANY/ALL(subquery)

⑤ 在FROM子句中 

SQL高级语法操作记录

 BETWEEN 操作符

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。BETWEEN运算符是逻辑运算符。 它返回true,false或unknown值。 BETWEEN运算符用于SELECTUPDATEDELETE语句中以查找范围内的值。

以下说明了BETWEEN运算符的语法:

expression BETWEEN  low  AND high;

在上面语法中,

表达式是在低和高定义的范围内测试的表达式。

low和high可以是表达式或文字值,要求low的值小于high的值。

如果表达式大于或等于(>=)low值且小于或等于(<=)high值,则BETWEEN运算符返回true。

SQL高级语法操作记录

 连接(JOIN)

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段

别名

SQL别名用于在执行查询期间为表或列分配临时名称。 有两种类型的别名:表别名和列别名

连接类型

INNER JOIN(内连):如果表中有至少一个匹配,则返回行

SQL高级语法操作记录

 

 LEFT JOIN(左连):即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行

SQL高级语法操作记录

 

 SQL高级语法操作记录 

UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个SELECT 语句中的列的顺序必须相同。数据库系统首先执行两个SELECT语句来处理查询。然后,它将两个单独的结果集合并为一个,并消除重复的行。 为了消除重复的行,数据库系统对每列的组合结果进行排序,并扫描它以查找彼此相邻的匹配行。

要保留结果集中的重复行,请使用UNION ALL运算符

假设我们有两个结果集A(1,2)和B(2,3)。 下图说明了A UNION B结果:

SQL高级语法操作记录

 

以下图片说明了A UNION ALL B的结果:

SQL高级语法操作记录

 

 SQL高级语法操作记录

 GROUP BY 语句

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。分组是使用数据库时必须处理的最重要任务之一。 要将行分组,请使用GROUP BY子句。GROUP BY子句是SELECT语句的可选子句,它根据指定列中的匹配值将行组合成组,每组返回一行。

经常将GROUP BY与MINMAXAVGSUMCOUNT等聚合函数结合使用,以计算为每个分组提供信息的度量。

SELECT   column1, column2,聚合函数(column3)  FROM   table  GROUP BY   column1,column2;

SQL高级语法操作记录

 

SQL高级语法操作记录

上一篇:Illustrator 收缩和膨胀效果 隐藏功能


下一篇:Mysql 结构、引擎、执行过程