MySQL数据库设计和数据表建立实践

需积分: 5 1 下载量 181 浏览量 更新于2024-08-03 收藏 36KB DOC 举报
MySQL面试题及答案 **数据库设计** 在 MySQL 中,创建数据库的基本语法为 `CREATE DATABASE database_name;`,其中 `database_name` 是要创建的数据库的名称。在给定的文件中,创建了一个名为 `school` 的数据库。 **数据表设计** 在 MySQL 中,创建数据表的基本语法为 `CREATE TABLE table_name (column1 datatype, column2 datatype, ...);`,其中 `table_name` 是要创建的表的名称,`column1`、`column2` 等是表中的列,`datatype` 是每列的数据类型。 在给定的文件中,创建了四个数据表:`Student`、`Course`、`Score` 和 `Teacher`。 **Student 表** `Student` 表用于存储学生信息,包括: * `Sno`:学生编号,类型为 `varchar(20)`,不能为空 * `Sname`:学生姓名,类型为 `varchar(20)`,不能为空 * `Ssex`:学生性别,类型为 `varchar(20)`,不能为空 * `Sbirthday`:学生出生日期,类型为 `datetime` * `Class`:学生班级,类型为 `varchar(20)` **Course 表** `Course` 表用于存储课程信息,包括: * `Cno`:课程号,类型为 `varchar(20)`,不能为空 * `Cname`:课程名称,类型为 `varchar(20)`,不能为空 * `Tno`:教工编号,类型为 `varchar(20)`,不能为空 **Score 表** `Score` 表用于存储学生的成绩信息,包括: * `Sno`:学生编号,类型为 `varchar(20)`,不能为空 * `Cno`:课程号,类型为 `varchar(20)`,不能为空 * `Degree`:成绩,类型为 `DECIMAL(4,1)` **Teacher 表** `Teacher` 表用于存储教师信息,包括: * `Tno`:教工编号,类型为 `varchar(20)`,不能为空 * `Tname`:教工姓名,类型为 `varchar(20)`,不能为空 * `Tsex`:教工性别,类型为 `varchar(20)`,不能为空 * `Tbirthday`:教工出生日期,类型为 `datetime` * `Prof`:职称,类型为 `varchar(20)` * `Depart`:教工所在部门,类型为 `varchar(20)` **数据插入** 在给定的文件中,使用 `INSERT INTO` 语句将数据插入到 `Student` 表中。例如,插入一条学生记录的语句为 `INSERT INTO Student VALUES (108, '曾华', '男', '1977-09-01', 95033);`。 **数据库 normalization** 在数据库设计中, normalization 是一个非常重要的概念。 normalization 的目的是将数据分解成更小、更简单的表,以减少数据冗余和提高数据的一致性。 在给定的文件中,四个数据表之间存在着一定的关系: * 一个学生可以选择多个课程(`Score` 表) * 一个课程只能对应一个教师(`Course` 表) * 一个教师可以任教多个课程(`Course` 表) 这些关系可以通过建立索引和约束来维护数据的一致性和完整性。 **索引和约束** 索引是数据库中的一种数据结构,可以提高查询速度。约束是数据库中的一种规则,可以确保数据的一致性和完整性。 在给定的文件中,可以建立索引和约束来维护数据的一致性和完整性。例如,可以在 `Student` 表的 `Sno` 列上建立一个唯一索引,以确保每个学生的编号唯一。又可以在 `Course` 表的 `Cno` 列上建立一个唯一索引,以确保每个课程的编号唯一。 这些知识点都是 MySQL 面试中常见的问题,掌握这些知识点对数据库设计和开发非常重要。