版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标/Target掌握数据表中数据的插入,能够使用INSERT语句在数据表中插入数据掌握数据表中数据的更新,能够使用UPDATE语句更新数据表中的数据掌握数据表中数据的删除,能够使用DELETE语句删除数据表中的数据章节概述/
Summary通过上一章的学习,相信读者对数据库和数据表的基本操作有了一定了解,但要想操作数据库中的数据,则需要通过数据操纵语言实现。MySQL提供的数据操纵语言以INSERT、UPDATE、DELETE3种语句为核心,使用这3种语句分别可以完成数据的插入、更新、删除,本章将针对这3种语句对数据的操作进行讲解。目录/Contents01020304插入数据更新数据删除数据上机实践:图书表的数据操作插入数据3.1数据表创建好之后,就可以在数据表中插入数据了,在
MySQL
中可以使用INSERT语句向数据表中一次插入单条数据或者插入多条数据。本节将对这两种插入数据的方式进行讲解。3.1.1一次插入单条数据3.1.1一次插入单条数据向数据表中插入单条数据的语法格式如下所示。INSERT[INTO]数据表名[(字段名1[,字段名2]...)]{VALUES|VALUE}(值1)[,(值2)]...;3.1.1一次插入单条数据向所有字段插入数据向数据表所有字段插入数据时,可以指定所有字段名,也可以省略所有字段名。向部分字段插入数据有时候只需要或者只有部分数据时,可以选择向部分字段插入数据。向数据表所有字段插入数据时,可以指定所有字段名,也可以省略所有字段名。(1)指定所有字段名假设现在有一个存储员工信息的员工表emp,表结构信息如下所示。字段名称数据类型约束备注说明empnoINT主键约束员工编号enameVARCHAR(20)非空约束唯一约束员工姓名jobVARCHAR(20)非空约束员工职位mgrINT直属上级编号salDECIMAL(7,2)基本工资commDECIMAL(7,2)奖金deptnoINT所属部门的编号3.1.1一次插入单条数据一次插入单条数据如果想向员工表emp中插入一条员工数据,员工数据如下所示。empnoenamejobmgrsalcommdeptno9902赵六分析员95664000.00NULL20向数据库ems中创建员工表emp,具体SQL语句如下所示。CREATETABLEemp(empnoINTPRIMARYKEY,enameVARCHAR(20)UNIQUENOTNULL,jobVARCHAR(20)NOTNULL,mgrINT,salDECIMAL(7,2),commDECIMAL(7,2),deptnoINT);3.1.1一次插入单条数据一次插入单条数据创建好员工表emp后,使用INSERT语句将表中的员工数据插入到员工表emp中,具体SQL语句及执行结果如下所示。想要验证数据是否按要求插入到数据表中,可以使用SELECT语句查询数据,具体查询的SQL语句如下所示。mysql>SELECT*FROMemp;mysql>INSERTINTOempVALUES(9902,'赵六','分析员',9566,4000,NULL,20);QueryOK,1rowaffected(0.01sec)3.1.1一次插入单条数据一次插入单条数据(2)省略所有字段名通过案例演示使用省略所有字段名的方式向数据表插入数据。例如,向员工表emp中插入数据,需要插入的员工数据如下所示。empnoenamejobmgrsalcommdeptno9566李四经理98393995.00NULL20使用INSERT语句将表中的员工数据插入到员工表emp中,具体SQL语句及执行结果如下所示。mysql>INSERTINTOempVALUES(9566,'李四','经理',9839,3995,NULL,20);QueryOK,1rowaffected(0.01sec)3.1.1一次插入单条数据一次插入单条数据通过案例演示向部分字段插入数据。例如,向员工表emp中插入数据,需要插入的员工数据如下所示。empnoenamejobsaldeptno9839刘一董事长6000.0010使用INSERT语句将表中的员工数据插入到员工表emp中,具体SQL语句如下所示。INSERTINTOemp(empno,ename,job,sal,deptno)VALUES(9839,'刘一','董事长',6000,10);3.1.1一次插入单条数据一次插入单条数据字段的默认值等信息可以通过数据表的创建语句进行查看,使用SQL语句“SHOWCREATETABLEemp\G”可以查看数据表emp的创建细节,具体SQL语句如下所示。SHOWCREATETABLEemp\G3.1.1一次插入单条数据一次插入单条数据需要注意的是,如果某个字段在定义时添加了非空约束,但没有添加默认值约束,那么插入新数据时就必须为该字段赋值,否则数据库系统会提示错误。3.1.1一次插入单条数据一次插入单条数据多学一招多学一招INSERT语句还有一种语法格式,使用SET子句为表中指定的字段或者全部字段添加数据,其格式如下所示。ININSERTINTO数据表名SET字段名1=值1[,字段名2=值2,…]多学一招多学一招通过案例演示INSERT语句中使用SET子句向员工表emp中插入员工数据,具体内容如表所示。empnoenamejobmgrsalcommdeptno9369张三保洁9902900.00NULL20多学一招多学一招使用INSERT语句将表中的员工数据插入到员工表emp中,具体SQL语句如下所示。INSERTINTOempSETempno=9369,ename='张三',job='保洁',mgr=9902,sal=900.00,comm=NULL,deptno=20;如果需要一次向数据表中插入多条数据,可以使用上面学习的方式将数据逐条添加,但是这样做需要书写多条INSERT语句,比较麻烦。3.1.2一次插入多条数据3.1.2一次插入多条数据MySQL允许使用一条INSERT语句同时添加多条数据,其语法格式如下所示。INSERT[INTO]数据表名[(字段名1,字段名2,…)]{VALUES|VALUE}(值1,值2,…),(值1,值2,…),…(值1,值2,…);一次插入多条数据通过案例演示使用一条INSERT语句插入多条数据,例如,向员工表emp中插入多条数据,需要插入的员工数据如下所示。empnoenamejobmgrsalcommdeptno9499孙七销售96982600300309521周八销售96982250500309654吴九销售969822501400309982陈二经理98393450NULL109988王五分析员95664000NULL209844郑十销售96982500NULL309900萧十一保洁96981050NULL303.1.2一次插入多条数据一次插入多条数据使用INSERT语句同时将表中的员工数据插入到员工表emp中,具体SQL语句如下所示。INSERTINTOempVALUES(9499,'孙七','销售',9698,2600,300,30),(9521,'周八','销售',9698,2250,500,30),(9654,'吴九','销售',9698,2250,1400,30),(9982,'陈二','经理',9839,3450,NULL,10),(9988,'王五','分析员',9566,4000,NULL,20),(9844,'郑十','销售',9698,2500,0,30),(9900,'萧十一','保洁',9698,1050,NULL,30);3.1.2一次插入多条数据一次插入多条数据更新数据3.2更新数据是指对数据表中已经存在的数据进行修改,比如某个部门名称变更了,就需要对数据表中部门名称字段的值进行修改。3.2更新数据3.2更新数据更新数据MySQL中使用UPDATE语句更新表中的数据,其基本的语法格式如下所示。UPDATE数据表名SET字段名1=值1[,字段名2=值2,…][WHERE条件表达式];更新部分数据更新部分数据是指根据指定条件更新数据表中的某条或者某几条数据,需要使用WHERE子句来指定更新数据的条件。更新全部数据在UPDATE语句中如果没有使用WHERE子句,则会将表中所有数据的指定字段都进行更新。3.2更新数据通过案例,演示使用UPDATE语句更新部分数据。例如,使用UPDATE语句更新张三的工资,将张三sal字段的值在原来的基础上增加200,具体SQL语句及执行结果如下所示。3.2更新数据更新数据mysql>UPDATEempSETsal=sal+200WHEREename='张三';QueryOK,1rowaffected(0.01sec)Rowsmatched:1Changed:1Warnings:0通过案例演示WHERE子句中条件表达式满足多条数据时更新数据。例如,使用UPDATE语句将职位为保洁的员工涨薪300,具体SQL语句及执行结果如下所示。3.2更新数据更新数据mysql>UPDATEempSETsal=sal+300WHEREjob='保洁';QueryOK,2rowsaffected(0.01sec)Rowsmatched:2Changed:2Warnings:0在UPDATE语句中如果没有使用WHERE子句,则会将表中所有数据的指定字段都进行更新。3.2更新数据更新数据例如,公司今年利润翻倍,老板给公司所有员工涨薪500。使用UPDATE语句将所有员工涨薪500,具体SQL语句及执行结果如下所示。mysql>UPDATEempSETsal=sal+500;QueryOK,11rowsaffected(0.01sec)Rowsmatched:11Changed:11Warnings:0删除数据3.3删除数据是指对数据表中已经存在的数据进行删除,例如员工离职后,需要将离职的员工从员工表中删除。3.2更新数据3.3删除数据MySQL中使用DELETE语句删除数据表中的数据,其语法格式如下所示。DELETEFROM数据表名[WHERE条件表达式]删除部分数据删除部分数据是指根据指定条件删除数据表中的某一条或者某几条数据,需要使用WHERE子句指定删除数据的条件。删除全部数据在DELETE语句中如果没有使用WHERE子句,则会将数据表中的所有数据都删除。3.3删除数据例如员工孙七离职了,需要将孙七的信息从员工表中删除。3.3删除数据下面使用DELETE语句删除员工表中孙七的数据,具体SQL语句及执行结果如下所示。mysql>DELETEFROMempWHEREename='孙七';QueryOK,1rowaffected(0.01sec)例如,由于公司业务调整,不再需要分析员这个岗位。公司全部分析员办理离职后,这些分析员的信息要从员工表emp中删除。3.3删除数据下面使用DELETE语句删除数据,具体SQL语句及执行结果如下所示。mysql>DELETEFROMempWHEREjob='分析员';QueryOK,2rowsaffected(0.01sec)3.3删除数据例如,将员工表中的所有数据全部删除。使用DELETE语句删除员工表中所有数据,具体SQL语句及执行结果如下所示。mysql>DELETEFROMemp;QueryOK,8rowsaffected(0.01sec)多学一招多学一招在MySQL数据库中,还有一种方式可以用来删除表中所有的数据,这种方式需要用到关键字TRUNCATE,其语法格式如下。TRUNCATE[TABLE]数据表名多学一招通过案例演示TRUNCATE的用法。在数据库itcast中创建一张表tab_truncate,创建tab_truncate表的SQL语句如下所示。CREATETABLEtab_truncate(idINT(3)PRIMARYKEYAUTO_INCREMENT,nameVARCHAR(4));多学一招向tab_truncate表中添加5条数据,且只添加name字段的值,具体SQL语句如下所示。INSERTINTOtab_truncate(name)VALUES('A'),('B'),('C'),('D'),('E');使用TRUNCATE语句删除tab_truncate表中的所有数据,具体SQL语句及执行结果如下所示。mysql>TRUNCATETABLEtab_truncate;QueryOK,0rowsaffected(0.02sec)多学一招TRUNCATE语句和DETELE语句都能删除数据表中的所有数据,但两者也有一定的区别,具体如下所示。1.DELETE语句是数据操纵语句,TRUNCATE语句通常被认为是数据定义语句。2.DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分数据,而TRUNCATE语句只能用于删除表中的所有数据。3.DELETE语句是逐行删除记录,而TRUNCATE语句则是直接删除数据表,再重新创建一个一模一样的新表。4.使用TRUNCATE语句删除表中的数据后,再次向表中添加数据时,自动增加字段的默认初始值重新由1开始,而使用DELETE语句删除表中所有数据后,再次向表中添加数据时,自动增加字段的值为删除时该字段的最大值加1。多学一招通过案例演示上述第4条区别。在空表tab_truncate中,重新添加5条数据,具体SQL语句如下所示。INSERTINTOtab_truncate(name)VALUES('F'),('G'),('H'),('I'),('J');使用SELECT语句查询数据表中的数据,具体SQL语句及执行结果如下所示mysql>SELECT*FROMtab_truncate;+----+------+|id|name|+----+------+|1|F||2|G||3|H||4|I||5|J|+----+------+5rowsinset(0.00sec)多学一招使用DELETE语句删除tab_truncate表中的所有数据,具体SQL语句如下所示。DELETEFROMtab_truncate;向tab_truncate数据表中添加一条新数据,具体SQL语句及执行结果如下所示。mysql>INSERTINTOtab_truncate(name)VALUES('K');QueryOK,1rowaffected(0.00sec)使用SELECT语句查询数据表中的数据,具体SQL语句及执行结果如下所示。mysql>SELECT*FROMtab_truncate;+----+------+|id|name|+----+------+|6|K|+----+------+1rowinset(0.00sec)上机实践:图书表的数据操作3.4上机实践实践需求1:插入单条图书信息。插入单条图书信息。图书名称、价格是录入图书信息的必填项,图书的上架时间默认为操作系统的当前时间,图书的信息如下表所示。namepricestateJava基础入门(第3版)59.00'0'动手实践1:插入单条图书信息,具体的SQL语句如下所示。INSERTINTObook(name,price,upload_time,state)VALUES('Java基础入门(第3版)',59.00,CURRENT_TIMESTAMP,0);上机实践实践需求2:插入单条用户信息。用户名称为必填项,开发人员本次插入单条用户的信息如下表所示namestate张三'0'
李四'0'动手实践2:插入单条用户信息,具体的SQL语句如下所示INSERTINTOuser(name,state)VALUES('张三',0),('李四',0);上机实践实践需求3:同时插入多条图书信息。插入的图书信息中需要包含信息插入时间字段upload_time,该字段的值默认为操作系统的当前时间。图书信息具体如下表所示。namepricestate三国演义69.00'2'MySQL数据库入门40.00'0'JavaWeb程序开发入门49.00'0'西游记59.00'2'红楼梦33.00'2'水浒传66.66'2'动手实践3:同时插入多条图书信息,具体的SQL语句如下所示。INSERTINTObook(name,price,upload_time,state)VALUES('三国演义',69.00,CURRENT_TIMESTAMP,2),('MySQL数据库入门',40.00,CURRENT_TIMESTAMP,0),('JavaWeb程序开发入门',49.00,CURRENT_TIMESTAMP,0),('西游记',59.00,CURRENT_TIMESTAMP,2),('红楼梦',33.00,CURRENT_TIMESTAMP,2),('水浒传',66.66,CURRENT_TIMESTAMP,2);上机实践实践需求4:上架图书《西游记》,将图书表book中图书《西游记》状态修改为可借阅(state字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习专题3简答题课件
- 第四章细胞的物质输入和输出教案
- 《老年人健康知识手册》
- 城市智慧城市工程合同
- 四年级语文下册教案
- 六年级上册心理健康课教案
- 港口码头工程招投标保证
- 医院建筑工程招标与合同签订指南
- 医疗卫生项目招标指南
- 机械设备表面喷漆合同
- 广东省深圳市2023-2024学年高一上学期生物期中试卷(含答案)
- 第七章 立体几何与空间向量综合测试卷(新高考专用)(学生版) 2025年高考数学一轮复习专练(新高考专用)
- 大学美育(同济大学版)学习通超星期末考试答案章节答案2024年
- 2024年2024年离婚协议书模板
- 过敏性休克完整版本
- 08D800-8民用建筑电气设计与施工防雷与接地
- 科学的体育锻炼课件(图文)
- 应急第一响应人理论考试试卷(含答案)
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 2024年湖北省工业建筑集团有限公司招聘笔试参考题库含答案解析
- 十分钟EE从入门到精通2.0
评论
0/150
提交评论