From 3c9ea1868a6ae580f19e26e62e6ad89d358867d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=80=86=E5=85=89=E5=B9=B4?= <1738803808@qq.com> Date: Mon, 22 Mar 2021 12:31:30 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20week7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week7/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/.keep" diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/.keep" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/.keep" new file mode 100644 index 00000000..e69de29b -- Gitee From 956a7bb9bbe94a48d1bf6204d0f3b431e240d6f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=80=86=E5=85=89=E5=B9=B4?= <1738803808@qq.com> Date: Mon, 22 Mar 2021 12:33:28 +0800 Subject: [PATCH 2/4] =?UTF-8?q?3=E7=8F=AD=5F=E9=80=86=E5=85=89=E5=B9=B4=5F?= =?UTF-8?q?=E7=AC=AC=E4=B8=83=E5=91=A8=E7=AC=AC=E4=B8=80=E3=80=81=E4=BA=8C?= =?UTF-8?q?=E3=80=81=E4=B8=89=E8=8A=82=E4=BD=9C=E4=B8=9A=203=E7=8F=AD=5F?= =?UTF-8?q?=E9=80=86=E5=85=89=E5=B9=B4=5F=E7=AC=AC=E4=B8=83=E5=91=A8?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E3=80=81=E4=BA=8C=E3=80=81=E4=B8=89=E8=8A=82?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...76\345\220\216\344\275\234\344\270\232.md" | 49 +++++ ...76\345\220\216\344\275\234\344\270\232.md" | 58 ++++++ ...76\345\220\216\344\275\234\344\270\232.md" | 183 ++++++++++++++++++ 3 files changed, 290 insertions(+) create mode 100644 "\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" create mode 100644 "\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\200\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" create mode 100644 "\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" new file mode 100644 index 00000000..c964c37e --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" @@ -0,0 +1,49 @@ +# 第七周-第二节-课后作业 + +- 通过navicat建表, 包含当前常用的数据类型. + + ![建表](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210317231649788.png) + + + + ![insert](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210317231608155.png) + + ``` + INSERT INTO class_02(int_field,float_field, double_field) values(1,123.22, 123123.22) + ``` + +- 练习常用的运算符 + +![运算符](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210317232652032.png) + +- 练习常用的函数 + +`INSERT INTO class_01 (id, name, grade) VALUES (001, "小明",71)` + +`INSERT INTO class_01 (name, grade) VALUES ( "小洪",110),( "小丽",110)` + +`UPDATE class_01 SET name="小海" WHERE id=4` + +> SELECT SUM(grade) FROM class_01 +> +> SELECT COUNT(*) FROM class_01 +> +> SELECT AVG(grade) FROM class_01 +> +> SELECT MAX(grade) FROM class_01 +> +> SELECT MIN(grade) FROM class_01 +> +> SELECT CHAR_LENGTH("学Python") ---> 7 +> +> SELECT LENGTH("学Python") ---> 9 +> +> SELECT FORMAT(10/3,2) +> +> SELECT left("Python", 2) ---> Py +> +> SELECT right("Python", 2) ---> on +> +> SELECT trim(" Python ") +> +> SELECT ltrim(" Python ") \ No newline at end of file diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\200\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\200\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" new file mode 100644 index 00000000..2cf07fd3 --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\200\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" @@ -0,0 +1,58 @@ +## 第七周_第一节_课后作业 + +- 什么是关系型数据表, 什么是非关系型数据表, 他们有什么区别, 各有什么应用场景. + +> ``` +> 1. 关系型数据库,指采用了关系模型来组织数据的数据库。 +> 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 +> 应用场景:零售系统、金融交易系统。 +> +> 2. 非关系型数据库,指创建Nosql系统存储(键对值)基础上的数据库,即可以存储结构化的数据, 也可以存储非结构化的数据 +> 应用场景:新浪微博 +> +> 两者的区别: +> 1. 数据存储方式不同 +> 关系型是以表格形式,非关系型是存储在数据集中,像文档或是图结构一样。 +> +> 2. 扩展方式不同 +> 关系型是纵向扩展,非关系型是分布式存储 +> +> 3. 对事务性的支持不同 +> 关系型对事务的数据控制更好,更稳定。 +> 非关系型虽然稳定性差一点,但扩展性和大数据量处理方面更优。 +> ``` + +- 什么是事务, 事务的特点. + +> ``` +> 事务一般是指要做的或所做的事情。 +> Atomic(原子性),指事务的操作是不可分割,要么完成,要么不完成,不存在其他的中间态 +> Consistence(一致性),事务A和事务B同时运行,无论谁先结束,数据库都会到达一致 +> Isolation(隔离性),解决多个事务同时对数据进行读写和修改的能力 +> Duration(持久性),事务的所有操作都是有记录的,即使数据库中途崩溃,仍然可以通过记录恢复 +> ``` + +- 完成Mysql服务端和Navicat的安装. + + + +- 完成数据库和数据表的基础操作. + +> ``` +> create +> use my_class; +> create Table class_02( +> id int primary key auto_increment, +> name varchar(255), +> grade folat(5,1) +> )default charset=utf8mb4; +> +> retrieve +> show tables; +> +> update +> alter table class_2 rename class 3 +> +> delete +> drop table1 +> ``` \ No newline at end of file diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" new file mode 100644 index 00000000..f4972386 --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" @@ -0,0 +1,183 @@ +## 第七周_第三节_课后作业 + +- 练习CRUD操作 + +- + Create(增) + + - 单条插入 + + ``` + INSERT INTO class_01(id, `name`,grade) VALUES(6, "小何", 125) + + INSERT INTO class_01(`name`,grade) VALUES("小彤", 135) + ``` + + - 多条插入 + + ``` + INSERT INTO class_01(`name`,grade) VALUES("小明", 71),("小东", 150) + ``` + +- Retrieve(查) + + - 获取所有记录 + + ``` + SELECT `name`, grade FROM class_01 GROUP BY grade DESC + SELECT `name`, grade FROM class_01 GROUP BY grade ASC + SELECT name FROM class_01 + SELECT * FROM class_01 + ``` + + - 条件查询(`WHERE`, `AND` , `OR`) + + ``` + SELECT * FROM class_01 WHERE name="小明" AND id=1 + SELECT * FROM class_01 HAVING grade > 110 + ``` + + - 模糊匹配(`LIKE`, `%`) + + > 模糊匹配有性能问题, 表记录如果比较多, 查询速度很慢 + + ``` + SELECT * FROM class_01 WHERE name LIKE "%明%" + ``` + + - 限制返回条数(`LIMIT`) + + ``` + SELECT * FROM class_01 HAVING grade = 110 LIMIT 1 + ``` + + - 过滤重复值(`DISTINCT`) + + ``` + SELECT DISTINCT grade FROM class_01 + ``` + + 对查询的结果进行过滤. + + > 如果指定多个字段, 会对多个字段联合进行过滤 + + ``` + SELECT DISTINCT grade, name FROM class_01 + ``` + + - 排序问题 + + 对查询的结果进行排序 + + - 升序(`ASC`) + + 数据库默认是升序的 + + ``` + SELECT `name`, grade FROM class_01 ORDER BY grade ASC + ``` + + - 降序(`DESC`) + + ``` + SELECT `name`, grade FROM class_01 ORDER BY grade DESC + ``` + + ![image-20210321105259024](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210321105259024.png) + + + + ``` + SELECT `name`, grade FROM class_01 GROUP BY grade DESC + ``` + + ![image-20210321105448838](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210321105448838.png) + + - 获取查询结果的条数(`COUNT`) + + ``` + SELECT COUNT(*) FROM class_01 WHERE grade = 110 + ``` + +- Update(更新) + + ``` + UPDATE class_01 SET name='小鸿' WHERE id=3 + ``` + +- Delete(删除) + + ``` + DELETE FROM class_01 WHERE name='小鸿' + ``` + +## 集合操作 + +- 并集`UNION` + + 子语句SELECT 必须拥有相同数量的列(字段), 且列的数据类型也相同 + + ``` + SELECT name from class_01 WHERE name is not NULL + UNION + SELECT name from class_03 WHERE name is not NULL + ``` + +- 交集(`JOIN`, `INNER JOIN`) + + ``` + SELECT s1.name FROM + (SELECT name from class_01 WHERE name is not NULL) as s1 + JOIN + (SELECT name from class_03 WHERE name is not NULL) as s3 + ON s1.name=s3.name + ``` + +- 差集(`LEFT JOIN`, `RIGHT JOIN`) + + - A对B的差集(`LEFT JOIN`) + + ``` + SELECT * FROM + (SELECT name from class_01 WHERE name is not NULL) as s1 + LEFT JOIN + (SELECT name from class_03 WHERE name is not NULL) as s3 + ON s1.name=s3.name + WHERE s3.name is NULL + ``` + + - B对A的差集(`RIGHT JOIN`) + + ``` + SELECT * FROM + (SELECT name from class_01 WHERE name is not NULL) as s1 + RIGHT JOIN + (SELECT name from class_03 WHERE name is not NULL) as s3 + ON s1.name=s3.name + WHERE s1.name is NULL + ``` + +- 补集 + + > A与B的补集 = A与B的并集 - A与B的交集 + > + > A与B的补集 = A对B的差集 + B对A的差集 √ + + ``` + SELECT s1.name FROM + (SELECT name from class_01 WHERE name is not NULL) as s1 + LEFT JOIN + (SELECT name from class_03 WHERE name is not NULL) as s3 + ON s1.name=s3.name + WHERE s3.name is NULL + + UNION + + SELECT s3.name FROM + (SELECT name from class_01 WHERE name is not NULL) as s1 + RIGHT JOIN + (SELECT name from class_03 WHERE name is not NULL) as s3 + ON s1.name=s3.name + WHERE s1.name is NULL + ``` + -- Gitee From 3bbdc3ce3bbc53a62276f6c2e0fe6c6389d0c17c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=80=86=E5=85=89=E5=B9=B4?= <1738803808@qq.com> Date: Mon, 22 Mar 2021 12:40:11 +0800 Subject: [PATCH 3/4] =?UTF-8?q?update=20=E7=AC=AC=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E8=90=A5/3=E7=8F=AD/3=E7=8F=AD=5F=E9=80=86?= =?UTF-8?q?=E5=85=89=E5=B9=B4/week7/=E7=AC=AC=E4=B8=83=E5=91=A8-=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E8=8A=82-=E8=AF=BE=E5=90=8E=E4=BD=9C=E4=B8=9A.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...202-\350\257\276\345\220\216\344\275\234\344\270\232.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" index c964c37e..aa83f0d8 100644 --- "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250-\347\254\254\344\272\214\350\212\202-\350\257\276\345\220\216\344\275\234\344\270\232.md" @@ -2,11 +2,11 @@ - 通过navicat建表, 包含当前常用的数据类型. - ![建表](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210317231649788.png) + ![建表](https://gitee.com/nilive/git_test/blob/master/images/image-20210317231649788.png) - ![insert](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210317231608155.png) + ![insert](https://gitee.com/nilive/git_test/blob/master/images/image-20210317231608155.png) ``` INSERT INTO class_02(int_field,float_field, double_field) values(1,123.22, 123123.22) @@ -14,7 +14,7 @@ - 练习常用的运算符 -![运算符](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210317232652032.png) +![运算符](https://gitee.com/nilive/git_test/blob/master/images/image-20210317232652032.png) - 练习常用的函数 -- Gitee From 7cd96fdfa2635e827192ae5684fffdeab3059da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=80=86=E5=85=89=E5=B9=B4?= <1738803808@qq.com> Date: Mon, 22 Mar 2021 12:42:30 +0800 Subject: [PATCH 4/4] =?UTF-8?q?update=20=E7=AC=AC=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E8=AE=AD=E7=BB=83=E8=90=A5/3=E7=8F=AD/3=E7=8F=AD=5F=E9=80=86?= =?UTF-8?q?=E5=85=89=E5=B9=B4/week7/=E7=AC=AC=E4=B8=83=E5=91=A8=5F?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E8=8A=82=5F=E8=AF=BE=E5=90=8E=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" index f4972386..f53681d2 100644 --- "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/3\347\217\255/3\347\217\255_\351\200\206\345\205\211\345\271\264/week7/\347\254\254\344\270\203\345\221\250_\347\254\254\344\270\211\350\212\202_\350\257\276\345\220\216\344\275\234\344\270\232.md" @@ -83,7 +83,7 @@ SELECT `name`, grade FROM class_01 ORDER BY grade DESC ``` - ![image-20210321105259024](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210321105259024.png) + ![image-20210321105259024](https://gitee.com/nilive/git_test/blob/master/images/image-20210321105259024.png) @@ -91,7 +91,7 @@ SELECT `name`, grade FROM class_01 GROUP BY grade DESC ``` - ![image-20210321105448838](C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20210321105448838.png) + ![image-20210321105448838](https://gitee.com/nilive/git_test/blob/master/images/image-20210321105448838.png) - 获取查询结果的条数(`COUNT`) -- Gitee