MySQL必知必会-第19章 增删改数据

数据的增删改

1.插入数据

1.1 插入方式

1)插入完整的行;
2)插入行的一部分;
3)插入多行;
4)插入某些查询的结果。

1.2 插入完整的行
-- 方式1.
INSERT INTO 表名
VALUES (NULL, 列值1, 列值2, 列值3, ....);
-- 方式2.
INSERT INTO 表名(列名1,列名2,列名3, ....)
VALUES (列值1, 列值2, 列值3, ....);
-- 降低INSERT语句的优先级,保证其他select语句的性能
INSERT LOW_PRIORITY INTO 表名(列名1,列名2,列名3, ....)
VALUES (列值1, 列值2, 列值3, ....);

【说明】
1)INSERT 语句一般不会像SELECT语句一样产生输出;
2)VALUES后面第一个NULL往往是因为给主键设置自增,因此可以指定为NULL,MySQL将忽略这个字段;
3)方式2 在列名中不给出主键对应的列,因此在VALUES中不必给出对应的NULL;
4)方式2 在指定列名时可以只给出部分列名,不必给出表中所有的列名;但省略的列必须符合如下条件:
a.该列被定义允许为NULL(无值或空值);
b.该列在表中有默认值;
5)【重点】方式2显式的给出列名,较方式1更加安全,即使之后表的结构:列的顺序发生改变,方式2的语句也不会出现问题,而方式1 列值会匹配不上对应的列;
6)在INSERT 和INTO之间加入关键字 LOW_PRIORITY 可以降低插入语句的优先级,提高正在等待处理的SELECT语句的优先级(性能);因为SELECT语句是更为频繁的操作。

1.3 插入多个行
-- 方式1.使用多个INSERT INTO 表名(列名列表) VALUES(列值列表);语句一次性提交;
INSERT INTO 表名(列名1,列名2,列名3, ....)
VALUES (列值11, 列值12, 列值13, ....);
INSERT INTO 表名(列名1,列名2,列名3, ....)
VALUES (列值21, 列值22, 列值23, ....);
INSERT INTO 表名(列名1,列名2,列名3, ....)
VALUES (列值31, 列值32, 列值33, ....);
-- 方式2.在列固定且列次序固定的情况下
-- 使用INSERT INTO 表名(列名列表) VALUES (列值列表1),(列值列表2),...;
-- 来完成多行的插入

【说明】使用
INSERT INTO 表名(列名列表) VALUES (列值列表1),(列值列表2),…;
用逗号分隔(列值列表),这种插入方式【性能更高,速度更快】

1.4 插入检索出的数据
-- 将检索出来的结果插入表中
INSERT INTO2(列名21,列名22,...)
SELECT (列名11,列名12,...) FROM1 [WHERE ...]

【说明】
1)这个例子,当where子句不存在的时候,可以实现将表1中的数据导入表2中;
2)插入检索出来的数据用的是 INSERT INTO…SELECT语句,中间没有VALUES关键字!
3)表2中主键如果和表1中的主键一样,设置了自增之类的,在列名列表中可以忽略该列;
4)表1、表2其实只要对应列的数据类型相互兼容即可,不用管它们列名是否一样。

1.5 INSERT、INSERT IGNORE、REPLACE

即将出入数据库的新数据,与原来存在与数据库中的数据不重复(冲突)的情况下,三者都是将新数据插入数据库;
当重复(冲突)的情况下:
a.INSERT语句报错;
b.INSERT IGNORE 忽略新数据;
c.REPLACE替换原数据

2.更新(修改)数据

2.1 修改的类型

1)修改表中特定的行;
2)修改表中所有行;

2.2 修改表中特定的行
-- 更新表中特定的行
UPDATE [IGNORE] 表名
SET 需要修改值的列的列名1 = 新的列值1,
    需要修改值的列的列名2 = 新的列值2
WHERE 条件子句

【说明】
1)当更新多个列的时候,只需要一个set命令,每个“列=值”对之间用逗号隔开即可;【通过将某列值设置为NULL可以达到删除某列的目的】
2)UPDATE可以使用检索出来的数据在SET处对列数据进行更新;
3)【IGNORE关键字】
a.在不使用IGNORE关键字的情况下,如果在更新过程中发生错误,更新操作将被取消,数据回退到执行更新操作之前;
b.使用IGNORE关键字的情况下,如果在更新过程中发生错误,将继续更新;
4)注意!如果where语句没有设置,将会更新所有的行,这是非常危险的。

3.删除数据

3.1 删除的类型

1)删除表中特定的行;
2)删除表中所有的行;

3.2 删除表中特定的行
-- 更新表中特定的行
DELETE [IGNORE] FROM 表名
WHERE 条件子句;
3.3 删除表中所有的行
-- 更新表中特定的行
DELETE [IGNORE] FROM 表名;
-- TRUNCATE关键字删除所有行
TRUNCATE TABLE 表名;

【说明】
1)删除是删除表的内容,而不会删除表的结构,不会删除表本身,即使表中的数据全部删除,表仍然存在,表的结构也仍然存在。
2)删除表中所有的行,TRUNCATE TABLE语句更加高效;
3)TRUNCATE TABLE原理:TRUNCATE TABLE是直接删除原来的表,并重新创建一个和原来表结构一模一样的表。而不是像DELETE FROM语句是逐行删除表中的数据,因此效率更高;

3.更新和删除的指导原则

1)尽量带上where子句执行;
2)保证每个表都有主键,尽可能像where子句那样使用;
3)在对更新或者删除语句使用where子句之前,一定要使用select语句测试where子句的正确性,确保它过滤出来的是正确的行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
08-10
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值