(三)数据表操作(2)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)

2025-11-03
| 8页
| 178人阅读
| 0人下载
精品

内容正文:

举一反三考点练 《数据库原理与应用技术-MySQL》数据表操作-讲义 4.掌握查看表结构的命令:SHOW COLUMNS、DESCRIBE; 5.掌握修改表结构的命令:ALTER TABLE; 6.掌握重命名表的命令:RENAME TABLE; 7.掌握复制表的命令:CREATE TABLE …LIKE; 8.掌握删除表的命令:DROP TABLE; 知识点一 查看、修改表结构 1.查看表结构 用于查询表的字段定义、数据类型、约束条件等信息,常用命令有DESCRIBE(简写DESC)和SHOW COLUMNS,两者功能完全等价。 (1)DESCRIBE|或DESC 基本语法: DESCRIBE 表名; -- 或 DESC 表名; 作用:返回表的字段信息,包括 6 列: Field:字段名; Type:数据类型; Null:是否允许为NULL; Key:是否为键; Default:默认值; Extra:额外信息。 (2)SHOW COLUMNS 基本语法: SHOW COLUMNS FROM 表名; -- 或 SHOW COLUMNS IN 表名; 作用:与DESCRIBE完全一致,返回表的字段详细信息。 2. 修改表结构 用于对已存在的表进行结构调整,如添加 / 删除字段、修改字段类型、调整约束等,核心语法为: ALTER TABLE 表名 操作类型 [参数]; 常用操作类型及语法如下: 操作类型 语法示例 说明 添加列(ADD) ALTER TABLE 表名 ADD 列名 数据类型 [约束]; 在表末尾添加新列;若需指定位置,加FIRST(首列)或AFTER 已有列名(某列后)。 修改列类型(MODIFY) ALTER TABLE 表名 MODIFY 列名 新数据类型 [新约束]; 仅修改字段的数据类型或约束(列名不变)。 修改列名 + 类型(CHANGE) ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 [新约束]; 同时修改列名和数据类型(旧列名必须存在)。 删除列(DROP) ALTER TABLE 表名 DROP 列名; 删除指定列(列中数据将丢失,需谨慎)。 添加主键(ADD PRIMARY KEY) ALTER TABLE 表名 ADD PRIMARY KEY (列名); 为表添加主键(需确保列值非空且唯一)。 删除主键(DROP PRIMARY KEY) ALTER TABLE 表名 DROP PRIMARY KEY; 删除表的主键(若主键是自增列,需先取消自增)。 添加外键(ADD FOREIGN KEY) ALTER TABLE 子表名 ADD FOREIGN KEY (子表列) REFERENCES 主表名(主表列); 为子表添加外键(关联主表主键,需确保类型一致)。 删除外键(DROP FOREIGN KEY) ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; 删除外键(需指定外键约束名,可通过SHOW CREATE TABLE查看)。 修改表名(RENAME TO) ALTER TABLE 旧表名 RENAME TO 新表名; 重命名表。 1.已知school数据库中有student表,写出两种查看该表结构的 SQL 命令。 【答案】 DESCRIBE school.student;(或DESC school.student;) SHOW COLUMNS FROM student IN school; 1.(填空题)使用DESCRIBE命令查看course表结构的简写命令是______。 【答案】DESC course; 【解析】DESC是DESCRIBE的简写,语法更简洁,功能完全相同。 2.(判断题)ALTER TABLE student ADD age INT AFTER name;表示在student表的name列后添加age列(INT类型)。( ) 【答案】√ 【解析】ADD命令中,AFTER 已有列名用于指定新列的位置,此处表示age列添加在name列之后;若需添加在首列,可使用FIRST。 3.(单项选择题)下列命令中,用于删除teacher表中tel列的是( ) A. ALTER TABLE teacher REMOVE tel; B. ALTER TABLE teacher DELETE COLUMN tel; C. ALTER TABLE teacher DELETE tel; D. ALTER TABLE teacher DROP tel; 【答案】D 4.(读程序填空题)以下语句用于将product表的price列(原类型INT)修改为DECIMAL(8,2)类型,请补全: ALTER TABLE product ______ price ______; 【答案】MODIFY;DECIMAL(8,2) 【解析】MODIFY用于修改列的类型或约束(列名不变),语法为ALTER TABLE 表名 MODIFY 列名 新类型,此处将price从INT改为DECIMAL(8,2)。。 1.(单项选择题)执行SHOW COLUMNS FROM student;后,输出结果中Key列显示PRI表示该字段是( ) A. 外键 B. 主键 C. 唯一键 D. 索引键 【答案】B 【解析】Key列中,PRI表示主键(Primary Key),UNI表示唯一键(Unique),MUL表示非唯一索引。 2.(判断题)ALTER TABLE命令一次只能执行一种修改操作。( ) 【答案】× 【解析】ALTER TABLE支持一次执行多个操作,用逗号分隔。 3.(填空题)将user表的uname,类型VARCHAR(10)改名为username且类型改为VARCHAR(20),应使用命令:ALTER TABLE user ______ uname username ______; 【答案】CHANGE;VARCHAR(20) 【解析】CHANGE用于同时修改列名和类型,语法为CHANGE 旧列名 新列名 新类型,此处将uname改为username,类型从VARCHAR(10)改为VARCHAR(20)。 4.(SQL 语句题)已知order表结构如下: 字段名 类型 约束 oid INT 主键 pid INT 非空 quantity INT 默认值 1 请写出以下操作的 SQL 命令: (1)为order表添加total_price列(DECIMAL(10,2)类型,非空),添加在quantity列之后; (2)将pid列的类型修改为BIGINT; (3)删除quantity列。 【答案】 (1)ALTER TABLE order ADD total_price DECIMAL(10,2) NOT NULL AFTER quantity; (2)ALTER TABLE order MODIFY pid BIGINT; (3)ALTER TABLE order DROP quantity; 【解析】 (1)使用ADD添加列,AFTER quantity指定位置,NOT NULL为约束; (2)MODIFY修改列类型(列名不变); (3)DROP删除列,order是关键字,需用反引号包裹。 1.查看表结构:(1)DESCRIBE|或DESC 2. 修改表结构:ALTER TABLE 表名 操作类型 [参数]; 知识点二 表的重命名、复制与删除 1. 重命名表(RENAME TABLE) 用于修改已有表的名称,语法简洁且支持批量操作。 基本语法: RENAME TABLE 旧表名1 TO 新表名1 [, 旧表名2 TO 新表名2, ...]; 注意: 可同时重命名多个表,用逗号分隔。 旧表必须存在,新表名必须不存在。 若表不在当前数据库,需指定数据库名。 2. 复制表结构(CREATE TABLE ... LIKE) 基本语法: CREATE TABLE 新表名 LIKE 源表名; 注意: 复制:源表的字段定义、数据类型、主键、唯一键、外键、存储引擎、字符集等结构信息。 不复制:表中的数据、自增列的当前值(新表自增列从 1 开始)、触发器(需单独复制)。 新表名必须不存在,否则报错。 3. 删除表(DROP TABLE) 用于删除指定表及其所有数据(操作不可逆,需谨慎)。 基本语法: DROP TABLE [IF EXISTS] 表名1 [, 表名2, ...]; 说明: IF EXISTS:可选参数,表不存在时不报错。 可同时删除多个表,用逗号分隔。 删除表会同时删除表的结构、数据、索引、约束等所有相关信息,且无法恢复)。 已知school数据库中有stu_old表,需完成以下操作: (1)将stu_old表重命名为student; (2)复制student表的结构到student_backup表,不复制数据; (3)删除stu_old表。 请写出对应的 SQL 命令。 【答案】 (1)RENAME TABLE school.stu_old TO school.student; (2)CREATE TABLE school.student_backup LIKE school.student; (3)DROP TABLE IF EXISTS school.stu_old; 1.(判断题)RENAME TABLE t1 TO t2, t2 TO t3;可以将t1重命名为t2,同时将t2重命名为t3。( ) 【答案】× 【解析】重命名多个表时,新表名不能与已存在的表名冲突。此命令中,第一步将t1改为t2后,t2已存在,第二步无法将t2改为t3。 2.(填空题)复制course表的结构到course_copy表,且确保course_copy不存在时才创建,命令是:CREATE TABLE ______ course_copy LIKE course; 【答案】IF NOT EXISTS 【解析】IF NOT EXISTS用于判断新表是否存在,避免因course_copy已存在而报错。 3.(单项选择题)下列关于CREATE TABLE new_t LIKE old_t;的说法,正确的是( ) A. 复制old_t的结构和数据 B. 仅复制old_t的数据,不复制结构 C. 仅复制old_t的结构,不复制数据 D. 既不复制结构也不复制数据 【答案】C 【解析】CREATE TABLE ... LIKE是复制表结构的专用命令,不包含任何数据;复制数据需额外使用INSERT INTO new_t SELECT * FROM old_t;。 4.(读程序填空题)以下命令用于同时删除temp1和temp2表,且确保表不存在时不报错,请补全: ______ TABLE IF EXISTS temp1, temp2; 【答案】DROP 1.(单项选择题)下列命令中,用于将user表重命名为user_info的是( ) A. ALTER TABLE user RNAME user_info; B. RENAME user TO user_info; C. RENAME TABLE user TO user_info; D. CHANGE TABLE user TO user_info; 【答案】C 2.(判断题)DROP TABLE命令删除表后,表中的数据可以通过 MySQL 的日志恢复。( ) 【答案】× 【解析】DROP TABLE是不可逆操作,会彻底删除表的结构和数据,MySQL 默认日志不保存删除的表数据,需依赖手动备份恢复。 3.(填空题)将product表和order表分别重命名为product_old和order_old,命令是:RENAME TABLE product TO product_old, ______ ______ ______; 【答案】order TO order_old 4.(SQL 语句题)已知teacher表存在,写出以下操作的命令: (1)复制teacher表的结构到teacher_temp表; (2)将teacher_temp表重命名为teacher_backup; (3)删除teacher_temp表(若存在)。 【答案】 (1)CREATE TABLE teacher_temp LIKE teacher; (2)RENAME TABLE teacher_temp TO teacher_backup; (3)DROP TABLE IF EXISTS teacher_temp; 1. 重命名表(RENAME TABLE) RENAME TABLE 旧表名1 TO 新表名1 [, 旧表名2 TO 新表名2, ...]; 2. 复制表结构(CREATE TABLE ... LIKE) CREATE TABLE 新表名 LIKE 源表名; 3. 删除表(DROP TABLE) DROP TABLE [IF EXISTS] 表名1 [, 表名2, ...]; 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

(三)数据表操作(2)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
1
(三)数据表操作(2)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
2
(三)数据表操作(2)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。