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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 进行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’,‘大学英语’);

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
256 0
|
2月前
|
存储 关系型数据库 MySQL
阿里面试:为什么要索引?什么是MySQL索引?底层结构是什么?
尼恩是一位资深架构师,他在自己的读者交流群中分享了关于MySQL索引的重要知识点。索引是帮助MySQL高效获取数据的数据结构,主要作用包括显著提升查询速度、降低磁盘I/O次数、优化排序与分组操作以及提升复杂查询的性能。MySQL支持多种索引类型,如主键索引、唯一索引、普通索引、全文索引和空间数据索引。索引的底层数据结构主要是B+树,它能够有效支持范围查询和顺序遍历,同时保持高效的插入、删除和查找性能。尼恩还强调了索引的优缺点,并提供了多个面试题及其解答,帮助读者在面试中脱颖而出。相关资料可在公众号【技术自由圈】获取。
|
2月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
60 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
2月前
|
关系型数据库 MySQL 数据库
mysql 里创建表并插入数据
【10月更文挑战第5天】
149 1
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
54 3
|
6天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
36 6
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
141 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
18天前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
23天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
63 14