Bläddra i källkod

数据库表操作

daxia 2 år sedan
förälder
incheckning
81d3dea388

+ 137 - 0
19_Node.js/Koa快速入门.md

@@ -334,3 +334,140 @@ router
 export default router;
 ```
 
+## 4. MySql数据库
+
+> 数据库相关的操作推荐使用管理工具来完成,比如Navicat。
+
+<img src="assets/image-20230507111451422.png" alt="image-20230507111451422" style="zoom:75%;" />
+
+如上,点击【Connection】,选择连接『MySQL』
+
+<img src="assets/image-20230507111604025.png" alt="image-20230507111604025" style="zoom:67%;" />
+
+接下来,填写必要信息
+
+<img src="assets/image-20230507112108981.png" alt="image-20230507112108981" style="zoom:67%;" />
+
+回到Navicat首页,即可看到上面你刚刚新建的连接名,双击即可连接上MySQL数据库,然后右键选择新建一个数据库。
+
+<img src="assets/image-20230507112307951.png" alt="image-20230507112307951" style="zoom:67%;" />
+
+新建数据库时,按下图填写即可
+
+<img src="assets/image-20230507112541396.png" alt="image-20230507112541396" style="zoom:67%;" />
+
+选择上面新建的数据库,双击进入后在Tables上右键选择【New Table】
+
+<img src="assets/image-20230507112702286.png" alt="image-20230507112702286" style="zoom:67%;" />
+
+
+
+在中间窗口中,完成表的设计
+
+<img src="assets/image-20230507113017560.png" alt="image-20230507113017560" style="zoom:67%;" />
+
+### 4.1 表操作
+
+1. C
+
+   ```sql
+   -- 1 C create 向表中插入数据
+   -- INSERT INTO <table_name>(...fields) VALUES (...vals) 这里vals值顺序 和 fields字段顺序对应上
+   -- INSERT INTO <table_name> VALUES (...vals); vals 此时和表定义时列顺序对应上
+   
+   -- 这里可以使用 mysql 内置函数来获取系统时间
+   
+   INSERT INTO Users(password, username, status, create_time) VALUES ('123456', 'daxia', 1, Now());
+   INSERT INTO Users VALUE(2, 'guoguo', '654321', 0, NOW()); -- 需要手动指定ID列的值,不方便
+   INSERT INTO Users(password, username, status, create_time) VALUES ('123456', 'fengqingyang', 1, Now());
+   ```
+
+2. R
+
+   ```sql
+   -- 2 R read 读取表中数据
+   
+   -- select ...field from <table_name>
+   -- select username, password FROM Users; -- 选择username和password 两列
+   -- SELECT * FROM Users;
+   
+   -- 2.1 条件子句where
+   -- 运算符 >, <, >=, <=, <>|!=, = , like 模糊查询 %  _, between and
+   -- 查询所有未被禁用的用户
+   
+   -- SELECT * FROM Users WHERE status = 1;
+   -- SELECT * FROM Users WHERE status <> 0;
+   -- SELECT * FROM Users WHERE status != 0;
+   
+   -- 查询所有用户名中包含 字符 gu 的那些用户
+   
+   -- SELECT * from Users where username like '%gu%';
+   
+   -- 查询所有用户名中以  gu 开头 的那些用户
+   
+   -- SELECT * from Users where username like 'gu%';
+   
+   -- 查询所有用户名中第二个字符为 u 的那些用户
+   
+   -- SELECT * from Users where username like '_u%';
+   
+   -- 选择哪些id值在1-3之间的用户
+   
+   -- SELECT * from Users where id BETWEEN 1 and 3;
+   
+   -- 2.2 条件间关系
+   
+   -- and 与
+   -- or 或
+   
+   -- 查询那些 id 范围在1-3之间并且密码为123456的用户
+   
+   -- SELECT * FROM Users WHERE id BETWEEN 1 and 3 AND password = '123456';
+   
+   -- 查询那些 id 范围在1-3之间或密码为123456的用户
+   
+   -- SELECT * FROM Users WHERE id BETWEEN 1 and 3 OR password = '123456';
+   
+   -- 2.3 LIMIT子句。主要用于分页 LIMIT OFFSET
+   
+   -- 页码current = 2, 当前条目count = 1
+   -- 根据条件 跳过(current - 1)* count 条数据,在取 count 条 数据
+   
+   SELECT * FROM Users LIMIT 1 OFFSET 1 ;
+   SELECT * FROM Users LIMIT 2,1; -- LIMIT后第一个值 为 offset值
+   ```
+
+   
+
+3. U
+
+   ```sql
+   -- 3. U update 更新数据
+   -- UPDATE <table_name> SET field1=newVal1, field2=neVal2, ...   where子句
+   
+   -- 将所有用户的密码重置为 123456
+   
+   UPDATE Users SET password='123456';
+   
+   -- 将大侠用户的密码修改为 654321,并禁用
+   
+   UPDATE Users SET password='654321',status=0 WHERE username='daxia';
+   SELECT * from Users;
+   ```
+
+   
+
+4. D
+
+   ```sql
+   -- 4 D delete 删除表数据
+   
+   -- DELETE FROM <table_name> where子句
+   
+   -- 删除风清扬用户
+   
+   DELETE FROM Users WHERE username='fengqingyang';
+   DELETE FROM Users; -- 清空表
+   ```
+
+   

BIN
19_Node.js/assets/image-20230507111451422.png


BIN
19_Node.js/assets/image-20230507111604025.png


BIN
19_Node.js/assets/image-20230507112108981.png


BIN
19_Node.js/assets/image-20230507112307951.png


BIN
19_Node.js/assets/image-20230507112541396.png


BIN
19_Node.js/assets/image-20230507112702286.png


BIN
19_Node.js/assets/image-20230507112726614.png


BIN
19_Node.js/assets/image-20230507113017560.png


+ 85 - 0
19_Node.js/day-5/note/sql语句.sql

@@ -0,0 +1,85 @@
+-- 这里可以写任意sql语句
+
+-- 1 C create 向表中插入数据
+-- INSERT INTO <table_name>(...fields) VALUES (...vals) 这里vals值顺序 和 fields字段顺序对应上
+-- INSERT INTO <table_name> VALUES (...vals); vals 此时和表定义时列顺序对应上
+
+-- 这里可以使用 mysql 内置函数来获取系统时间
+
+-- INSERT INTO Users(password, username, status, create_time) VALUES ('123456', 'daxia', 1, Now());
+-- INSERT INTO Users VALUE(2, 'guoguo', '654321', 0, NOW()); -- 需要手动指定ID列的值,不方便
+-- INSERT INTO Users(password, username, status, create_time) VALUES ('123456', 'fengqingyang', 1, Now());
+
+-- 2 R read 读取表中数据
+
+-- select ...field from <table_name>
+-- select username, password FROM Users; -- 选择username和password 两列
+-- SELECT * FROM Users;
+
+-- 2.1 条件子句where
+-- 运算符 >, <, >=, <=, <>|!=, = , like 模糊查询 %  _, between and
+-- 查询所有未被禁用的用户
+
+-- SELECT * FROM Users WHERE status = 1;
+-- SELECT * FROM Users WHERE status <> 0;
+-- SELECT * FROM Users WHERE status != 0;
+
+-- 查询所有用户名中包含 字符 gu 的那些用户
+
+-- SELECT * from Users where username like '%gu%';
+
+-- 查询所有用户名中以  gu 开头 的那些用户
+
+-- SELECT * from Users where username like 'gu%';
+
+-- 查询所有用户名中第二个字符为 u 的那些用户
+
+-- SELECT * from Users where username like '_u%';
+
+-- 选择哪些id值在1-3之间的用户
+
+-- SELECT * from Users where id BETWEEN 1 and 3;
+
+-- 2.2 条件间关系
+
+-- and 与
+-- or 或
+
+-- 查询那些 id 范围在1-3之间并且密码为123456的用户
+
+-- SELECT * FROM Users WHERE id BETWEEN 1 and 3 AND password = '123456';
+
+-- 查询那些 id 范围在1-3之间或密码为123456的用户
+
+-- SELECT * FROM Users WHERE id BETWEEN 1 and 3 OR password = '123456';
+
+-- 2.3 LIMIT子句。主要用于分页 LIMIT OFFSET
+
+-- 页码current = 2, 当前条目count = 1
+-- 根据条件 跳过(current - 1)* count 条数据,在取 count 条 数据
+
+SELECT * FROM Users LIMIT 1 OFFSET 1 ;
+SELECT * FROM Users LIMIT 2,1; -- LIMIT后第一个值 为 offset值
+
+-- 3. U update 更新数据
+-- UPDATE <table_name> SET field1=newVal1, field2=neVal2, ...   where子句
+
+-- 将所有用户的密码重置为 123456
+
+UPDATE Users SET password='123456';
+
+-- 将大侠用户的密码修改为 654321,并禁用
+
+UPDATE Users SET password='654321',status=0 WHERE username='daxia';
+SELECT * from Users;
+
+-- 4 D delete 删除表数据
+
+-- DELETE FROM <table_name> where子句
+
+-- 删除风清扬用户
+
+DELETE FROM Users WHERE username='fengqingyang';
+DELETE FROM Users; -- 清空表
+
+

BIN
19_Node.js/day-5/note/新建数据库.png