1、 任务1在数据库表中插入数据项目5 在MySQL 数据库中插入、更新与删除数据 任务2在数据库表中更新数据 任务3在数据库表中删除数据 向数据表 中 添 加 记 录 的 操 作 通 常 使 用 INSERT 语 句 来 完 成 。 在 My SQL 数 据 库 中 , INSERT 语句有四种语法格式 , 分别是 INSERT VALUES 语句 、I NSERT SELECT 语句 、INSERT R EPLACE 语 句 、I NSERT SET 语 句 。 其 中 INSERT V ALUES 语 句 是 My SQL 中最常用的插入语句 。任务1 在数据库表中插入数据 使用 INSER
2、T VALUES 语句可以一次性向表中插入一条新记录 , 语法格式为 : INSERT INTO table_ name ( field1, field2, ,f ield N ) VALUES( value1, value2, ,v alues N) ; 其中 ,t able_ name 为表名 ,f ield1、 field2、 field N 为表中的字段名 ,v alue1、 value2、 values N 为字段对应的值 。 如果数据为字符型 , 则必须使用单引号或者双引号 , 如 ”v alue” 。任务1 在数据库表中插入数据 使用 INSERT VALUES 语句插入新记录【
3、 例 5 - 1 】 向表 department 中 , 插入一条新记录 , 内容如下 : 财务金融学院 ,id 为 0。演示结果如下:任务1 在数据库表中插入数据 使用 INSERT VALUES 语句插入新记录 【 例 5 - 2 】 在表 books 中 , 插入一条新记录 , 其内容如下 : 作者韩三春 , 书名为java 语言程序设计教程 , 于 2017 年 3 月 12 日由科学出版社出版 , 书号为 9345678431221, 定价为 28.9 元 。 演示结果如下:任务1 在数据库表中插入数据 使用 INSERT VALUES 语句插入新记录【 例 5 - 3 】 在例 5
4、-2 操作的基础上 ( 仍然在表 books 中 ), 插入一条新记录 , 内容如下 : 作者 张三 , 书名V B 程序设计教程 , 书号为 9345678653212, 定价为 40 元 。 注意此条记录没有出 版社信息 (press字段值 ) 和版本信息 (version字段值 )。演示结果如下:任务1 在数据库表中插入数据 使用 INSERT VALUES 语句插入新记录 通过 INSERT VALUES 语句的上述用法只能一次插入一条新记录 , 如需插入多条新记 录 , 就得多次调用该语句 , 意味着需要多次与数据库建立连接 , 这样一来 , 就会增加服务器的 负荷 。 为了 可 以
5、 批 量 插 入 新 记 录 ,M y SQL 数 据 库 提 供 了 另 一 种 解 决 方 案 , 就 是 使 用 一 条 INSERT VALUES 语句来实现插入多条新记录 。 任务1 在数据库表中插入数据 使用 INSERT VALUES 语句插入新记录 在实际生产环境中 , 有时候需要一次性插入多条新记录 , 可以使用 INSERT VALUES 语句实现一次性插入多条新记录 。 语法格式为 : INSERT INTO table_ name ( field1, field2, ,f ield N) VALUES( value1, value2, ,v alues N) , (v
6、alue1, value2, ,v alues N) , (v alue1, value2, ,v alues N) , (v alue1, value2, ,v alues N) , (v alue1, value2, ,v alues N) ; 其中 ,t able_ name 为表名 ,f ield1、 field2、 field N 为表中的字段名 ,v alue1、 value2、 values N 为字段对应的值 。 如果数据为字符型 , 则必须使用单引号或者双引号 , 如 “value” 。任务1 在数据库表中插入数据 批量插入多条新记录【 例 5 - 4 】 在表 depart
7、ment 中 , 插入多条新记录 , 内容见表 5-1。任务1 在数据库表中插入数据 批量插入多条新记录 【 例 5 - 5 】 在表 books 中 , 插入多条新记录 , 这些记录内容见表 5-2。任务1 在数据库表中插入数据 批量插入多条新记录 【 例 5 - 5 】演示结果如下:任务1 在数据库表中插入数据 批量插入多条新记录 【 例 5 - 6 】 在表 courses 中 , 插入多条新记录 , 这些记录内容见表 5-2。任务1 在数据库表中插入数据 批量插入多条新记录 【 例 5 - 6 】演示结果如下:任务1 在数据库表中插入数据 批量插入多条新记录 可以看出 , 使用 INS
8、ERT VALUES 语句一次插 入多条 新 记 录 和 使 用 INSERT VALUES 语 句 一 次 插 入 一 条 新 记 录 的 区 别 , 仅 仅 是 在 VALUES 后面增加每条新记录的字段对应值 , 每条新记录之间用英文输入法状态下的逗号 隔开 。 在实际应用中 , 插入批量数据时 , 最好使用一条 INSERT VALUES 语句来一次插入多 条新记录 。 这样可以避免程序和数据库之间建立多次连接 , 从而达到降低服务器负荷的目的 。 任务1 在数据库表中插入数据 批量插入多条新记录 INSERT 语句是数据库操作中的常用语句 , 用来向数据表中添加数据 。 同时 INS
9、ERT VALUES 这种形式在应用程序开发中必不可少 。 但是在开发 、 测试过程中 , 经常会遇到这种情况 : 首先需要复制某一个表中的信息 , 然后再将这些信息插入到另一个表中 。 这时候就需要使用 INSERT SELECT 语句了 。 INSERT SELECT 语 句 , 可 以 从 一 个 表 复 制 信 息 到 另 一 个 表 。 使 用 INSERT SELECT 语句首先从一个表 Table1 复制需要的数据 , 然后把这些数据插入到一个已存在的 目标表 Table2 中 , 在插入过程中 , 不会影响目标表 Table2 中任何已存在的行任务1 在数据库表中插入数据 使用
10、 INSERT SELECT 语句插入结果集 语法格式为 : INSERT INTO Table2 ( field1, field2, ) SELECT value1, value2, FROM Table1 WHERE( condition) ; 其中 ,T able2 指目标表 ;f ield1, field2, 指目标表中需要插入数据的字段名 ;T able1 指 数据来源表 ;v alue1, value2, 指数据来源表的字段名 , 该字段名必须与目标表中 field1, field2, 字段名中的字段个数及数据类型相同 ;c ondition 指向目标表复制数据前选择合理 数据的查
11、询条件 。 注意 : (1 ) 要求目标表 Table2 必须存在 , 并且字段名 field, field2, 也必须存在 。 (2 ) 注意目标表 Table2 的主键约束 , 如果目标表 Table2 已设置主键字段而且该主键字段 不为空 , 则字段名 field1, field2, 中必须包括主键字段 。任务1 在数据库表中插入数据 使用 INSERT SELECT 语句插入结果集 在本小节中 , 将介绍如何使用 My SQL 的 REPLACE INTO 语句来插入或更新数据库 表中的数据 。 M y SQL 的 REPLACE INTO 语句是一个扩展于 SQL 标准的语句 。 R
12、EPLACE INTO 语句的工作过程如下 : (1 ) 如果待插入的新记录在表中不存在 , 则 REPLACE 语句直接插入该新记录 。 (2 ) 如果待插入的新记录在表中已经存在 , 则 REPLACE INTO 语句首先删除表中旧的 记录 , 然后重新插入该新记录 。 要确定待插入的新记录是否已经存在于表中 ,M y SQL 使用 PRIMARY KEY 或唯一键 (U NIQUE KEY) 索引 。 如果表中没有使用主键字段或者唯一键索引 , 则 REPLACE INTO 语句相当于 INSERT 语句任务1 在数据库表中插入数据 使用 REPLACE 语句插入新记录 语法格式为 :
13、REPLACE INTO table_ name ( field1, field2, ,f ield N ) VALUES( value1, value2, ,v alues N) ; 其中 ,t able_ name 为表名 ,f ield1、 field2、 field N 为表中的字段名 ,v alue1、 value2、 values N 为字段对应的值 。 如果数据为字符型 , 则必须使用单引号或者双引号 , 如 :”v alue” 。 任务1 在数据库表中插入数据 使用 REPLACE 语句插入新记录 REPLACE 语句在向表中插入记录的时候 , 遵循以下步骤进行 : (1) 首
14、先判断待插入的记录是否已经存在于表中 。 (2) 如果记录不存在 , 则直接插入 。 (3) 如果记录已经存在 , 则新记录更新原来的旧记录 。 REPLACE INTO 语句跟 INSERT VALUES 语句功能类似 , 不同点在于 :REPLACE INTO 语句首先尝试插入记录到表中 , 如果发现表中已经有此行记录(根据主键或者唯一索 引判断 ) 则先删除此行记录 , 然后插入该新记录 ; 否则 , 直接插入该新记录 。任务1 在数据库表中插入数据 使用 REPLACE 语句插入新记录 通过 INSERT SET 语句插入新记录清晰明了 , 容易查错 。 但是使用 INSERT SET
15、 语 句插入记录时 , 不能一次性批量插入多条新记录 。 INSERT.VALUES 和 INSERT.SET 两种语句都是将指定的数据插入到已经存在 的表中 , 而 INSERT.SELECT 语句是将一个表中的数据筛查出来并复制插入到已经存在 的另一表中 。任务1 在数据库表中插入数据 使用 INSERT SET 语句插入新记录 在 My SQL 数据库中 , 成功创建数据库和表 , 有时需要根据特定要求修改更新表的属性信 息 , 比如修改表默认的字符集 、 字段默认的字符集等 , 同时也可以使用 UPDATE 语句更新表 中的记录 , 不仅可以更新特定的行 , 也可以更新所有的行 。任务
16、2 在数据库表中更新记录 根据需要可以修改其默认 的字符集 。 更新数据表的字符集使用 ALTER 命令 , 语法格式如下 : ALTER table 表名 CONVERT to character SET 新字符集 ; 更新数据表中字段的字符集同样使用 ALTER 命令 , 语法格式如下 : ALTER table 表名 MODIFY column 字段名 character SET 新字符集 not null; 任务2 在数据库表中更新记录 更新操作与字符集 在数据库应用中 , 经常希望在每次插入新记录时 , 系统会自动生成字段的主键值 , 这可以 通过为表主键添加 AUTO_ INCRE
17、MENT 关键字来实现 。 一个表只能有一个字段使用 AUTO_ INCREMENT 约束 , 且该字段必须为主键的一部 分 。A UTO_ INCREMENT 约束的字段可以是任何整数类型 (t inyint、 smallint、 int、 bigint) 。 默认的 , 在 My SQL 中由 AUTO_ INCREMENT 约束 的字段初始值为 1, 每新增一条记 项目五 在 My SQL 数据库中插入 、 更新与删除数据 167 录 , 字段值自动加 1。 任务2 在数据库表中更新记录 设置自增字段 如果在创建表的时候 , 未为字段设置 AUTO_ INCREMENT 约束 , 那么可
18、以使用 ALTER 命令设置该字段的 AUTO_ INCREMENT 约束 。 在为字段设置 AUTO_ INCREMENT 约束 时 , 必须已经确定该字段是表的主键字段 。 任务2 在数据库表中更新记录 设置自增字段 在 My SQL 数据库中 , 可以使用 UPDATE 语句更新表中的记录 , 可以更新特定的行或者 同时更新所有的行 。 语法格式如下 : UPDATE 表名 SET 变更后的信息 WHERE 子句 ; 任务2 在数据库表中更新记录 使用 UPDATE 语句更新表中数据 1. 单表的 UPDATE 语句 : UPDATE L OW_ PRIORITY I GNORE 表名
19、SET 字段 1= 值 1 , 字段 2= 值 2 W HERE 条件表达式 O RDER BY L IMIT row_ count任务2 在数据库表中更新记录 使用 UPDATE 语句更新表中数据 2. 多表的 UPDATE 语句 : UPDATE L OW_ PRIORITY I GNORE 表名 SET 字段 1= 值 1 , 字段 2= 值 2 W HERE 条件表达式 SET 子句指示要修改哪些字段以及这些字段相应的字段值 。W HERE 子句指定应更新 哪些行 。 如果没有 WHERE 子句 , 则更新所有的行 。 如果指定了 ORDER BY 子句 , 则按照被 指定的顺序对行进
20、行更新 。L IMIT 子句用于给定一个限值 , 限制可以被更新的行的数目 。任务2 在数据库表中更新记录 使用 UPDATE 语句更新表中数据 在数据库中 , 有时某些数据已经失去意义或者错误时就需要将它们删除 。 在 My SQL 中 有两种方法可以删除数据 , 一种是 DELETE 语句 , 另一种是 TRUNCATE TABLE 语句 。 DELETE 语句可以通过 WHERE 子句对要删除的记录进行选择 。 而使用 TRUNCATE T ABLE 语句将删除表中的所有记录 。 因此 , 在使用时 DELETE 语句更灵活 。任务3 在数据库表中删除记录 通常可以使用 DELETE F
21、ROM 语句来删除 My SQL 数据表中的记录 。 语法格式如下 : DELETE FROM 表名 W HERE 条件表达式 (1 ) 如果没有指定 WHERE 子句 ,M y SQL 表中的所有记录将被删除 。 (2 ) 可以在 WHERE 子句中指定任何条件 (3 ) 可以在单个表中一次性删除记录 。任务3 在数据库表中删除记录 使用 DELETE 语句删除表中记录 在 My SQL 数据库中 , 还有一种方式可以删除表中的所有记录 , 即使用 TRUNCATE TABLE 语句 。 使用 TRUNCATE TABLE 语 句 可 以 删 除 表 中 的 所 有 记 录 , 但 是 TR
22、UNCATE TABLE 语句不能与 WHERE 子句一起使用 。 语法格式如下 : TRUNCATE TABLE 表名 ; 任务3 在数据库表中删除记录 使用 TRUNCATE 清空表记录 在使用 这 DELETE 语 句 和 TRUNCATE TABLE 语 句 删 除 记 录 时 , 请 注 意 二 者 的 区别 : (1 )D ELETE 语句 , 后面可以跟 WHERE 子句 , 通常指定 WHERE 子句中的条件表达式 , 只删除满足条 件 的 部 分 记 录 , 而 TRUNCATE TABLE 语 句 , 只 能 用 于 删 除 表 中 的 所 有 记录 。 (2 ) 使用 D
23、ELETE 语句 , 删除表中所有记录后 , 向表中添加记录时 , 自动增加字段的值 , 其 新值为删除时该字段的最大值加 1, 也就是在原来的基础上递增 ( 如删除时该字段最大值为 100, 则再次添加记录时 , 新记录的该字段值为 101) 。 而使用 TRUNCATE 语句 , 删除表中的 数据后 , 向表中添加记录时 , 自动增加字段的默认初始值重新从 1 开始 , 任务3 在数据库表中删除记录 使用 TRUNCATE 清空表记录 3.DELETE 语句 , 每删除一条记录 , 都会在日志中记录 , 而使用 TRUNCATE TABLE 语句 , 不 会 在 日 志 中 记 录 删 除
24、 的 内 容 , 因 此 ,T RUNCATE TABLE 语 句 的 执 行 效 率 比 DELETE 语句高 。 不管使用 DELETE 语句或者 TRUNCATE TABLE 语句 , 在删除表中的记录时 , 都需 要读者仔细考虑是否有删除记录的必要 , 以免造成不必要的麻烦 , 请读者谨慎使用 。 任务3 在数据库表中删除记录 使用 TRUNCATE 清空表记录 在 My SQL 数据库中 , 对于不再需要的数据表 , 可以将其从数据库中删除 。 本小节将说明 My SQL 数据库中数据表的删除方法 。任务3 在数据库表中删除记录 使用 DROP 语句删除表 当需要删除一个表时 , 可
25、以使用 DROP TABLE 语句来完成 , 语法格式如下 : DROP TABLE I F EXISTS , , ; (1 ): 被删除的表名 。 (2 ) 表被删除时 , 所有的表数据和表定义会被取消 , 所以使用本语句要小心 。 (3 ) 参数 IF EXISTS 用于在删除前判断删除的表是否存在 , 如果表不存在 ,D ROP TABLE 语句可以顺利执行 , 但会发出警告 (warning )。任务3 在数据库表中删除记录 使用 DROP 语句删除表 对比 TRUNCATE TABLE 语句 、D ELETE 语句 、D ROP TABLE 语句可知 , 需要删除 表中的记录时可以使用 TRUNCATE TABLE 语句和 DELETE 语句 , 而需要删除整个表时 可以使用 DROP TABLE 语句 , 使用 DROP TABLE 语句删除整个表时 , 表的结构和表中 所有的数据都会随之被删除 。任务3 在数据库表中删除记录 使用 DROP 语句删除表 本项目介绍了在 My SQL 数据库的数据表中添加数据 、 修改数据和删除数据的具体 方法 , 也就是对表数据的增 、 删和改操作 。 这几种操作在实际应用中经常用到 。 因此 , 对 于本项目的内容需要认真学习 , 做到举一反三 , 灵活应用 。本项目小结