数据表记录
目录
一、数据表记录的插入
(1)向数据表中插入单条记录
(2)向数据表中插入多条记录
二、数据表记录的修改
三、数据表记录的删除
(1)使用DELETE删除数据
(2)使用TRUNCATE清空数据
一、数据表记录的插入
通过SQL语句向数据表中插入新的数据可以使用INSERT语句,语法格式如下:
INSERT [INTO]表名[(字段名列表)]
VALUES ( { DEFAULT | NULL | 值 }[,…n] );
①INTO:用在INSERT关键字与要插入数据的表名之间的关键字,可写可不写。
②字段名列表:指定要插入数据的字段名,可写可不写。如果不写字段名,表示要向表中的所有字段插入数据;如果写部分字段名,表示只为指定的字段插入数据,多个字段名之间用逗号隔开。
③{DEFAULT | NULL | 值}:大括号括起来的多个选项,表示必须选择其中之一。其中:
DEFAULT:表示为某字段插入指定的默认值。NULL:表示为某字段插入空值。值:表示为某
字段指定一个具有数据值的变量或表达式。
注意
向CHAR、VARCHAR、DATE类型的字段插入数据时,字段值要用英文半角单引
号括起来。
(1)向数据表中插入单条记录
【例4-1】用INSERT语句为“学生选课”数据库中的studentinfo表添加一条记录:学号是10101001,姓名是张永峰,性别是男,出生年月是1993年8月1日,所在班级是电子商务101。
SQL语句:
INSERT INTO studentinfo (sno, sname, sgender, sbirth, sclass)
VALUES('10101001','张永峰’,’男’,’1993-8-1’,’电子商务101');
注意上述语句为数据表studentinfo的所有字段都指定了值,所以可以简写为如下语句:
INSERT INTO studentinfo
VALUES('10101001',’张永峰’,’男’,’1993-8-1’,’电子商务101');
【例4-2】用INSERT语句向“学生选课”数据库中studentinfo表添加另一条记录;学号是
10101002,姓名是何小丽,性别是女。SQL语句如下:
INSERT INTO studentinfo (sno, sname, sgender)
VALUES('10101002’,’何小丽’,’女’);
注意使用INSERT语句为部分字段添加值时,必须要在表名后写明为哪些字段添加值。表名后的字段名顺序可以与表中定义的字段顺序不一致,但需要与VALUES语句后面值的顺序一致。
(2)向数据表中插入多条记录
有的时候,需要一次性向表中插入多条记录。MySQL提供了使用一条INSERT语句
同时添加多条记录的功能。其语法格式如下:
INSERT [INTO]表名[(字段名列表)]
VALUES(值列表),(值列表).......,(值列表);
【例4-3】用INSERT语句为“学生选课”数据库中的studentinfo表添加两条记录:第一条记录学号是10102001,姓名是王斌,性别是男,出生日期是“1991-7-14"所在班级是“网络技术101”;第二条记录学号是10102003,姓名是孙平平,性别是女,出生日期是“1992-2-27”,所在班级是“网络技术101”。SQL语句如下:
INSERT INTO studentinfo
VALUES('10102001',’王斌’,’男’,’1991-7-14’,’网络技术101'),('1010
2003',孙平’,’女’,’1992-2-27',’网络技术101');
注意:
·INSERT语句成功执行后,可以通过查询语句查看数据是否添加成功。
·在添加多条记录时,可以不指定字段名列表,只需要保证VALUES语句后面的值是依照字段在表中定义的顺序排列的即可。
·和添加单条记录一样,如果不指定字段名,必须为所有字段添加数据,如果指定了字段名,只需要为指定的字段添加数据即可。
二、数据表记录的修改
MySQL中可以使用UPDATE语句来实现数据表记录的修改,语法格式如下:
UPDATE 表名
SET 字段名=value [,…]
[WHERE条件表达式];
①value:为指定的字段赋予新值。新值可以是表达式或数据。
②WHERE条件表达式:指定要修改记录的条件,可写可不写。如果不写条件,则表示要将所
有记录指定字段的值修改成新的值;若写了条件,则只修改满足条件的记录的指定字段。
注意:修改表记录时,需要注意表的唯一性约束和表与表之间的外键约束,否则
可能会出现修改时报错的情况。
【例4-4】在“学生选课”数据库中,把studentinfo表中sclass字段的值改为计算机。
SQL语句如下:
UPDATE studentinfo
SET sclass='计算机’;
【例4-5】在“学生选课”数据库中,把studentinfo表中孙平的出生日期改为1993年
8月21日。SQL语句如下:
UPDATE studentinfo SET sbirth='1993-8-21 WHERE sname='孙平’;
三、数据表记录的删除
(1)使用DELETE删除数据
MySQL中可以使用DELETE语句来实现数据表记录的删除,其语法格式如下:
DELETE [FROM]表名
[WHERE条件表达式];
注意删除表记录的时候,需要注意表与表之间的外键约束,否则可能会出现删除时报错的情况。·
WHERE条件表达式:指定表中要删除记录的条件,可写可不写。如果不写条件,则
表示要清空指定的数据表;若写了条件,则只将满足条件的记录删除
【例4-6】在“学生选课”数据库中,删除张永峰同学的基本信息。SQL语句如下:
DELETE FROM studentinfo
WHERE sname='张永峰’;
【例4-7】在“学生选课”数据库中,删除数据表studentinfo中的所有记录。SQL语句
如下:
DELETE FRON studentinfo;
(2)使用TRUNCATE清空数据
在MySQL数据库中,还有一种方式可以删除表中所有的记录,这种方式需要用到
TRUNCATE语句,其语法格式如下:
TRUNCATE [TABLE]表名;
使用TRUNCATE语句清空数据表非常简单。例4-7也可以使用TRUNCATE语句来实
现。SQL语句如下:
TRUNCATE TABLE studentinfo;
注意:
TRUNCATE语句和DETELE语句都能删除表中的所有数据,但两者也有一定的区别,
下面对两者的区别进行说明:
①DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句。
②DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式可以只删除满足条件的部分记录,而TRUNCATE语句只能删除表中的所有记录,不能加WHERE子句。
③使用TRUNCATE语句清空数据表后,AUTO_INCREMENT计数器会被重置为初始值。
而使用DELETE语句清空数据表后,AUTO_INCREMENT计数器不会恢复为初始值。
本章小结
使用SQL语句对表中记录进行操作,包括添加记录、更新记录、删除记录。向表中添加记录时用INSERT语句,更新表中的记录时用UPDATE语句,删除表中的记录时用DELETE语句。清空数据表可以使用DELETE语句或者TRUNCATE语句。