@@ -573,7 +573,7 @@ LIMIT:分页限定
573573 SELECT NAME,IFNULL(stock,0)+10 FROM product;
574574 ` ` `
575575
576- * 起别名
576+ * ** 起别名**
577577
578578 ` ` ` mysql
579579 SELECT 列名1,列名2,... AS 别名 FROM 表名;
@@ -587,7 +587,16 @@ LIMIT:分页限定
587587 SELECT NAME,IFNULL(stock,0)+10 getsum FROM product;
588588 ` ` `
589589
590+ * ** CONCAT()** :用于连接两个字段
590591
592+ ` ` ` sql
593+ SELECT CONCAT(TRIM(col1), '(', TRIM(col2), ')') AS concat_col FROM mytable
594+ -- 许多数据库会使用空格把一个值填充为列宽,连接的结果出现一些不必要的空格,使用TRIM()可以去除首尾空格
595+ ` ` `
596+
597+
598+
599+ ***
591600
592601
593602
@@ -601,22 +610,22 @@ LIMIT:分页限定
601610
602611* 条件分类
603612
604- | 符号 | 功能 |
605- | -- ----------------- | -------------------------------------- |
606- | > | 大于 |
607- | < | 小于 |
608- | >= | 大于等于 |
609- | <= | 小于等于 |
610- | = | 等于 |
611- | <> 或 != | 不等于 |
612- | BETWEEN ... AND ... | 在某个范围之内(都包含) |
613- | IN (...) | 多选一 |
614- | LIKE 占位符 | 模糊查询 _单个任意字符 %多个任意字符 |
615- | IS NULL | 是NULL |
616- | IS NOT NULL | 不是NULL |
617- | AND 或 && | 并且 |
618- | OR 或 \|\| | 或者 |
619- | NOT 或 ! | 非,不是 |
613+ | 符号 | 功能 |
614+ | -- ----------------- | ------------------------------------------------------------ |
615+ | > | 大于 |
616+ | < | 小于 |
617+ | >= | 大于等于 |
618+ | <= | 小于等于 |
619+ | = | 等于 |
620+ | <> 或 != | 不等于 |
621+ | BETWEEN ... AND ... | 在某个范围之内(都包含) |
622+ | ** IN (...)** | 多选一 |
623+ | ** LIKE 占位符** | 模糊查询 _单个任意字符 %多个任意字符,[] 匹配集合内的字符 < br / > ` LIKE '[^AB]%' ` :不以 A 和 B 开头的任意文本 |
624+ | IS NULL | 是NULL |
625+ | IS NOT NULL | 不是NULL |
626+ | AND 或 && | 并且 |
627+ | OR 或 \|\| | 或者 |
628+ | NOT 或 ! | 非,不是 |
620629
621630* 例如:
622631
@@ -659,7 +668,9 @@ LIMIT:分页限定
659668
660669
661670
662- # ### 聚合函数
671+ # ### 函数查询
672+
673+ # #### 聚合函数
663674
664675* 聚合函数:将一列数据作为一个整体,进行纵向的计算
665676
@@ -671,13 +682,13 @@ LIMIT:分页限定
671682
672683* 聚合函数分类
673684
674- | 函数名 | 功能 |
675- | -- --------- | ------------------------------ |
676- | count (列名) | 统计数量( 一般选用不为null 的列) |
677- | max (列名) | 最大值 |
678- | min (列名) | 最小值 |
679- | sum (列名) | 求和 |
680- | avg (列名) | 平均值 |
685+ | 函数名 | 功能 |
686+ | -- --------- | -------------------------------- |
687+ | COUNT (列名) | 统计数量( 一般选用不为null 的列) |
688+ | MAX (列名) | 最大值 |
689+ | MIN (列名) | 最小值 |
690+ | SUM (列名) | 求和 |
691+ | AVG (列名) | 平均值( AVG () 会忽略 NULL 行) |
681692
682693* 例如
683694
@@ -703,6 +714,25 @@ LIMIT:分页限定
703714
704715
705716
717+ # #### 文本处理
718+
719+ | 函数名 | 功能 |
720+ | -- ------- | ------------------ |
721+ | LEFT() | 左边的字符 |
722+ | RIGHT() | 右边的字符 |
723+ | LOWER () | 转换为小写字符 |
724+ | UPPER () | 转换为大写字符 |
725+ | LTRIM() | 去除左边的空格 |
726+ | RTRIM() | 去除右边的空格 |
727+ | LENGTH() | 长度去除右边的空格 |
728+ | SOUNDEX() | 转换为语音值 |
729+
730+
731+
732+
733+
734+ ***
735+
706736
707737
708738# ### 排序查询
@@ -737,6 +767,8 @@ LIMIT:分页限定
737767
738768
739769
770+ ***
771+
740772
741773
742774# ### 分组查询
@@ -747,6 +779,14 @@ LIMIT:分页限定
747779 SELECT 列名 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后条件过滤] [ORDER BY 排序列名 排序方式];
748780 ````
749781
782+ WHERE 过滤行,HAVING 过滤分组,行过滤应当先于分组过滤
783+
784+ 分组规定:
785+
786+ * GROUP BY 子句出现在 WHERE 子句之后,ORDER BY 子句之前
787+ * NULL 的行会单独分为一组
788+ * 大多数 SQL 实现不支持 GROUP BY 列具有可变长度的数据类型
789+
750790* 例如
751791
752792 ` ` ` mysql
@@ -763,7 +803,12 @@ LIMIT:分页限定
763803 SELECT brand,SUM(price) AS getSum FROM product WHERE price > 4000 GROUP BY brand HAVING getSum > 7000 ORDER BY getSum DESC;
764804 ` ` `
765805
766-
806+
807+
808+
809+ ***
810+
811+
767812
768813# ### 分页查询
769814
@@ -1246,7 +1291,7 @@ SELECT 列名 FROM 表名1,表名2,...;
12461291
12471292# ### 子查询
12481293
1249- * 子查询概念:查询语句中嵌套了查询语句。我们就将嵌套查询称为子查询
1294+ * 子查询概念:查询语句中嵌套了查询语句, ** 将嵌套查询称为子查询 **
12501295
12511296* 结果是单行单列:可以将查询的结果作为另一条语句的查询条件,使用运算符判断
12521297
@@ -3650,6 +3695,7 @@ public class JDBCDemo01 {
36503695 close(con,stat,null);
36513696 }
36523697 }
3698+ ` ` `
36533699```
36543700
36553701
@@ -3675,7 +3721,7 @@ public class JDBCDemo01 {
36753721 private Integer age;
36763722 private Date birthday;
36773723 ........
3678- ` ` `
3724+ ```
36793725
36803726- 数据准备
36813727
0 commit comments