版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理与应用技术数据库基础项目一目录数据库设计项目二数据库基本操作项目三数据表基本操作项目四数据查询项目五数据库查询优化项目六数据库编程项目七数据库安全管理与维护项目八企业人力资源管理系统数据库开发项目九项目四数据表基本操作数据表是数据库存储和管理数据的核心单元,其结构设计、完整性约束设置,以及各类操作直接影响数据存储和管理的规范性、安全性和高效性。项目导读本项目聚焦数据表核心知识,系统讲解数据表结构、数据类型、数据完整性约束,以及数据表的创建、查看、修改、删除操作,同时涵盖数据表中数据的插入、修改、删除操作。项目目标知识目标了解数据表结构。掌握常用数据类型及数据完整性约束的应用。掌握创建、查看、修改、删除数据表的SQL语句。掌握在数据表中插入、修改、删除数据的SQL语句。能力目标能够根据实际业务需求,合理设计数据表结构,选择适配的数据类型和数据完整性约束,保障数据的准确性与完整性。能够使用MySQL命令行交互界面熟练执行数据表的创建、查看、修改、删除操作。能够使用MySQL命令行交互界面熟练执行数据的插入、修改、删除操作。素质目标培养做事的条理性、严谨性。具备“按规则办事,靠制度保障”的意识,提升遵守行业规范与社会规则的自觉性。项目准备出现语法错误的常见原因有哪些?全班学生以3~5人为一组进行分组,各组选出组长。组长组织组员扫码观看“MySQL命令行常见错误提示”视频,讨论并回答以下问题。问题1问题2执行SQL语句时,返回错误码1054(42S22),该错误码对应的错误类型是什么?这类错误的核心提示信息是什么?MySQL命令行常见错误提示数据表结构4.14.1数据表结构一张完整的数据表在逻辑上由表名、表中的字段和表的记录三部分组成,下面分别介绍。表名是数据表的唯一标识,用于在数据库中区分不同数据表。(1)表名。4.1数据表结构主要作用:为数据表提供一个清晰、明确的名称,方便用户识别、访问和管理数据。特点和要求:在同一数据库中必须唯一,不能与其他表重名;简洁、规范、具有可读性,通常由字母、数字和下画线组成;避免使用MySQL关键字,并尽量体现表的业务含义,以便用户“见名知意”。表中的字段也称为“列(Column)”,是对数据表中数据类别的定义,规定每类数据的数据类型和存储规则。(2)表中的字段。4.1数据表结构主要作用:对数据进行分类和约束,确保数据的规范性和完整性。特点和要求:每个字段都有明确的数据类型(如整数、字符串、日期等),并可设置是否允许为空、默认值、唯一性等约束条件;同一表中字段名必须唯一,字段的设计应符合业务需求,能够准确描述数据的含义和用途。表的记录也称为“行(Row)”,是数据表中实际存储的业务数据,由多个字段的具体值组成。(3)表的记录。4.1数据表结构主要作用:承载和保存真实的业务信息,是数据表内容的具体体现。特点和要求:每条记录对应一个完整的业务对象,记录中的字段值必须符合对应字段的数据类型要求和约束规则;通常情况下,每条记录都具有唯一性,能够通过主键等被准确识别、查询和修改。数据类型4.24.2数据类型MySQL中常用的数据类型
整数类型小数类型字符串类型日期和时间类型JSON类型数据类型是数据表中字段的核心属性,用于限定字段可存储数据的格式、取值范围和所占存储空间。整数类型是数据库中最常用的数据类型之一,用于限定字段可存储的数据为无小数部分的数值。(1)整数类型。整数类型TINYINT(微整型)SMALLINT(小整型)MEDIUMINT(中整型)INT(整型)BIGINT(大整型)根据所占存储空间和可表示数值范围的不同4.2数据类型不同整数类型所占存储空间和可表示数值范围数据类型所占存储空间可表示数值范围(无符号)可表示数值范围(有符号)TINYINT1字节0~28-1-27~27-1SMALLINT2字节0~216-1-215~215-1MEDIUMINT3字节0~224-1-223~223-1INT4字节0~232-1-231~231-1BIGINT8字节0~264-1-263~263-14.2数据类型不同整数类型的可表示数值范围可由所占存储空间计算得出。INT类型占用4字节,即32位,因此无符号整数的取值范围为0~232-1,有符号整数的取值范围为-231~231-1。例如4.2数据类型知识库MySQL的整数类型又可分为有符号整数(SIGNED)和无符号整数(UNSIGNED)。有符号整数表示整数既可以为正数,也可以为负数。在二进制存储中,有符号整数会使用最高位作为符号位(符号位为0表示正数或0,符号位为1表示负数)。无符号整数不能表示负数,仅用于存储非负整数。在存储时,无符号整数不设置符号位,因此在相同存储空间下,无符号整数可表示数值的位数比有符号整数多1位。4.2数据类型小数类型用于限定字段可存储的数据为包含小数部分的数值。(2)小数类型。小数类型浮点数类型浮点数类型有两种,分别为FLOAT(单精度浮点类型)和DOUBLE(双精度浮点类型),存储的是近似值,适用于对精度要求不高的场景;定点数类型定点数类型DECIMAL(M,D)(M表示总位数,D表示小数位数)存储的是精确值,通过指定总位数和小数位数精准控制数值精度。4.2数据类型浮点数类型和定点数类型所占存储空间和可表示数值范围数据类型所占存储空间可表示数值范围(负数)可表示数值范围(非负数)FLOAT4字节-3.402823466E+38~-1.175494351E-380和1.175494351E−38~3.402823466E+38DOUBLE8字节-1.7976931348623157E+308~-2.2250738585072014E-3080和2.2250738585072014E-308~1.7976931348623157E+308DECIMAL(M,D)取决于M和D的值。整数与小数部分分别计算,每9位占4字节,剩余位数按位占用1~4字节。−(10M−D−10−D)~−10−D0和10−D~10M−D−10−D4.2数据类型提示与FLOAT和DOUBLE不同,DECIMAL(M,D)受M与D的限制,其取值是不连续的离散值,因为DECIMAL(M,D)的小数部分固定为D位,数值只能以10−D为最小单位递增或递减(如D=2时最小单位为0.01),无法表示两个最小单位之间的数值,所以其取值是按固定步长分布的离散值,而非像FLOAT和DOUBLE那样的连续值。4.2数据类型字符串类型用于限定字段可存储的数据为字符串类数据。(3)字符串类型。4.2数据类型定长字符串类型,M为固定长度CHAR(M)二进制对象类型,用于存储图片、音频、视频等二进制数据BLOB变长字符串类型,M为最大长度VARCHAR(M)定长二进制字符串类型,N为固定字节长度BINARY(N)文本类型,用于长文本TEXT变长二进制字符串类型,N为最大字节长度VARBINARY(N)常用字符串类型常用字符串类型所占存储空间和可表示范围(字符/字节数)。常用字符串类型所占存储空间和可表示范围数据类型所占存储空间可表示范围CHAR(M)M×w字节0≤M≤255(字符)VARCHAR(M)L+1或L+2字节0≤M≤65535(字符)TEXTL+2字节L<216=65535(字节)BLOBL+2字节L<216=65535(字节)BINARY(N)N字节0≤N≤255(字节)VARBINARY(N)L+1或L+2字节0≤N≤65535(字节)M表示非二进制字符串类型数据的声明长度(以字符为单位)w表示字符集中的最大长度字符所占字节数L表示实际输入数据的字节数N表示二进制字符串类型数据的声明长度(以字节为单位)4.2数据类型日期和时间类型用于限定字段可存储的数据为日期、时间相关数据。(4)日期和时间类型。常用日期和时间类型年份类型,仅存储年份信息YEAR时间戳类型,存储日期和时间信息TIMESTAMP日期类型,仅存储日期信息DATE时间类型,仅存储时间信息TIME日期时间类型,存储日期和时间信息DATETIME4.2数据类型日期和时间类型所占存储空间、可表示范围和存储格式数据类型所占存储空间可表示范围存储格式YEAR1字节1901~2155YYYYDATE3字节1000-01-01~9999-12-31YYYY-MM-DDTIME3字节-838:59:59~838:59:59HH:MM:SSDATETIME8字节1000-01-0100:00:00~9999-12-3123:59:59YYYY-MM-DDHH:MM:SSTIMESTAMP4字节1970-01-0100:00:01UTC~2038-01-1903:14:07UTCYYYY-MM-DDHH:MM:SSYYYY表示年MM表示月DD表示日HH表示小时MM表示分钟SS表示秒4.2数据类型JSON类型用于限定字段可存储的数据为JSON数据。(5)JSON类型。JSON类型的数据JSON数组JSON对象二者允许互相嵌套4.2数据类型[202401,{"cid":"005","name":"Python编程"},["必修",3.0]]JSON数组:JSON数组以中括号“[]”包裹,被中括号包裹的数据是有序的、可重复的多个值(值可为字符串、数字、布尔值、数组、对象、null)。示例如下:该数组包含学期编号(数字类型)、课程(对象类型)、课程属性(数组类型)。4.2数据类型{"sid":"2024001","course":["高数",{"cid":"008","score":85}]}JSON对象:JSON对象以大括号“{}”包裹,被大括号包裹的数据由若干“键值对”组成,键为字符串类型,值可为字符串、数字、布尔值、数组、对象、null。示例如下:该对象包含学号(值为字符串类型)、课程(值为数组类型,数组内嵌套课程字符串和课程成绩对象)。4.2数据类型数据完整性约束4.34.3数据完整性约束数据完整性约束是数据库为保障数据的准确性、完整性和合法性而预设的规则,作用于数据表的字段,能有效防止无效、冲突或不符合业务逻辑的数据进入数据库。数据完整性约束列级完整性约束列级完整性约束是指在定义字段的同时完成约束的设置,它仅对当前单个字段生效,自增约束、非空约束和默认值约束通常采用此方式设置。主键、唯一、检查等约束若仅作用于单个字段,也可采用此方式设置。表级完整性约束当约束逻辑更为复杂,则可以使用表级完整性约束。此类约束设置在所有字段定义之后,不仅能同时作用于表中的一个或多个字段,还允许开发人员为约束自定义名称,以便后续维护与管理。在具体应用上4.3数据完整性约束接下来,分别介绍各类常用的数据完整性约束。4.3数据完整性约束(1)主键约束。当主键由多个字段联合组成时,被称为复合主键。主键的取值必须唯一,且不允许为空(NULL)。主键约束用于将表中的单个字段或多个字段的组合定义为主键。每张数据表只能设置一个主键。4.3数据完整性约束设置主键约束的关键字为PRIMARYKEY,主键约束可以为列级完整性约束和表级完整性约束两种。①
设置列级完整性主键约束的语法格式如下。②
设置表级完整性主键约束的语法格式如下。字段名数据类型PRIMARYKEY;[CONSTRAINT约束名]PRIMARYKEY(字段名1[,字段名2...]);用于给设置的约束定义唯一名称,方便后续识别、删除约束,若省略该项,MySQL会按照固定规则自动为不同类型的约束生成默认名称。4.3数据完整性约束(2)自增约束。自增约束用于让数据表中的字段值自动生成,且随记录的插入自动递增。每张数据表只能为一个字段设置自增约束,且该字段必须是主键,数据类型必须为整数。自增约束通常为列级完整性约束,设置自增约束的关键字为AUTO_INCREMENT。字段名数据类型AUTO_INCREMENT语法格式4.3数据完整性约束(3)唯一约束。唯一约束用于保证被约束的单个字段或多个字段组合的取值在数据表中唯一,防止重复数据。唯一约束字段允许存储NULL值,且多个NULL值不视为重复。一张表可设置多个唯一约束。当唯一约束同时作用于多个字段时,称为联合唯一。在联合唯一约束下,允许单个字段的值重复出现,但这些字段的组合值必须在整张表中唯一。4.3数据完整性约束设置唯一约束的关键字为UNIQUE,唯一约束可以为列级完整性约束和表级完整性约束两种。①
设置列级完整性唯一约束的语法格式如下。②
设置表级完整性唯一约束的语法格式如下。字段名数据类型UNIQUE;[CONSTRAINT约束名]UNIQUE(字段名1[,字段名2...]);4.3数据完整性约束(4)非空约束。字段名数据类型NOTNULL;语法格式4.3数据完整性约束非空约束用于强制被约束的字段取值不能为空(NULL)。在插入或更新数据时,若未给非空约束字段赋值,数据库会拒绝执行操作。非空约束通常为列级完整性约束,设置非空约束的关键字为NOTNULL。(5)默认值约束。SHOWDATABASES;语法格式默认值约束用于为被约束的字段预设默认值,默认值需符合字段的数据类型要求。当插入数据时未给设置了默认值约束的字段显式赋值,数据库会自动将预设的默认值填充至该字段。默认值约束通常为列级完整性约束,设置默认值约束的关键字为DEFAULT。4.3数据完整性约束(6)外键约束。[CONSTRAINT约束名]FOREIGNKEY(外键字段名)REFERENCES被参照表名(被参照字段名);语法格式外键约束用于将表中的字段定义为外键,外键字段需关联另一张表(被参照表)的主键。外键字段的取值必须在被参照表的关联字段取值范围内,若字段允许为空,也可取值为NULL。外键约束通常为表级完整性约束,设置外键约束的关键字为FOREIGNKEY和REFERENCES。4.3数据完整性约束提示若数据表A关联数据表B的主键,则数据表B为被参照表(也称主表),数据表A为参照表(也称从表)。4.3数据完整性约束检查约束用于限定被约束字段的取值需满足限制规则,只有当CHECK表达式返回TRUE时,字段取值才被允许存入数据库。设置检查约束的关键字为CHECK,检查约束可以为列级完整性约束和表级完整性约束两种。①
设置列级完整性检查约束的语法格式如下。字段名数据类型CHECK(表达式);②
设置表级完整性检查约束的语法格式如下。[CONSTRAINT约束名]CHECK(表达式);(7)检查约束。4.3数据完整性约束拓展阅读数据完整性约束之于数据表,如同国家制度之于社会运行。数据完整性约束恰似数据表的“制度规则”,主键、外键等约束通过定义数据存储与关联标准,从源头避免数据混乱失效,保障数据库可靠运行。国家制度是社会运行的根本保障,明确行为边界,规范权责关系,让社会各领域有序协同,是国家稳定发展的重要支撑。二者本质相通,都彰显“规则先行”的重要性。这启示我们要具备“按规则办事,靠制度保障”的意识,在数据库操作与社会生活中自觉遵守行业规范与社会规则,筑牢有序发展的根基。4.3数据完整性约束创建和管理数据表
4.4特点数据表是数据库存储数据的核心单元,掌握数据表的创建、查看、修改和删除操作,是管理数据库的基础。4.4创建和管理数据表创建数据表就是定义表名、字段,以及设置完整性约束的过程。创建数据表使用CREATETABLE语句。4.4.1创建数据表>>1.创建新数据表CREATETABLE[IFNOTEXISTS]表名(字段名1数据类型[列级完整性约束1],字段名2数据类型[列级完整性约束2],...[表级完整性约束]);基本语法格式IFNOTEXISTS子句用于判断数据库中是否已存在同名数据表,若不存在则执行创建操作,若已存在则跳过创建语句,且不会触发“表已存在”的报错。复制数据表本质上也是创建数据表。复制数据表仍使用CREATETABLE语句。4.4.1创建数据表>>2.复制数据表CREATETABLE[IFNOTEXISTS]新表名LIKE原表名;语法格式LIKE关键字用于复制原表的字段名、数据类型、完整性约束等,但不会复制任何数据。特点接下来,通过一个示例练习创建数据表的操作。t_student数据表的信息【例4-1】根据表的信息在db_student_course数据库中创建数据表t_student。字
段数据类型完整性约束student_id(学号)VARCHAR(20)主键student_name(姓名)VARCHAR(50)非空gender(性别)CHAR(2)默认值为男birth_date(出生日期)DATE非空phone(手机号码)VARCHAR(20)无约束4.4.1创建数据表①
在MySQL命令行交互界面中执行以下SQL语句选择数据库db_student_course(请确保数据库已创建;若尚未创建,可参照项目3的相关内容先行创建。本书后续所有示例的操作,均在该数据库中进行)。USEdb_student_course;CREATETABLEt_student(student_idVARCHAR(20)PRIMARYKEY, --学号,主键student_nameVARCHAR(50)NOTNULL, --姓名,非空genderCHAR(2)DEFAULT'男', --
性别,默认值为男birth_dateDATENOTNULL, --出生日期,非空phoneVARCHAR(20) --手机号码,无约束);②
执行以下SQL语句创建数据表t_student。系统提示“QueryOK…”,表示数据表创建成功。4.4.1创建数据表参照例4-1,根据表的信息在db_student_course数据库中创建数据表t_course和t_sc。具体SQL语句见本书配套素材与实例(素材与实例\项目4\创建数据表.txt)。即学即练字
段数据类型完整性约束course_id(课程编号)VARCHAR(20)主键course_name(课程名)VARCHAR(100)非空credit(学分)INT默认值为1字
段数据类型完整性约束student_id(学号)VARCHAR(20)与course_id组合为主键,非空,外键course_id(课程编号)VARCHAR(20)与student_id组合为主键,外键,非空score(成绩)INT非空,值域应在0~100t_course数据表的信息t_sc数据表的信息4.4.1创建数据表创建数据表是有先后顺序的,应先创建无外键约束的主表(被参照表),如t_student和t_course,再创建依赖这两个主表的从表(如t_sc),否则数据库在验证从表的外键约束时,会因找不到被关联的字段,触发“Cannotaddforeignkeyconstraint”错误,无法完成从表的创建。注意4.4.1创建数据表4.4.2查看数据表使用SHOW语句可查看当前数据库中的所有数据表,或查看指定数据表的创建信息。另外,还可以使用SHOWCOLUMNS或DESCRIBE(可简写为DESC)语句查看指定数据表的字段信息。(1)查看当前数据库中的所有数据表。(2)查看指定数据表的创建信息。(3)查看指定数据表的字段信息。--写法1SHOWCOLUMNSFROM表名;--写法2DESCRIBE表名;语法格式SHOWTABLES;语法格式SHOWCREATETABLE表名;语法格式4.4.2查看数据表特点接下来,通过一个示例练习查看数据表的操作。【例4-2】查看db_student_course数据库中的所有数据表,t_student数据表的创建信息,以及t_student数据表的字段信息。①
在MySQL命令行交互界面中执行以下SQL语句选择db_student_course数据库。USEdb_student_course;4.4.2查看数据表②
执行以下SQL语句查看db_student_course数据库中的所有数据表。SHOWTABLES;【执行结果】查看当前数据库中的所有数据表4.4.2查看数据表③
执行以下SQL语句查看t_student数据表的创建信息。SHOWCREATETABLEt_student;【执行结果】查看t_student数据表的创建信息4.4.2查看数据表知识库查看数据表的创建信息时,若显示ENGINE=InnoDB,表示该表使用的是InnoDB存储引擎。存储引擎是MySQL的核心组件,决定了数据表的存储结构、数据处理方式,以及支持的功能特性。MySQL8.0及以上版本的默认存储引擎为InnoDB,因此在创建数据表时,即使未显式指定,系统也会自动应用该引擎。4.4.2查看数据表④
执行以下SQL语句查看t_student数据表的字段信息。DESCRIBEt_student;【执行结果】查看t_student数据表的字段信息Filed列为字段名Type列为字段的数据类型与长度Null列表示字段是否可以存储空值Key列表示字段的索引或约束类型(其中,PRI表示主键)Default列为字段的默认值,NULL表示该字段未设置默认值Extra列用于记录字段的附加属性,为空时表示无附加属性。4.4.2查看数据表4.4.3修改数据表使用ALTERTABLE语句可修改数据表,包括修改表名,添加、删除字段,修改字段名、字段数据类型及字段排列顺序,以及对数据表的完整性约束进行增删调整,下面分别介绍。(1)修改表名。ALTERTABLE旧表名RENAME[TO]新表名;语法格式另外,修改表名还可以使用RENAMETABLE语句。语法格式RENAMETABLE旧表名TO新表名;TO可以省略。两者区别在于,前者仅支持单表重命名;后者支持一次性重命名多个表(用逗号分隔多组表名)。例如RENAMETABLEt_studentTOt_student_info,t_courseTOt_course_info;4.4.3修改数据表(2)添加字段。--基础写法(添加到表末尾,默认位置)ALTERTABLE表名ADD字段名数据类型[完整性约束];--添加为第一个字段ALTERTABLE表名ADD字段名数据类型[完整性约束]FIRST;--添加到指定字段后ALTERTABLE表名ADD字段名数据类型[完整性约束]AFTER已有字段名;语法格式语法格式ALTERTABLE表名DROP字段名;(3)删除字段。4.4.3修改数据表(4)修改字段名。ALTERTABLE表名CHANGE旧字段名新字段名新数据类型[完整性约束];语法格式语法格式ALTERTABLE表名MODIFY字段名新数据类型[完整性约束];(5)修改字段数据类型。即使仅修改字段名,也需指定“新数据类型”(与原类型一致即可)。修改数据类型时需确保新数据类型兼容字段现有数据,如将INT改为可兼容它的BIGINT。4.4.3修改数据表--将指定字段移到第一个位置ALTERTABLE表名MODIFY字段名数据类型[完整性约束]FIRST;--将指定字段移到某字段之后ALTERTABLE表名MODIFY字段名数据类型[完整性约束]AFTER已有字段名;(6)修改字段排列顺序。语法格式4.4.3修改数据表--添加主键约束(单字段/复合字段)ALTERTABLE表名ADD[CONSTRAINT约束名]PRIMARYKEY(字段名1[,字段名2...]);--添加外键约束ALTERTABLE表名ADD[CONSTRAINT约束名]FOREIGNKEY(外键字段名)REFERENCES被参照表名(被参照字段名);--添加唯一约束(单字段/复合字段)ALTERTABLE表名ADD[CONSTRAINT约束名]UNIQUE(字段名1[,字段名2...]);--添加检查约束ALTERTABLE表名ADD[CONSTRAINT约束名]CHECK(表达式);①
添加主键约束、外键约束、唯一约束和检查约束的语法格式如下。4.4.3修改数据表(7)修改完整性约束。--添加自增约束ALTERTABLE表名MODIFY字段名数据类型AUTO_INCREMENT;--添加非空约束ALTERTABLE表名MODIFY字段名数据类型NOTNULL;--添加默认值约束ALTERTABLE表名MODIFY字段名数据类型DEFAULT默认值;4.4.3修改数据表②
添加自增约束、非空约束和默认值约束的语法格式如下。(7)修改完整性约束。--删除主键约束(一张表仅一个主键,无需指定约束名)ALTERTABLE表名DROPPRIMARYKEY;--删除外键约束(需指定自定义/系统默认的约束名)ALTERTABLE表名DROPFOREIGNKEY约束名;--删除唯一约束(唯一约束会自动创建唯一索引,需删除索引名/约束名)ALTERTABLE表名DROPINDEX约束名/索引名;--删除检查约束(需指定约束名)ALTERTABLE表名DROPCONSTRAINT约束名;--删除自增约束(移除AUTO_INCREMENT)ALTERTABLE表名MODIFY字段名数据类型;--删除非空约束(移除NOTNULL,更改为NULL)ALTERTABLE表名MODIFY字段名数据类型NULL;--删除默认值约束(移除DEFAULT默认值)ALTERTABLE表名MODIFY字段名数据类型;不同类型约束的删除语法略有差异,具体如下。4.4.3修改数据表修改数据表中的约束时,根据约束类型不同,操作方式分为以下两种情况。操作方式①
修改主键、外键、唯一和检查约束时,必须先删除旧的约束,再添加新的约束。②
修改自增、非空和默认值约束时,可直接使用MODIFY子句重新设置约束,旧的约束会被覆盖。4.4.3修改数据表提示索引的相关知识见本书项目6。4.4.3修改数据表特点接下来,通过一个示例练习修改数据表的操作。【例4-3】修改t_student数据表。①
在MySQL命令行交互界面中执行以下SQL语句选择db_student_course数据库。USEdb_student_course;4.4.3修改数据表②
执行以下SQL语句,给t_student数据表添加年龄(age)字段。ALTERTABLEt_studentADDageVARCHAR(3)NOTNULLDEFAULT'0';可执行DESCRIBEt_student;语句查看修改结果。添加字段4.4.3修改数据表③
执行以下SQL语句,将age字段名修改为student_age。ALTERTABLEt_studentCHANGEagestudent_ageVARCHAR(3)NOTNULLDEFAULT'0';可执行DESCRIBEt_student;语句查看修改结果。修改字段名4.4.3修改数据表④
执行以下SQL语句,修改student_age字段的数据类型。ALTERTABLEt_studentMODIFYstudent_ageINTNOTNULLDEFAULT0;可执行DESCRIBEt_student;语句查看修改结果。修改字段数据类型
4.4.3修改数据表⑤
执行以下SQL语句,将student_age字段移到gender字段之后。ALTERTABLEt_studentMODIFYstudent_ageINTNOTNULLDEFAULT0AFTERgender;可执行DESCRIBEt_student;语句查看修改结果。修改字段排列顺序4.4.3修改数据表⑥
执行以下SQL语句,将student_age字段删除。ALTERTABLEt_studentDROPstudent_age;可执行DESCRIBEt_student;语句查看修改结果。删除字段4.4.3修改数据表如果不再需要某个数据表,可以使用DROPTABLE语句将其删除。4.4.4删除数据表DROPTABLE[IFEXISTS]表名1[,表名2...];语法格式提示如果要删除的数据表是其他表的主表,需先删除从表再删除主表。若想保留从表仅删除主表,需先解除从表的外键约束,再删除主表。删除操作会彻底删除表的结构、数据、索引、约束等与表相关的所有内容,且删除后无法通过常规方式恢复,因此执行该操作需谨慎。管理数据4.54.5管理数据管理数据就是对数据表中的数据进行插入、修改和删除操作,下面分别介绍。4.5.1插入数据使用INSERT语句可向数据表中插入数据。INSERT[INTO]表名[(字段1,字段2...)]VALUES(值1,值2...)[,(值1,值2...)];该操作是最基础的插入操作,支持插入单条或多条数据。VALUES子句中的值列表必须与表名后的字段列表在数量、顺序、数据类型上严格对应。若省略字段列表,则视为向所有字段插入数据,此时值的顺序必须与数据表中字段的物理顺序完全一致;若指定具体字段,仅需为指定的字段赋值,未涉及的字段将自动填充默认值或NULL(前提是字段允许为空,否则会报错)。(1)向表中插入一条或多条数据。语法格式4.5.1插入数据插入多条数据时,多组值列表间用英文逗号分隔且末尾无需加逗号;字符和日期型字段值需用单引号包裹。注意4.5.1插入数据(2)向指定字段插入数据。INSERT[INTO]表名SET字段1=值1[,字段2=值2...];语法格式该操作仅支持单条数据插入,是以“字段=值”的形式精准赋值,无需遵循字段的物理顺序,仅为需要的字段插入数据;未指定的字段将自动使用默认值(若字段无默认值且设置非空约束,则会报错)。4.5.1插入数据(3)将查询结果集批量插入。INSERT[INTO]目标表名[(字段1,字段2...)]SELECT字段1,字段2...FROM源表名[WHERE条件];语法格式使用该操作时需注意:查询结果的字段数量、数据类型、顺序需与目标表字段列表匹配;目标表需预先存在,不可通过该语句自动创建;SELECT子句可通过WHERE条件筛选源数据;未包含在插入字段列表中的目标表字段,若定义了默认值则自动填充,若无默认值且允许NULL则填充NULL,若无默认值且定义为NOTNULL则会报错。该操作是将通过SELECT语句从源表中查询(查询语句相关知识见项目5)到的结果集批量插入目标表,适用于数据迁移、批量复制、数据筛选导入等场景。4.5.1插入数据接下来,通过一个示例练习向数据表中插入数据的操作。【例4-4】向数据表t_student、t_course中插入数据(本书所有示例SQL语句均在MySQL命令行交互界面中执行,后续不再一一说明)。--向t_student表中插入数据INSERTINTOt_studentVALUES('S20260101','刘某','男','2007-08-06','132****1234'),('S20260102','王某','女','2008-04-01','136****5691');--向t_course表中插入数据INSERTINTOt_courseSETcourse_id='C001',course_name='数据库原理',credit=3;INSERTINTOt_courseSETcourse_id='C002',course_name='Python编程',credit=3;4.5.1插入数据参照例4-4,将表中的数据插入数据表t_sc。具体SQL语句见本书配套素材与实例(素材与实例\项目4\插入数据.txt)。即学即练插入数据表t_sc中的数据student_idcourse_idscoreS20260101C00185S20260101C00290S20260102C001784.5.1插入数据使用UPDATE语句可一次修改数据表中多个指定字段的值,各字段之间用逗号隔开。4.5.2修改数据UPDATE表名SET字段1=值1[,字段2=值2...][WHERE条件];WHERE子句用于选择要修改的记录(数据行),是修改操作的核心,省略时会修改表中所有记录。语法格式接下来,通过一个示例练习修改数据表中数据的操作。【例4-5】修改t_student数据表中的数据,将学号为S20260102的学生的手机号码修改为138****8888。UPDATEt_studentSETphone='138****8888'WHEREstudent_id='S20260102';4.5.2修改数据执行上述SQL语句,结果如下。修改数据“Rowsmatched:1”表示WHERE条件匹配到的行数为1“Changed:1”表示发生变化的记录(数据行)数为1“Warnings:0”表示语句执行期间未产生任何警告信息4.5.2修改数据使用DELETE和TRUNCATE语句可删除数据表中的数据,下面分别介绍。4.5.3删除数据(1)DELETE语句。DELETEFROM表名[WHERE条件][LIMIT行数];语法格式WHERE子句用于指定筛选条件,只有满足条件的记录才会被删除;该语句用于精准删除数据表中符合条件的记录。LIMIT子句用于限制单次删除的最大行数,常用于控制批量删除的范围。若省略WHERE子句和LIMIT子句,系统将清空表中的所有记录,且不可通过常规方式恢复。4.5.3删除数据(2)TRUNCATE语句。TRUNCATE[TABLE]表名;语法格式该语句用于清空表中所有记录。4.5.3删除数据接下来,通过一个示例练习删除数据表中数据的操作。【例4-6】删除数据表t_student中学号为S20260102的学生记录。DELETEFROMt_studentWHEREstudent_id='S20260102';4.5.3删除数据项目实施1——创建电商订单管理系统数据表根据项目2中表2-2~表2-5定义的数据表结构,使用本项目所学知识在电商订单管理系统数据库中创建数据表。«步骤1»在MySQL命令行交互界面中执行以下SQL语句选择数据库db_shop。USEdb_shop;创建电商订单管理系统数据表并管理数据«步骤2»根据表2-2定义的数据表结构,执行以下SQL语句在数据库db_shop中创建客户表t_customer。CREATETABLEt_customer(customer_idVARCHAR(15)PRIMARYKEY,customer_nameVARCHAR(30)NOTNULL,telephoneVARCHAR(20)NOTNULL,addressTEXTNOTNULL);项目实施1——创建电商订单管理系统数据表«步骤3»根据表2-3定义的数据表结构,执行以下SQL语句创建订单表t_order。CREATETABLEt_order(order_idVARCHAR(15)PRIMARYKEY,customer_idVARCHAR(15)NOTNULL,order_amountDECIMAL(10,2)NOTNULL,order_statusTINYINT(1)NOTNULL,order_timeDATETIMENOTNULL,--设置外键约束CONSTRAINTfk_order_customerFOREIGNKEY(customer_id)REFERENCESt_customer(customer_id),--设置订单状态的检查约束CONSTRAINTchk_order_statusCHECK(order_statusIN(1,2,3,4)))项目实施1——创建电商订单管理系统数据表根据表2-4定义的数据表结构,执行以下SQL语句创建商品表t_product。CREATETABLEt_product(product_idVARCHAR(15)PRIMARYKEY,product_nameVARCHAR(100)NOTNULL,product_priceDECIMAL(10,2)NOTNULL);项目实施1——创建电商订单管理系统数据表«步骤4»«步骤5»根据表2-5定义的数据表结构,执行以下SQL语句创建关联表t_order_product。CREATETABLEt_order_product(order_idVARCHAR(15)NOTNULL,product_idVARCHAR(15)NOTNULL,product_quantityINTNOTNULL,--两个字段组合为主键PRIMARYKEY(order_id,product_id),CONSTRAINTfk_link_orderFOREIGNKEY(order_id)REFERENCESt_order(order_id),CONSTRAINTfk_link_productFOREIGNKEY(product_id)REFERENCESt_product(product_id),CONSTRAINTchk_product_quantityCHECK(product_quantity>0));项目实施1——创建电商订单管理系统数据表«步骤6»创建完所有数据表后,执行以下SQL语句查看当前数据库中的所有数据表。SHOWTABLES;【执行结果】项目实施1——创建电商订单管理系统数据表查看当前数据库中的所有数据表项目实施2——管理电商订单管理系统数据表中的数据使用本项目所学知识,管理电商订单管理系统数据表中的数据,包括插入数据、修改数据和删除数据。«步骤1»在MySQL命令行交互界面中执行以下SQL语句向客户表t_customer插入数据。INSERTINTOt_customer(customer_id,customer_name,telephone,address)VALUES('C00001','冰溪','152****1234','xx省xx市xx区xx路xx小区2号楼101'),('C00002','张三','138****2222','xx省xx市xx区xx路xx大厦A座10楼'),('C00003','李华','189****4444','xx省xx市xx区xx路xx花园3号楼502'),('C00004','王五','163****5555','xx省xx市xx区xx路xx别苑3号楼801');«步骤2»执行以下SQL语句向订单表t_order插入数据。INSERTINTOt_order(order_id,customer_id,order_amount,order_status,order_time)VALUES('O00001','C00001',5998.00,3,'2026-01-1016:53:42'),('O00002','C00002',5598.00,2,'2026-02-0110:20:00'),('O00003','C00003',2299.00,1,'2026-02-1109:15:30');项目实施2——管理电商订单管理系统数据表中的数据«步骤3»执行以下SQL语句向商品表t_product插入数据INSERTINTOt_product(product_id,product_name,product_price)VALUES('P00001','PhonePro',2999.00),('P00002','Note20',4299.00),('P00003','PodsMax',1299.00),('P00004','WatchS11',2299.00);项目实施2——管理电商订单管理系统数据表中的数据«步骤4»执行以下SQL语句向关联表t_order_product插入数据。INSERTINTOt_order_product(order_id,product_id,product_quantity)VALUES('O00001','P00001',2),('O00002','P00002',1),('O00002','P00003',1),('O00003','P00004',1);项目实施2——管理电商订单管理系统数据表中的数据«步骤5»执行以下SQL语句修改客户表t_customer中customer_id为C00001的客户手机号码。UPDATEt_customerSETtelephone='153****6789'WHEREcustomer_id='C00001';项目实施2——管理电商订单管理系统数据表中的数据修改成功后执行SELECT*FROMt_customer;语句查看修改结果。修改客户表中的指定数据«步骤6»执行以下SQL语句删除客户表t_customer中customer_id为C00004的记录。DELETEFROMt_customerWHEREcustomer_id='C00004';项目实施2——管理电商订单管理系统数据表中的数据删除成功后执行SELECT*FROMt_customer;语句查看删除结果。删除客户表中的指定数据项目实训——创建银行交易系统数据表并管理数据表数据1.实训目标练习在MySQL命令行交互界面中使用SQL语句创建数据表,以及管理数据表和数据的方法。2.实训内容基于项目2和项目3中项目实训的内容,使用SQL语句完成以下操作。(1)使用CREATETABLE语句在db_bank数据库中创建数据表t_customer(客户表)、t_account(账户表)和t_record(交易记录表)。(2)使用SHOW语句查看当前数据库中的所有数据表。(3)使用INSERT语句向数据表中插入数据。项目实训——创建银行交易系统数据表并管理数据表数据①
向t_customer表中插入的数据。customer
_idcustomer
_nameid_card
_numberphoneemailaddresscustomer
_typeC00001李某422******
*******53139
****5698415963***@北京市海淀区xx街道1C00002张某610******
*******46152
****1234123789***@北京市朝阳区xx街道2插入数据表t_customer中的数据②
向t_account表中插入的数据。插入数据表t_account中的数据account_idcustomer_idopen_datebalanceaccount_statuspasswordA00001C000012026-01-111000.001123456A00002C000022026-01-1050000.001654321项目实训——创建银行交易系统数据表并管理数据表数据③
向t_record表中插入的数据。插入数据表t_record中的数据record_idaccount_idtransaction_amounttransaction_typetransaction_timeR00001A000011000.0012026-01-1116:53:42R00002A0000250000.0012026-01-1009:20:15(4)使用UPDATE语句将t_account表中account_id为A00001的账户的余额修改为2000.00,密码修改为666666。(5)使用DELETE语句将t_record表中account_id为A00002的所有交易记录删除。项目考核1、下列关于INT数据类型的描述,正确的是(
)。A.占用2字节存储空间B.可表示无符号数值的范围是0~231-1C.可表示有符号数值的范围是-231~231-1D.适用于存储超大数值,如天文数字2、字符串类型中,
是定长字符串类型,
是变长字符串类型,所占存储空间分别为M×w字节和L+1或L+2字节。3、简述使用INSERT语句插入多条数据的语法格式及注意事项。CCHAR(M)VARCHAR(M)语法格式为INSERT[INTO]表名[(字段1,字段2...)]VALUES(值1,值2...)[,(值1,值2...)];。注意事项:多组值列表间用英文逗号分隔,末尾不加逗号;字符和日期型字段值需用单引号包裹;非空且无默认值的字段必须赋值;字段列表与值列表在数量、顺序、数据类型上需对应。0102030405新建班级新建作业成绩统计布置作业学生扫码做小提示:生成的班级二维码,放在下一页ppt中即可。放入二维码后,记得取消“隐藏幻灯片”哦~扫码布置本课作业↑↑↑扫码布置作业wenjingketang扫码填写问卷定制更实用的教学资源对课件有修改、优化建议平台使用遇到问题想免费使用平台、免费建课扫码加小旌好友为您提供专属服务哦谢谢观看数据库原理与应用技术所有教学资源,我们给;所有复杂操作,我们做;图书附赠,永久免费,只为老师用书更方便课件
教案
微课
扫码题库
建课互评考试平台
学习工具数据库基础项目一目录数据库设计项目二数据库基本操作项目三数据表基本操作项目四数据查询项目五数据库查询优化项目六数据库编程项目七数据库安全管理与维护项目八企业人力资源管理系统数据库开发项目九项目五数据查询数据表创建成功并插入数据后,便可以对其进行查询操作。数据查询是用户对数据表执行的最频繁的操作,旨在从数据表中筛选、提取并整合出满足特定业务需求的数据。项目导读本项目主要讲解数据查询中的单表查询和多表查询,涵盖无条件查询、条件查询、聚合查询、分组查询等单表查询,以及内/外连接查询、子查询、合并查询等多表查询。项目目标知识目标识记SELECT语句中各子句的语法和用途。掌握单表查询相关知识。掌握多表查询相关知识。能力目标能够使用单表查询对单张数据表进行条件查询、分组查询、排序查询等。能够使用连接查询(内连接和外连接)对多张数据表进行数据关联查询。能够使用子查询解决依赖中间结果集的复杂查询问题。素质目标培养数据查询与分析的能力,养成用数据说话的职业习惯。领悟“数据即资产”的核心内涵,培养从海量数据中提炼信息,赋能业务决策的意识。项目准备什么是查询语句?全班学生以3~5人为一组进行分组,各组选出组长。组长组织组员扫码观看“认识查询语句”视频,讨论并回答以下问题。问题1问题2查询语句的用途有哪些?认识查询语句单表查询5.15.1单表查询单表查询是指从单张数据表中查询所需要的数据。--DISTINCT表示对查询结果去重,*表示所有字段SELECT[DISTINCT]字段1[,字段2,...]|*FROM表名 --指定查询的表[WHERE条件] --可选,查询满足条件的记录--可选,按指定字段(分组字段)对查询结果进行分组,并对分组后的结果进行条件筛选[GROUPBY分组字段[HAVING条件]]--可选,按指定字段(排序字段)对查询结果进行排序(ASC表示升序,DESC表示降序,默认为ASC)[ORDERBY排序字段[ASC|DESC]][LIMIT[起始位置,]条数]; --可选,限制查询结果返回的记录条数在数据库中查询数据的基本语句是SELECT语句。使用SELECT语句进行单表查询的基本语法格式如下。5.1.1单表查询的基本语法格式SELECT和FROM是必不可少的,用于指明“查询什么数据”和“从哪张表中查询数据”;其他子句都是可选的,用于对查询结果进行进一步筛选、分组、排序和数量控制。--DISTINCT表示对查询结果去重,*表示所有字段SELECT[DISTINCT]字段1[,字段2,...]|*FROM表名 --指定查询的表[WHERE条件] --可选,查询满足条件的记录--可选,按指定字段(分组字段)对查询结果进行分组,并对分组后的结果进行条件筛选[GROUPBY分组字段[HAVING条件]]--可选,按指定字段(排序字段)对查询结果进行排序(ASC表示升序,DESC表示降序,默认为ASC)[ORDERBY排序字段[ASC|DESC]][LIMIT[起始位置,]条数]; --可选,限制查询结果返回的记录条数5.1.1单表查询的基本语法格式若在一条SELECT语句中使用了上述所有子句,则SQL语句的实际执行顺序并不是按照其基本的书写顺序执行,而是按照FROM(确定数据来源表)→WHERE(对原始数据进行条件筛选)→GROUPBY(对筛选后的数据进行分组)→HAVING(对分组结果进行条件筛选)→SELECT(确定最终要查询的字段)→ORDERBY(对查询结果进行排序)→LIMIT(限制返回的数据条数)的顺序执行。5.1.2无条件查询和条件查询根据SELECT语句中是否使用WHERE子句数据查询无条件查询条件查询无条件查询是指在SELECT语句中不使用WHERE子句进行数据筛选的查询。SELECT字段1[,字段2,...]|*FROM表名;5.1.2无条件查询和条件查询>>1.无条件查询在无条件查询中,查询结果不受任何条件限制,系统会从数据表中返回查询字段的全部数据。基本语法格式应用场景:常用于数据表创建完成后,快速查看表中数据是否正确插入,或对表中数据进行整体浏览。特点接下来,通过一个示例练习无条件查询的应用。【例5-1】从数据表t_course中查询所有课程的课程名和学分。SELECTcourse_name,creditFROMt_course;5.1.2无条件查询和条件查询>>1.无条件查询【无条件查询结果】无条件查询结果条件查询是指在SELECT语句中使用WHERE子句进行数据筛选的查询,该查询仅返回满足筛选条件的数据。SELECT字段1[,字段2,...]|*FROM表名WHERE条件;5.1.2无条件查询和条件查询>>2.条件查询基本语法格式该语句通过WHERE子句对字段值进行比较、范围限定或逻辑判断,实现对查询结果的精确筛选与控制。根据WHERE子句中筛选条件的数量条件查询单条件查询多条件查询5.1.2无条件查询和条件查询>>2.条件查询5.1.2无条件查询和条件查询>>2.条件查询当WHERE子句中只包含一个条件时,称为单条件查询;当包含多个条件,并通过逻辑运算符进行组合时,称为多条件查询。AND、OR和NOTSELECT字段1[,字段2,...]|*FROM表名WHERE条件1逻辑运算符
条件2[逻辑运算符
条件3...];基本语法格式AND表示“并且”,要求所有条件同时满足OR表示“或者”,只需满足其中任意条件即可NOT表示“非”,用于对条件结果取反特点接下来,通过一个示例练习单条件查询和多条件查询的应用。【例5-2】首先从数据表t_student中查询性别为“男”的学生信息,然后从数据表t_course中查询学分为3且课程名不为空的课程编号。--单条件查询SELECTstudent_id,student_name,genderFROMt_studentWHEREgender='男';--多条件查询SELECTcourse_idFROMt_courseWHEREcredit=3ANDcourse_nameISNOTNULL;5.1.2无条件查询和条件查询>>2.条件查询特点5.1.2无条件查询和条件查询>>2.条件查询【单条件查询和多条件查询结果】单条件查询结果多条件查询结果提示ISNOTNULL用于查询字段值不为空的记录,可使用ISNULL查询字段值为空的记录。5.1.2无条件查询和条件查询>>2.条件查询根据WHERE子句中筛选条件的不同条件查询比较运算符查询范围查询集合查询模糊查询5.1.2无条件查询和条件查询>>2.条件查询比较运算符查询是指在WHERE子句中限定字段值满足某一比较条件的查询,常通过比较运算符=(等于)、<>或!=(不等于)、>(大于)、<(小于)、>=(大于等于)和<=(小于等于)等实现。(1)比较运算符查询。查询学分值为3的课程信息或成绩满足某一数值条件的学生记录。例如5.1.2无条件查询和条件查询>>2.条件查询特点接下来,通过一个示例练习比较运算符查询的应用。【例5-3】从数据表t_sc中查询成绩大于等于60的所有记录。SELECT*FROMt_scWHEREscore>=60;5.1.2无条件查询和条件查询>>2.条件查询范围查询是指在WHERE子句中限定字段值必须位于某个指定区间的查询,常通过范围运算符BETWEEN…AND…实现。(2)范围查询。查询成绩在某一分数段或出生日期在某一时间范围的学生信息。例如5.1.2无条件查询和条件查询>>2.条件查询特点接下来,通过一个示例练习范围查询的应用。【例5-4】从数据表t_sc中查询成绩在80~90的所有记录。SELECT*FROMt_scWHEREscoreBETWEEN80AND90;5.1.2无条件查询和条件查询>>2.条件查询查询结果包括区间的开始值和结束值,即BETWEEN80AND90会返回成绩等于80、90,以及介于80~90的所有记录。BETWEEN…AND…可搭配NOT使用。举例:NOTBETWEEN80AND90表示查询不在指定区间的记录。集合查询是指在WHERE子句中限定字段值属于某一集合的查询,常通过集合运算符IN或NOTIN实现。(3)集合查询。查询选修了指定课程的学生信息或课程编号属于某一集合的记录。例如5.1.2无条件查询和条件查询>>2.条件查询接下来,通过一个示例练习集合查询的应用。【例5-5】从数据表t_course中查询课程编号为C001或C002的所有记录。SELECT*FROMt_courseWHEREcourse_idIN('C001','C002');5.1.2无条件查询和条件查询>>2.条件查询集合中的多个值用英文逗号隔开。模糊查询是指在WHERE子句中限定字段值包含指定内容的查询,常通过模糊匹配运算符LIKE和通配符(%和_)实现。(4)模糊查询。5.1.2无条件查询和条件查询>>2.条件查询%表示任意长度的字符_表示单个字符按姓名关键字查询学生信息或按课程名称中的部分文字查询课程信息。例如接下来,通过一个示例练习模糊查询的应用。【例5-6】从数据表t_student中查询姓名中包含“王”的所有学生记录。SELECT*FROMt_studentWHEREstudent_nameLIKE'%王%';5.1.2无条件查询和条件查询>>2.条件查询提示通配符可以放在字符前,也可以放在字符后,还可以同时放在字符前后。5.1.2无条件查询和条件查询>>2.条件查询5.1.3聚合查询和分组查询在数据查询操作中,通常需要对数据表中的数据进行统计。为实现这类数据统计功能,MySQL提供了多种聚合函数。聚合函数是对一组数据进行计算,并返回单一值的函数。聚合函数聚合函数说
明COUNT()统计并返回符合条件的记录条数SUM()计算并返回数值字段值的总和AVG()计算并返回数值字段值的平均值MAX()返回字段值中的最大值MIN()返回字段值中的最小值提示聚合函数在计算时会自动忽略NULL值。5.1.3聚合查询和分组查询特点在查询操作中,可借助聚合函数实现聚合查询。此外,将聚合函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026智能折卷机模块化设计对非标定制交付周期的影响分析
- 2026AI视觉联动下偏转线圈动态响应延迟优化报告
- 2026国际金融理财师(CFP)认证资格考试(综合案例分析)历年参考题库含答案详解
- 2026吉林机关事业单位工人技术等级考试(食品检验工·初级)历年参考题库含答案详解
- 2026口腔执业医师-第二单元考试历年参考题库含答案详解
- 2026卫生专业技术资格考试(肿瘤放射治疗学-专业实践能力·主治医师)历年参考题库含答案详解
- 2026医疗卫生系统招聘考试(神经外科)历年参考题库含答案详解
- 2026医学影像技术期末复习-儿科学(专科医学影像技术)历年题库含答案详解
- 2026副高面审答辩-副高077面审答辩针灸学历年题库含答案详解
- 2026军队文职人员招聘考试(数学3)历年参考题库含答案详解
- 管工培训课件
- 邮储银行重庆市万州区2025秋招笔试数量关系题专练及答案
- 政府绩效管理课件
- 劳动保护用品使用指南
- 巨量千川-品牌广告(初级)营销师认证考试题库(附答案)
- 建筑消防设施检测原始记录
- Be动词是个好妈妈她有三个乖娃娃(课件)英语三年级上册
- 水电站安全守护制度
- DL-T825-2021电能计量装置安装接线规则
- 英语四六级词汇汇总(带音标+免费下载)
- 如愿三声部合唱简谱
评论
0/150
提交评论