mysql11-插入、更新与删除数据

  • 存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储、访问和维护数据的完整性。
  • MySQL中提供了功能丰富的数据管理语句,包括插入数据的INSERT语句,更新数据的UPDATE语句和删除数据的DELETE语句。

1、插入数据

1、一般插入数据的方法

  • 基本语法格式如下
    • 使用该语句时,字段列中的元素必须和数据值列表中的元素一一对应,且数据类型也要匹配。
INSERT INTO table_name(column_list) VALUES(value_list1)[,(value_list2),...,(value_listn)];
    • table_name:指定要插入数据的表名。
    • column_list:指定要插入数据的那些列。
    • value_list1,value_list2,...,value_listn:数据值列表表示插入第1,2..,n个记录。
  • 向表中所有字段插入值的方法有两种:
    • 第一种指定所有字段名。
    • 第二种完全不指定字段名,但要保证每个插入值的类型和对应列的数据类型匹配。
    • 注意,如果使用INSERT插入数据时忽略插入数据的列名称,那么VALUES关键字后面的值不仅要求完整而且顺序必须和表定义时列的顺序相同。

示例:

  • Records:表明插入的记录条
  • Duplicates:表明插入时被忽略的记录,原因可能是这些记录包含了重复的主键值。
  • Warnings:表明有问题的数据值,例如发生数据类型转换。
mysql> insert into ins(id,name) values(1001,'hh1');

mysql> insert into ins values(1002,'hh2');

mysql> insert into ins(id,name) values(1003,'hh3'),(1004,'hh4');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from ins;
+------+------+
| id   | name |
+------+------+
| 1001 | hh1  |
| 1002 | hh2  |
| 1003 | hh3  |
| 1004 | hh4  |
+------+------+

2、将查询结果插入到表中

  • 使用一条INSERT语句和一条SELECT语句组成的组合语句,可以快速地从一个或多个表向一个表中插入多个行。
  • 自增主键,在插入的时候要保证该字段值的唯一性,如果不能确定,可以插入的时候忽略该字段,只插入其他字段的值。
  • 基本语法格式如下
INSERT INTO table_namel (column_1ist1) SELECT (column_list2) FROM table_name2 WHERE (condition);
    • table_namel指定待插入数据的表。
    • column_listl指定待插入表中要插入数据的哪些列。
    • table_name2指定插入数据是从哪个表中查询出来的。
    • column_list2指定数据来源表的查询列,该列表必须和column_list1列表中的字段个数相同,数据类型相同。
    • condition指定SELECT语句的查询条件。

示例:

mysql> insert into ins_new(name,id) select name,id from ins;
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from ins_new;
+------+------+
| id   | name |
+------+------+
| 1001 | hh1  |
| 1002 | hh2  |
| 1003 | hh3  |
| 1004 | hh4  |
+------+------+

2、更新数据

  • MySQL中使用UPDATE语句更新表中的记录,可以更新特定的行或者同时更新所有的行。
  • 基本语法格式如下
UPDATE table_name 
SET column_namel = value1 [, column_name2 = value2, ..., column_namen = valuen]
WHERE (condition);
    • column_namel,column_name2,...,colum_namen为指定更新的字段的名称。
    • valuel,value2,...,valuen为相对应的指定字段的更新值。
    • condition指定更新的记录需要满足的条件。
    • 更新多个列时,每个“列-值”对之间用逗号隔开,最后一列之后不需要逗号。
  • 保证UPDATE以WHERE子句结束,通过WHERE子句指定被更新的记录所需要满足的条件,如果忽略WHERE子句, MySQL将更新表中所有的行。

示例:

mysql> update ins_new set name = '44' where id = 1004;    --修改符合条件的行

mysql> select * from ins_new;
+------+------+
| id   | name |
+------+------+
| 1001 | hh1  |
| 1002 | hh2  |
| 1003 | hh3  |
| 1004 | 44   |
+------+------+

mysql> update ins_new set name = '44';                    --修改所有条件的行

mysql> select * from ins_new;
+------+------+
| id   | name |
+------+------+
| 1001 | 44   |
| 1002 | 44   |
| 1003 | 44   |
| 1004 | 44   |
+------+------+

3、删除数据

  • 基本语法格式如下
DELETE FROM table_name [WHERE <condition>];
  • table_name指定要执行删除操作的表。
  • "[WHERE <condition>]"为可选参数,指定删除条件。如果没有WHERE子句,DELETE语句将删除表中的所有记录。

示例:

mysql> delete from ins_new where id = 1004;    --删除符合条件的行
Query OK, 1 row affected (0.00 sec)

mysql> select * from ins_new;
+------+------+
| id   | name |
+------+------+
| 1001 | 44   |
| 1002 | 44   |
| 1003 | 44   |
+------+------+

mysql> delete from ins_new;                    --删除所有行
Query OK, 3 rows affected (0.00 sec)

mysql> select * from ins_new;
Empty set (0.00 sec

 

#                                                                                                                   #
posted @ 2021-08-19 02:29  麦恒  阅读(109)  评论(0编辑  收藏  举报