《MYSQL_从零开始学——插入更新与删除数据》.doc
文本预览下载声明
8.1 插入数据
在使用数据库之前,数据库中必须要有数据,MySQL中使用INSERT语句向数据库表中插入新的数据记录。可以插入的方式有:插入完整的记录,插入记录的一部分,插入多条记录以及插入另一个查询的结果,下面将介绍这些内容。
8.1.1 为表的所有字段插入数据
使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值。基本语法格式为:
INSERT INTO table_name (column_list) VALUES (value_list);
table_name指定要插入数据的表名,column_list指定要插入数据的那些列,value_list指定每个列应对应插入的数据。注意,使用该语句时字段列和数据值的数量必须相同。
本章将使用样例表person,创建语句如下:
CREATE TABLE person
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(40) NOT NULL DEFAULT ,
age INT NOT NULL DEFAULT 0,
info CHAR(50) NULL,
PRIMARY KEY (id)
);
向表中所有字段插入值的方法有两种:一种是指定所有字段名,另一种是完全不指定字段名。
【例8.1】在person表中,插入一条新记录,id值为1,name值为Green,age值为21,info值为lawyer,SQL语句如下:
执行插入操作之前,使用SELECT语句查看表中的数据:
mysql SELECT * FROM person;
Empty set (0.00 sec)
结果显示当前表为空,没有数据,接下来执行插入操作:
mysql INSERT INTO person (id ,name, age , info)
- VALUES (1,Green, 21, Lawyer);
Query OK, 1 row affected (0.00 sec)
语句执行完毕,查看执行结果:
mysql SELECT * FROM person;
+----+--------+-----+------------+
| id | name | age | info |
+----+--------+-----+------------+
| 1 | Green | 21 | Lawyer |
+----+--------+-----+------------+
可以看到插入记录成功。在插入数据时,指定了person表的所有字段,因此将为每一个字段插入新的值。
INSERT语句后面的列名称顺序可以不是person表定义时的顺序。即插入数据时,不需要按照表定义的顺序插入,只要保证值的顺序与列字段的顺序相同就可以,如下面的例子。
【例8.2】在person表中,插入一条新记录,id值为2,name值为Suse,age值为22,info值为dancer,SQL语句如下:
mysql INSERT INTO person (age ,name, id , info)
- VALUES (22, Suse, 2, dancer);
语句执行完毕,查看执行结果:
mysql SELECT * FROM person;
+----+--------+-----+------------+
| id | name | age | info |
+----+--------+-----+------------+
| 1 | Green | 21 | Lawyer |
| 2 | Suse | 22 | dancer |
+----+--------+-----+------------+
由结果可以看到,INSERT语句成功插入了一条记录。
使用INSERT插入数据时,允许列名称列表column_list为空,此时,值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。请看【例8.3】。
【例8.3】在person表中,插入一条新记录,SQL语句如下:
mysql INSERT INTO person
- VALUES (3,Mary, 24, Musician);
Query OK, 1 row affected (0.00 sec)
语句执行完毕,查看执行结果:
mysql SELECT * FROM person;
+----+--------+-----+------------+
| id | name | age | info
显示全部