第六章、数据完整性控制——(SQL SEVER 2017)

本文介绍了数据库中的数据完整性概念及其分类,包括实体完整性、域完整性、参照完整性和用户定义完整性,并详细解释了各种约束如主键约束、唯一约束等的作用及应用实例。

数据完整性是指数据的精确性和可靠性,主要应用于保证数据库中数据的质量。为了防止数据库中存在不符合语义规定的数据。
数据完整性分为四类:
        实体完整性(保证表中每一行数据在表中是唯一的)、
        域完整性(保证列的值的有效性和正确性(CHECK约束、DEFAULT约束、NOT NULL 约束))、
        参照完整性(表之间,多个表数据的一致性与更新的同步性)、
        用户定义完整性。

约束就是限制,定义约束就是定义限制条件。
        1.主键约束(PRIMARY KEY)
        2.唯一约束(UNIQUE)
        3.外键约束(FOREIGN KEY)
        4.检查约束(CHECK)
        5.默认约束(DEFAULT)
        6.非空约束(NOT NULL)


创建多列组合主键

USE 学生成绩
GO 
CREATE TABLE 期末成绩表
(CONSTRAINT PK_期末成绩 PRIMARY KEY(班级编号,课程编号),   --创建多个列组合的主键约束,采用表级约束,这里班级编号和课程编号值是唯一的
	学号 char(8) NOT NULL,
	班级编号 char(2) NOT NULL,
	课程编号 char (8) NOT NULL,
	成绩  decimal(4,1) NULL)
GO

        上面的代码创建了期末成绩表,执行代码以后,右键表,然后刷新。然后会更新期末成绩表。其中班级编号,课程编号是PRIMARY KEY约束 不允许输入重复值。
             这里插入了两行数据进去,便于后面检测主键的功能。
            1.新建查询
USE 学生成绩
GO 
	INSERT INTO 期末成绩表(班级编号,课程编号,学号,成绩)
		VALUES ('01','001','0000011','91')
GO

               2.执行上面的代码,向表中插入一行数据,其中班级编号和课程编号与表中现有的数据重复,执行代码。
   

                提示不能输入重复值。
(博客是自己学习笔记,不喜勿喷。)

SQL Server 定义表是在数据库中创建一个逻辑结构,用于存储数据的一种方式。它通常包含列(字段),每个列代表特定的数据类型,并有相应的名字。创建表的基本语法如下: ```sql CREATE TABLE table_name ( column1 datatype, column2 datatype, ..., constraint_name constraint_type (column_name) ); ``` 例如,你可以创建一个名为`Employees`的员工表,其中包含`ID`, `Name`, `Position`等列。 数据完整性约束是为了保证数据的质量和一致性。SQL Server支持多种类型的约束: 1. **主键约束**(PRIMARY KEY):用于唯一标识一行数据,不允许有重复值也不允许为NULL。 2. **唯一约束**(UNIQUE):允许表中的某列或一组列组合存在唯一的值,但可以有一个NULL值。 3. **外键约束**(FOREIGN KEY):确保引用其他表中的数据,维护关联表之间的引用完整性和参照完整性。 4. **检查约束**(CHECK):应用一个条件,只有当该条件满足时,记录才允许插入或更新。 5. **默认约束**(DEFAULT):为列提供一个预设的默认值,如果插入时不指定,则使用这个默认值。 在创建表时添加约束,如: ```sql CREATE TABLE Employees ( ID INT PRIMARY KEY, Name VARCHAR(50) NOT NULL, Position VARCHAR(50), DepartmentID INT FOREIGN KEY REFERENCES Departments(DepartmentID) ); ``` 在这个例子中,`DepartmentID`列的外键约束确保它只接受存在于`Departments`表中存在的部门ID。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值