数据库基础:CHAR与VARCHAR类型解析

需积分: 9 60 下载量 120 浏览量 更新于2024-08-22 收藏 2.42MB PPT 举报
"数据库基础知识,包括CHAR和VARCHAR类型的特性,以及数据库设计中的冗余与数据完整性的概念。" 在数据库设计中,数据类型的选择对于存储效率和查询性能有着重要影响。CHAR和VARCHAR是两种常见的字符串数据类型,它们都用于存储文本信息,但处理方式有所不同。CHAR类型具有固定的长度,这个长度范围是0到255个字符。当存储的字符串长度小于指定长度时,MySQL会使用空格填充到指定长度,确保每个记录占用相同的空间。这种方式在存储固定长度的数据,如邮政编码或身份证号码时较为适用,因为它们的长度通常是固定的。 相比之下,VARCHAR类型则更为灵活,它只存储实际的字符数,且额外存储一个字节来记录字符串的长度。这意味着VARCHAR类型在存储变长字符串时更节省空间,尤其对于较短的字符串,不会像CHAR那样用空格填充。然而,如果插入的字符串超过VARCHAR字段的最大长度,超出部分会被截断。因此,VARCHAR适合存储长度变化较大的数据,如用户评论或文章内容。 数据库是组织和存储数据的系统,通常采用关系型数据库模型,其中数据以表格的形式存储,表格之间可能存在关联。数据库可以看作是档案柜,数据表如同抽屉,记录则相当于文件。为了方便数据管理和查询,数据库通常会设计得避免冗余,即同一份数据在数据库中不重复出现多次。冗余可能导致数据更新时的不一致性和维护困难。 数据完整性是数据库设计的核心原则之一,它确保了数据的可靠性、准确性和一致性。数据完整性分为几个类别: 1. 数据实体完整性:确保每个实体(如表中的每条记录)都有一个唯一的标识符,通常通过设置主键来实现。例如,学号在学生表中应是唯一的,不能有重复。 2. 字段完整性:确保每个字段的值符合其数据类型和业务规则,例如,电话号码字段不能包含字母。 3. 引用完整性:当两个表通过外键关联时,确保引用的主键值在被引用的表中存在。例如,订单表中的客户ID应对应于客户表中存在的ID。 4. 自定义完整性:根据具体业务需求设定的其他完整性规则,如年龄必须是0岁以上等。 数据库管理系统提供各种约束来维护这些完整性,如唯一约束(确保字段值的唯一性)、主键约束(定义表的标识列)和标识列(自动递增的主键,常见于SQL Server等数据库系统)。 保持数据完整性对于维护数据库的稳定性和一致性至关重要,因为错误或不一致的数据可能会导致业务决策的失误。在设计数据库时,应充分考虑这些因素,以构建高效、可靠的数据存储系统。

1.  在学生表上创建姓名列的前4个字符的降序索引sno_4_in 2.  在学生表上创建班级列的索引 3.  对课程表进行修改,增加学分列上的升序索引credit_in 4.  创建一个表t1,包含f1,f2,f3列,数据类型分别为int,char,varchar,在创建表时创建f1列的索引。 5.  删除我们4题的索引 6.  用自己的语言描述分区的功能。 7.  创建一张RANGE分区表,包含3个字段,表名及字段名自定义,第一个字段为整数类型,第二个字段为日期类型。以第一个字段为分区依据,分为4个分区。 8.                                                对tb_hash_blog表分区情况进行描述,分区类型是什么,分区依据是什么,分为几个区等等。 9.  创建一个学号,姓名,性别,年龄的视图view_s,按性别统计人数 10. 在学生成绩管理数据库中创建每门课程的平均成绩视图view_c_avg,查询成绩60以下的信息 11. 在学生成绩管理数据库中创建一个每个学生的平均成绩视图view_s_avg,从该视图中查询,平均成绩在85分以上的信息 12. 创建一个学号,姓名,性别,课程号,课程名称,成绩的视图view_sc1,统计每个学生修了多少们课程。 13. 通过视图view_s插入一名学生('2020001','gigi','m',22). 14. 创建课程表的视图view_c,利用该视图给每门课程加一个学分。 15. 利用视图view_c删除学分在5分以上的课程

2023-06-02 上传