insert
MySQL 插入数据( INSERT INTO)
在创建数据库完成之后,我们需往数据库中出入数据,在MySQL中可以使用INSERT语句向数据库已有数据库表插入一行或者多行数据
基本语法:
INSERT语句有两种语法形式,分别是
INSERT…VALUES…语句
和
INSERT…SET…语句
两种语法的使用方式如下:
INSERT VALUES:
INSERT INTO 表名 (列明,列明1,列明2...) VALUES (数值,数值1,数值2,数值3)
语法注释:
- 表名:数据库中被操纵的表名(需要出入数据的数据库表名)
- 列名:数据表中指定出入数据的列名(如需要向表中所有的列去插入数据,可直接忽略列名,直接采用INSERT 表名 VALUES(值…)
- VALUES 或 VALUE子句:包含数据库的数据清单(值),清单中的数据顺序要和列的顺序相对应
INSERT SET:
INSERT INTO 表名 SET 列名=值,列名1 = 值1,列名2=值2...
语法注释:
- 表名:数据库中被操纵的表名(需要出入数据的数据库表名)
- 列名:数据表中指定出入数据的列名
- 上述语句是给表中需要操作的某些被指定的列插入值,插入数据的列名在SET字句中被指定,= (等号)后面为指定列的值,未指定的列,默认插入默认值
两种格式比较
由 INSERT 语句的两种形式可以看出:
- 使用 INSERT…VALUES 语句可以向表中插入一行数据,也可以插入多行数据;
- 使用 INSERT…SET 语句可以指定插入行中每列的值,也可以指定部分列的值;
- INSERT…SELECT 语句向表中插入其他表的数据。
- 采用 INSERT…SET 语句可以向表中插入部分列的值,这种方式更为灵活;
- INSERT…VALUES 语句可以一次插入多条数据。
- 用单条INSERT语句处理多个插入药别使用多条INSET语句更快
- 当使用单条INSERT语句插入插入多行时,只需要将每行数据用园括号括起来即可
案例演示
1 向原表中某些字段中插入一条记录。
语法:insert into +表名(表中的字段,,)value(字段所对应的记录,,);
mysql> select * from student;
+------+-----------+-------+------+
| gid | name | sex | age |
+------+-----------+-------+------+
| 3 | tangseng | male | 22 |
| 3 | bajie | male | 22 |
| 3 | shaseng | male | 22 |
| 3 | bailong | 1male | 22 |
+------+-----------+-------+------+
4 rows in set (0.02 sec)
mysql> insert into student (gid,name)value(0,"wukong");
Query OK, 1 row affected (0.09 sec)
mysql> select * from student;
+------+-----------+-------+------+
| gid | name | sex | age |
+------+-----------+-------+------+
| 3 | tangseng | male | 22 |
| 3 | bajie | male | 22 |
| 3 | shaseng | male | 22 |
| 3 | bailong | 1male | 22 |
| 0 | wukong | NULL | NULL |
+------+-----------+-------+------+
5 rows in set (0.00 sec)
2 向原表的字段中插入多条记录的方法一。
语法:insert into +表名(表中的字段,,)values(字段所对应的记录,,)(字段所对应的记录);
mysql> insert into student (gid,name)values(0,"wukong"),(1,"jhj");
Query OK, 2 rows affected (0.14 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from student;
+------+-----------+-------+------+
| gid | name | sex | age |
+------+-----------+-------+------+
| 3 | tangseng | male | 22 |
| 3 | bajie | male | 22 |
| 3 | shaseng | male | 22 |
| 3 | bailong | 1male | 22 |
| 0 | wukong | NULL | NULL |
| 0 | wukong | NULL | NULL |
| 1 | jhj | NULL | NULL |
+------+-----------+-------+------+
7 rows in set (0.00 sec)
注意
需要注意以下几点:
- 插入语句中的列名和值列表必须一一对应,否则会引发错误。
- 如果插入数据时某些列可以自动生成(如自增长列),则可以省略这些列并使用
DEFAULT
关键字指定默认值。例如:INSERT INTO table (col1, col2) VALUES (1, DEFAULT);
- 避免向列中插入超过其类型允许的数据,否则可能会导致数据截断或错误。
- 插入时应确保输入数据的完整性和一致性,避免重复数据等错误。
以上是在 MySQL 中执行插入操作的基本方法。插入语句可用于添加新数据行,并支持同时插入多个值。