MySQL数据表的结构的同步练习与实训

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 进行MySQL数据表的结构的同步练习与实训。

MySQL数据表的结构的同步练习与实训答案
一、选择题

  1. MySQL中创建数据表应该使用( B )语句。
    A.CREATE SCHEMA
    B.CREATE TABLE
    C.CREATE VIEW
    D.CREATE DATABASE
    2.对一个已创建的表,( D )操作是不可以的。
    A.更改表名
    B.增加或删除列
    C.修改已有列的属性
    D.将已有text数据类型修改为image数据类型
    3.在下列SQL语句中,修改表结构的语句是( A )。
    A.ALTER B. CREATE C. UPDATE D. INSERT
    4.下面是有关主键和外键之间的关系描述,正确的是( AC )。
    A.一个表中最多只能有一个主键约束,多个外键约束
    B.一个表中最多只有一个外键约束,一个主键约束
    C.在定义主键外键约束时,应该首先定义主键约束,然后定义外键约束
    D.在定义主键外键约束时,应该首先定义外键约束,然后定义主键约束
    5.下列几种情况下,不适合创建索引的是( A )。
    A.列的取值范围很小
    B.用作查询条件的列
    C.频繁搜索范围的列
    D.连接中频繁使用的列
    6.CREATE UNIQUE INDEX writer_index ON 作者信息(作者编号)语句创建了一个( A )索引。
    A.唯一索引
    B.全文索引
    C.主键索引
    D.普通索引
    7.建立索引的目的是( D )。
    A.降低MySQL数据检索的速度
    B.与MySQL数据检索的速度无关
    C.加快数据库的打开速度
    D.提高MySQL数据检索的速度
    8.创建索引的命令是( D )。
    A.create trigger
    B.create procedure
    C.create function
    D.create index
    9.索引只能创建在CHAR、VARCHAR或者TEXT类型的字段上,称之为( C )。
    A.主索引
    B.唯一性索引
    C.全文索引
    D.哈希索引
    10.下面关于唯一性索引描述不正确的是( A )。
    A.某列创建了唯一索引则这一列为主键
    B.不允许插入重复的列值
    C.某列创建为主键,则该列会自动创建唯一索引
    D.一个表中可以有多个唯一索引
    11.某数据表已经将列F定义为主关键字,则以下说法中错误的是( A )。
    A.列F的数据是有序排列的
    B.列F的数据在整个数据表中是唯一存在的
    C.不能再给数据表其它列建立主键
    D.当为其它列建立普通索引时,将导致此数据表的记录重新排列
    12.以下关于数据库完整性描述不正确的是( D )。
    A.数据应随时可以被更新
    B.表中的主键的值不能为空
    C.数据的取值应在有效范围内
    D.一个表的值若引用其它表的值,应使用外键进行关联
    13.下面关于默认值的描述,正确的是( D )。
    A.表中添加新列时,如果没有指明值,可以使用默认值
    B.可以绑定到表列,也可以绑定到数据类型
    C.可以响应特定时间的操作
    D.以上描述都正确
    14.下列SQL语句中,能够实现实体完整性控制的语句是( B )。
    A.FOREIGN KEY
    B.PRIMARY KEY
    C.REFERENCES
    D.FOREIGN KEY和REFERENCES
    15.关于FOREIGN KEY约束的描述不正确的是( B )。
    A.体现数据库中表之间的关系
    B.实现参照完整性
    C.以其他表PRIMARY KEY约束和UNIQUE约束为前提
    D.每个表中都必须定义
    二、填空题
    1.完整性约束包括 实体 完整性、 域 完整性、参照完整性和用户定义完整性。
    2.索引的类型主要有 FULLTEXT , HASH , BTREE 和 RTREE 。
  2. 域 完整性是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。
  3. 实体 完整性用于保证数据库中数据表的每一个特定实体的记录都是唯一的。
    5.创建和修改表的命令分别是 create table和 alter table。
    6.限制输入到列的值的范围,应使用 检查 约束。
    7.建立和使用 约束 的目的是为了保证数据的完整性。
    8.当在一个表中已存在有PRIMARY KEY约束时,不能再创建 聚集 索引,用CREATE INDEX ID_Index ON Students(身份证)建立的索引为 唯一性 索引。
    9.创建唯一性索引时,应保证创建索引的列不包括重复的数据,并且没有两个或两个以上的空值。如果有这种数据,必须先将其 删除 ,否则索引不能创建成功。
    10.两个表的主关键字和外关键字的数据对应一致,这是属于 引用 完整性,通常可以通过 外键 和 CHECK 约束 来实现。
    三、简答题
  4. 如果表的某一列被指定具有NOT NULL属性,则表示什么?
    MySQL 非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
  5. 什么是数据完整性?完整性有哪些类型?
    数据完整性是指数据的准确性和一致性,它是为防止数据库中存在不符合语义规定的数
    据和因错误信息的输入/输出导致无效操作而提出的。
    在MySQL数据库中,可以通过实体完整性、域完整性、参照完整性和用户自定义完整性
    保证数据的完整性
  6. 简述索引与表的约束之间的关系。
    在MySQL数据库中,可以通过实体完整性、域完整性、参照完整性和用户自定义完整性保证数据的完整性。而实现数据完整性的途径主要就是约束。数据库中的约束包括主键约束、外键约束、唯一约束、检查约束、空值约束和默认值约束等。
    对于唯一约束来说,创建唯一约束的同时会自动创建其对应的索引 而删除其索引则同时删除其约束;
    对于外键约束来说,创建外键约束的同时则不会同时创建其对应的索引 而要删除他则可以通过删除其约束名称进行删除;

四、实训题

  1. 数据类型
    使用MySQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为8、2、20且均不允许为空。
    解答
    create table class( CLASSNO varchar(8) not null, DEPARTNO varchar(2) not null, CLASSNAME varchar(20) not null);

2.现有关系数据库如下:
数据库名:学生成绩数据库
学生表(学号,姓名,性别,民族)
课程表(课程号,课程名称,任课教师)
成绩表(学号,课程号,分数)
用SQL语言实现下列功能:
①创建数据库[学生成绩数据库];
②创建[课程表];
课程表(课号 char(6),名称)
要求使用:主键(课号)、非空(名称)
③创建[学生表];
学生表(学号 char(6),姓名,性别,民族)
要求使用:主键(学号)、默认(民族)、非空(民族,姓名),检查(性别)
④创建[成绩表];
成绩表(学号,课程号,分数)
要求使用:外键(成绩表.学号,成绩表.课程号)、检查(分数)
⑤将下列课程信息添加到课程表中
课号 课程名称
100001 大学语文
100002 大学英语
解答
1.CREATE DATABASE学生成绩数据库;
2.CREATE TABLE 课程表( 课号CHAR(6) NOT NULL,
名称 VARCHAR(20) NOT NULL,
PRIMARY 课号);
3.CREATE TABLE 学生表( 学号CHAR(6) PRIMARY KEY,
姓名 VARCHAR(20) NOT NULL,
性别 CHAR(2) NOT NULL CHECK,
民族 CHAR(2) NOT NULL );
4.CREATE TABLE 成绩表( FOREIGN KEY(学号) REFERENCES 成绩表 (学号),
FOREIGN KEY(课程号) REFERENCES 成绩表 (课程号),
分数 CHAR(3) NOT NULL CHECK);
5.INSERT INTO 课程表(课号,名称) VALUES(‘100001’,‘大学语文’);
INSERT INTO 课程表(课号,名称) VALUES(‘100002’,‘大学英语’);

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
7月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
401 0
|
4月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
664 5
|
6月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
538 10
|
11月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
7月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
203 0
|
10月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
498 28
|
8月前
|
关系型数据库 MySQL
MySQL数据表添加字段(三种方式)
本文解析了数据表的基本概念及字段添加方法。在数据表中,字段是纵向列结构,记录为横向行数据。MySQL通过`ALTER TABLE`指令支持三种字段添加方式:1) 末尾追加字段,直接使用`ADD`语句;2) 首列插入字段,通过`FIRST`关键字实现;3) 指定位置插入字段,利用`AFTER`指定目标字段。文内结合`student`表实例详细演示了每种方法的操作步骤与结构验证,便于理解与实践。
|
11月前
|
存储 SQL 关系型数据库
【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题
**简介**:在MySQL迁移到崖山环境时,若字段类型为char(2),而应用存储的数据仅为'0'或'1',查询时崖山会自动补空格。原因是mysql的sql_mode可能启用了PAD_CHAR_TO_FULL_LENGTH模式,导致保留CHAR类型尾随空格。解决方法是与应用确认数据需求,可将崖山环境中的char类型改为varchar类型以规避补空格问题,适用于所有版本。
|
9月前
|
存储 SQL 缓存
mysql数据引擎有哪些
MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:
257 0