1. 为表的所有字段插入数据
语法格式如下:
INSERT INTO table_name ( column_list ) VALUES ( value_list );
table_name: 指定要插入数据的表名。
column_list: 指定要插入数据的列。
value_list: 指定每个列要插入的数据。
【注】 a. 字段列和数据值的数量必须相同。
b. 向表中的所有字段插入值的方法有两种: 一种是指定所有字段名,另一种是完全不指定字段名。
mysql> DESC person;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | char(40) | NO | | | |
| age | int(11) | NO | | 0 | |
| info | char(50) | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
【例】在 person 表中,插入一条新纪录,id 值为 3,name 值为 Mary,age 值为 24,info 值为 Musician。
插入SQL语句:
mysql> INSERT INTO PERSON
-> VALUES (3, 'Mary',24, 'Musicion');
Query OK, 1 row affected (0.05 sec)
查看执行结果:
mysql> SELECT * FROM person;
+----+------+-----+----------+
| id | name | age | info |
+----+------+-----+----------+
| 3 | Mary | 24 | Musicion |
+----+------+-----+----------+
【例】在 person 表中,插入一条新纪录,id 值为 2,name 值为 Suse,age 值为 22,info 值为 dancer。
插入SQL语句:
mysql> INSERT INTO PERSON ( age ,name, id, info)
-> values (22,'Suse',2,'dancer');
Query OK, 1 row affected (0.06 sec)
查看执行结果:
mysql> SELECT * FROM person;
+----+------+-----+----------+
| id | name | age | info |
+----+------+-----+----------+
| 2 | Suse | 22 | dancer |
| 3 | Mary | 24 | Musicion |
+----+------+-----+----------+
可以看出,插入数据时,不需要按照表定义的顺序插入,只要保证值的顺序与列字段的顺序相同就可以。
2. 为表的指定字段插入数据
为表的指定字段插入数据,就是用 INSERT 语句为部分字段插入值,而其他字段的值为定义表时的默认值。
【例】在 person 表中,插入一条新纪录,name 值为 Willam,age 值为 20,info 值为 sports man。
插入SQL语句:
mysql> INSERT INTO PERSON (name , age, info)
-> VALUES ('Willam', 20, 'sports man');
Query OK, 1 row affected (0.09 sec)
查看执行结果:
mysql> SELECT * FROM person;
+----+--------+-----+-------------+
| id | name | age | info |
+----+--------+-----+-------------+
| 2 | Suse | 22 | dancer |
| 3 | Mary | 24 | Musicion |
| 4 | Willam | 20 | sports man |
+----+--------+-----+-------------+
3. 同时插入多条记录
用 INSERT 语句可以同时向数据表中插入多条记录,插入时指定多个值列表,每个值列表之间用逗号隔开
语法格式:
INSERT INTO table_name ( column_list )
VALUES ( value_list1 ) , ( value_list2 ), ... ,( value_listn );
4. 将查询结果插入表中
INSERT 还可以将 SELECT 请句查询的结果插入到表中。
语法格式如下:
INSERT INTO table_name1 ( column_list1)SELECT (column_list2) FROM table name2 WHERE (condition)
table_name1 指定待插入数据的表;
column_listl 指定待插入表中要插入数据的列;
table_name2 指定插入数据的来源表;
column_list2 指定数据来源表的查询列,该列表必须和 column_list1 列表中的字段个数 及数据类型相同;
condition 指定 SELECT 语句的查询条件。
【注】参考于清华大学出版社《MySQL数据库应用案例课堂》2016年1月第1版