mysql 插入、更新与删除数据

时间:2021-06-06 22:16:10

目录


数据库用于管理数据的存储、访问和数据的完整性。其中是用 INSERT 语句插入数据,使用 UPDATE 语句更新数据,使用 DELTE 语句删除数据。本文详细介绍这些语句的使用方法和注意事项。

首先创建一个 adminuser 表:

CREATE TABLE `adminuser` (
`uId` int(30) NOT NULL AUTO_INCREMENT,// 主键id 自增
`userName` varchar(30) DEFAULT NULL, // 用户名 默认为 null
`password` varchar(30) DEFAULT NULL, // 密码 默认为null
PRIMARY KEY (`uId`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

1. 插入数据

1.1 为表的所有字段插入数据

INSERT INTO adminuser (uId,userName,password)
VALUES (1,"admin","123");

指定用户表的所有字段,并依次插入数据。字段位置和表中位置相对应。

INSERT INTO adminuser (uId,password,userName)
VALUES (2,"123","shui");

插入时字段顺序也可以不是表定义时的数据

INSERT INTO adminuser
VALUES (3,"123","shui");

表名后不带字段列表,表示按照默认字段顺序进行插入。此时 VALUES 关键字后的值的不仅要求完整且类型也需一一对应。

1.2 默认值与主键自增

INSERT INTO adminuser (uId,userName)
VALUES (2,"admin");
INSERT INTO adminuser (userName,password)
VALUES ("admin2","123456");
select * from adminuser;

+-----+----------+----------+
| uId | userName | password |
+-----+----------+----------+

| 1 | admin | 123 |
| 2 | admin | NULL |
| 5 | admin2 | 123456 |
+-----+----------+----------+

3 rows in set
  1. 第一条插入语句 password 为空,默认插入设置的默认值,查询可以看到为 null
  2. 第二条插入语句 id 为空,但是由于 id 设置为自增主键,所以即使没有插入值,id 也默认自增加 1

1.3 同时插入多条数据

INSERT INTO adminuser (userName,password)
VALUES ("admin2","123456"),("admin3","123456"),("admin4","123456");

同时插入多条数据和依次插入单条数据的效果相同,但是插入单行数据效率高。所以插入多条记录时最好单行依次插入。

2. 更新数据

UPDATE adminuser 
SET password = "321"
WHERE uid = 1

注意不使用 WHERE 指定更新位置,Mysql 将更新表中所有行

UPDATE adminuser 
SET password = "321"
WHERE uid = 1

同查询语句一样,WHERE 后面可以跟各种过滤条件

3. 删除数据

DELETE FROM adminuser 
WHERE uid = 2

删除指定位置

DELETE FROM adminuser 

删除整个表的数据

4. 注意点

更新和删除表时要注意是否使用 WHERE 指定更新或删除的数据位置:当没有使用 WHERE 指定更新或删除位置时,默认更新和删除整个表中的字段

插入数据时注意字段和值的对应性:如果没有指定字段名,则表示对整个表中的数据进行插入,要为每一个字段依次设置对应类型的值;如果在插入时不为某些字段插入值,则需要满足该字段允许为空,或者改字段具有默认值