首页
Flask
Flask部署
Git
linux
Python
UPS
VPN
Web
Windows
其他
数据库增删改查操作
删除
×
是否确定删除!
# 数据库增删改查操作 #### 数据库增加记录 增加记录 `INSERT INTO 表名 (column_list) VALUES (value_list);` 同时插入多条记录 `INSERT INTO 表名 (column_list) VALUES (value_list1), (value_list2),...,(value_listn);` 将查询结构插入表 `INSERT INTO 表名 (column_list1) SELECT (column_list2) WHERE (condition);` #### 数据更新 `UPDATE 表名 SET column_name1 = value1, column_name2 = value2,..., column_namen = valuen WHERE (condition);` #### 删除数据 `DELETE FROM 表名 [WHERE <condition>];` #### 查询 基本查询语句 ```mysql SELECT {* | <字段列表>} [ FROM <表1>, <表2>... [WHERE <表达式> [GROUP BY <group by definition>] [HAVING <expression> [{<operator><expression>}...]] [ORDER BY <order by definition>] [LIMIT [<offset>,] <row count>] ] SELECT [字段1,字段2,...,字段n] FROM [表或视图] WHERE [查询条件]; ``` `{* | <字段列表>}` 表示查询的字段。 `FROM <表1>, <表2>...` 表示查询数据的来源。 `WHERE <表达式>` 查询条件。 `[GROUP BY <group by definition>]` 告诉MySql如何显示查询出来的数据,并按照指定的字段分组。 `[ORDER BY <order by definition>]` 告诉MySql按照什么样的顺序显示数据,升序(ASC)和降序(DESC)。 **WHERE条件判断符** |操作符|说明| |---|---| |=|相等| |<>、!=|不相等| |<|小于| |<=|小于或等于| |>|大于| |>=|大于或等于| |BETWEEN|位于两值之间| 列如: `SELECT f_name, f_price FROM fruits WHERE f_price = 10.2;` **带IN关键字的查询** IN操作符用来查询满足指定范围的条件的记录,使用IN操作符将所有检索条件用括号括起来,检索条件之间用逗号分隔开,满足条件范围的值即为匹配项。 列如: `SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN (101, 102) ORDER BY f_name;` 在101和102范围内。 `SELECT s_id, f_name, f_price FROM fruits WHERE s_id NOT IN (101, 102) ORDER BY f_name;` 排除101和102范围内的值。 **带BETWEEN AND的范围查询** 列如: `SELECT s_id, f_name, f_price FROM fruits WHERE s_id BETWEEN 101 AND 102;` 在101和102范围内。 `SELECT s_id, f_name, f_price FROM fruits WHERE s_id NOT BETWEEN 101 AND 102;` 排除101和102范围内的值。 **带LIKE的字段匹配查询** 列如: `SELECT f_id, f_name FROM fruits WHERE f_name LIKE 'b%';` 查询所有以"b"字母开头的 `SELECT f_id, f_name FROM fruits WHERE f_name LIKE '----y';` 查询以字母"y"结尾且"y"前面只有4个字母 **查询空值** 列如: `SELECT s_id, f_name, f_price FROM fruits WHERE f_name IS NULL;` 查询名字空的 `SELECT s_id, f_name, f_price FROM fruits WHERE f_name IS NOT NULL;` 查询名字不空的 **带AND的多条件查询** 列如: `SELECT s_id, f_name, f_price FROM fruits WHERE s_id = '101' AND f_price >= 5;` 查询id等于101且价格大于5 **带OR的多条件查询** `SELECT s_id, f_name, f_price FROM fruits WHERE s_id = '101' OR f_price >= 5;` 查询id等于101或价格大于5 *OR 可以和 AND一起使用,AND 的优先级大于 OR* **查询结果不重复** `SELECT DISTINCT 字段名 FROM 表名;` **查询结构排序** `SELECT 字段1 FROM 表名 ORDER BY 字段2 [ASC | DESC];` 默认ASC 升序, DESC 降序排列。 **聚合函数** |函数|作用| |---|---| |AVG()|返回某列的平均值| |COUNT()|返回某列的行数| |MAX()|返回某列的最大值| |MIN()|返回某列的最小值| |SUM()|返回某列的和| **创建分组** 例如: `SELECT s_id, COUNT(*) AS Total FROM fruits GROUP BY s_id;` `SELECT s_id, GROUP_CONCAT(f_name) AS Names FROM fruits GROUP BY s_id;` GROUP_CONCAT()函数将每个分组中的各个字段的值显示出来。 **使用HAVING过滤分组** `SELECT s_id, GROUP_CONCAT(f_name) AS Names FROM fruits GROUP BY s_id HAVING COUNT(f_name) > 1;` 显示水果种类大于1的分组信息。 **使用WITH ROLLUP** 在所有查询的分组记录之后增加一条记录,计算查询出的所有记录的总和。 `SELECT s_id, COUNT(*) AS Total FROM fruits GROUP BY s_id WITH ROLLUP;`