数据库实践:SQL完整性约束与默认值实验
需积分: 14 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语句进行操作和管理。通过实践这些操作,我们可以更好地理解和应用数据库理论到实际项目中。
174 浏览量
214 浏览量
2011-04-08 上传
1912 浏览量
101 浏览量
1690 浏览量
2022-06-29 上传
984 浏览量
昵C弟
- 粉丝: 83
- 资源: 6
最新资源
- jspm-sample.tk:示例 jspm 应用程序 - 使用 angular 开发到生产流程
- 解析玩具:解析玩具
- 理财管理信息系统.rar
- Tampermonkey-Scripts
- 外语培训机构信息网页模板
- spideForm:动态HTML 5画布,用于创建显示表单的图形
- e-indicacao-fe
- StereoCorrespondenceGC:使用图切割技术实现立体对应
- parameterized-reporting-presentation
- TrackerUI
- ReactTemplate.zip
- 小度wifi、360wifi、MiWifi、wifibao_MacOS-15可用.zip
- replaceall:替换 JavaScript 字符串中的所有实例
- 扇贝学习工具-crx插件
- Base32-Module:用于与Base10相互转换的Base32Module
- hss-urlmeme:轻松将图像发布到HSS聊天室