数据库实践:SQL完整性约束与默认值实验

需积分: 14 4 下载量 77 浏览量 更新于2024-09-02 收藏 103KB DOCX 举报
“sql数据库实践实验五 - 数据库完整性与声明式约束、默认约束及数据库设计” 在本实验中,我们探讨了SQL数据库实践中的一个重要方面,即如何通过声明性方式来确保数据的完整性和一致性。实验主要围绕以下几个知识点展开: 1. **检查约束(CHECK约束)**:这是数据库设计中用于限制列值范围的一种机制。例如,在学生表上创建的"Enter_University_date_rule"约束确保了学生的入学日期不能早于学校创建日期(1923年4月30日),也不能晚于当前日期。这有助于防止不合理的数据录入,维护历史准确性。 创建入学日期约束的SQL语句可能如下: ```sql ALTER TABLE student ADD CONSTRAINT Enter_University_date_rule CHECK (enter_date >= '1923-04-30' AND enter_date <= CURRENT_DATE); ``` 2. **年龄、性别和成绩约束**:除了入学日期,还有其他约束确保数据的合理性。"Age_rule"确保学生年龄在15到30岁之间,"Sex_rule"限制性别只能为"男"或"女","Score_rule"规定学生成绩在0到100之间。这些可以通过类似的`ALTER TABLE`语句添加。 3. **默认约束(DEFAULT约束)**:当插入新记录时,如果没有为某个字段提供值,系统会自动使用默认值。例如,创建一个名为"default_example"的表,为"sex"设置默认值为"男","age"设置默认值为18。创建和修改默认约束的SQL语句可能如下: - 创建表: ```sql CREATE TABLE default_example ( pid INT PRIMARY KEY, name VARCHAR(50), sex CHAR(1) DEFAULT '男', age INT DEFAULT 18 ); ``` - 插入记录: ```sql INSERT INTO default_example (pid) VALUES (100); ``` - 修改默认值: ```sql ALTER TABLE default_example DROP CONSTRAINT df_age; ALTER TABLE default_example ADD CONSTRAINT df_age DEFAULT 19 FOR age; ``` 4. **主键、外键、唯一值和检查约束**:在"学生管理数据库"中,主键用于标识每个表的唯一记录,外键则建立了表之间的关系,允许级联删除和更新。"唯一值"约束保证了字段的唯一性,而"check"约束如"年龄必须是两位数,且第一位是1或2"可以这样创建: ```sql ALTER TABLE students ADD CONSTRAINT Age_check CHECK (length(age) = 2 AND (age BETWEEN 10 AND 29)); ``` 删除这样的check约束通常用`ALTER TABLE`语句配合`DROP CONSTRAINT`子句完成。 这个实验提供了一个全面的视角,涵盖了SQL数据库设计的关键元素,包括数据完整性、约束和默认值,以及如何通过SQL语句进行操作和管理。通过实践这些操作,我们可以更好地理解和应用数据库理论到实际项目中。