SQL约束详解:主键、外键与数据完整性

需积分: 10 2 下载量 157 浏览量 更新于2024-07-31 收藏 112KB DOC 举报
"本资源主要涵盖了SQL语言中的核心概念,特别是关于数据库表的创建、约束的设定以及基础操作,如创建数据库、删除数据库和备份数据库等。此外,还详细讲解了不同类型的约束,包括主关键字约束、外关键字约束、惟一性约束、检查约束和缺省约束,并提供了创建带有这些约束的表的实例。" 在SQL中,约束是确保数据库数据完整性的重要手段。约束可以限制表中特定列的数据类型、范围或唯一性。SQL Server支持五种主要的约束类型: 1. 主关键字约束(PrimaryKey Constraint):用于标识表中的唯一记录,不允许有重复值,通常用于关联其他表。 2. 外关键字约束(ForeignKey Constraint):建立两个表之间的关联,确保参照完整性,即一个表的值必须存在于另一个表的主键中。 3. 惟一性约束(Unique Constraint):与主键类似,但不要求作为标识,只是确保列中的每个值都是唯一的。 4. 检查约束(Check Constraint):允许设置特定的条件,确保插入或更新的数据满足该条件。 5. 缺省约束(Default Constraint):当未提供值时,列将自动采用预设的默认值。 以下是一些基础的SQL操作示例: 1. 创建数据库: ```sql CREATEDATABASE database-name ``` 2. 删除数据库: ```sql dropdatabasedbname ``` 3. 备份数据库: 首先,创建备份设备: ```sql USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' ``` 然后,执行备份: ```sql BACKUP DATABASE pubs TO testBack ``` 4. 创建新表: ```sql createtabletabname( col1 type1 [not null] [primary key], col2 type2 [not null], ... ) ``` 示例中创建了一个名为`tableok`的表,包含了各种约束的列: - `col1`:无约束的整数列 - `col2_notnull`:非空整数列 - `col3_default`:非空的nchar(1)列,默认值为'男' - `col4_default`:非空的datetime列,默认值为当前系统时间 - `col5_check`:非空的整数列,数据值需在18到55之间 - `col6_check`:非空的nchar(9)列,前7位必须是'msd0902',倒数第二位是0-9中的任意数字,最后一位不能是6-9 - `cola_primary`:非空的nchar(5)列,为主键 通过这些例子,我们可以看到如何利用SQL来构建和管理具有特定约束的数据库表,从而确保数据的准确性和一致性。学习和理解这些基本操作和约束对于任何SQL用户来说都至关重要。