建库、建表、建约束是关系型数据库设计中非常重要的一部分,下面是SQL Server建库、建表、建约束的完整攻略。
一、建库
- 打开SQL Server Management Studio(SSMS)。
- 在对象资源管理器中,右键单击“数据库”并选择“新建数据库”。
- 在“新建数据库”对话框中,输入数据库的名称、所属的文件组、数据文件和日志文件的路径等信息。
- 点击“OK”按钮创建数据库。
二、建表
- 在SSMS中,选择要创建表的数据库。
- 右键单击数据库,选择“新建查询”。
- 在查询编辑器中输入建表的SQL语句,例如:
CREATE TABLE [dbo].[Products] (
[ProductID] INT NOT NULL PRIMARY KEY,
[ProductName] NVARCHAR(50) NOT NULL,
[UnitPrice] MONEY NOT NULL,
[UnitsInStock] SMALLINT NOT NULL
)
上述SQL语句创建了一个名为“Products”的表,包括四个字段:ProductID、ProductName、UnitPrice和UnitsInStock。
- 点击“执行”按钮创建表。
三、建约束
约束是用于保证数据完整性的一种机制,它限制了表中某些列或行的取值范围。SQL Server中有多种类型的约束,如下所示:
1. 主键约束
主键约束是一种特殊的唯一约束,用于唯一标识表中的每一行。主键约束要求被约束的列的每个值都唯一并且不能为NULL。例如:
ALTER TABLE [dbo].[Products]
ADD CONSTRAINT [PK_Products] PRIMARY KEY ([ProductID])
上述SQL语句为“Products”表添加了一个名为“PK_Products”的主键约束,它唯一标识了ProductID列。
2. 外键约束
外键约束是用于保持表之间完整性的一种约束。它将一个表的列与另一个表的主键、唯一约束或主键的一部分相关联。外键约束要求子表的外键列引用了父表的主键或唯一约束列。例如:
ALTER TABLE [dbo].[Orders]
ADD CONSTRAINT [FK_Orders_Products] FOREIGN KEY ([ProductID]) REFERENCES [dbo].[Products]([ProductID])
上述SQL语句为“Orders”表添加了一个名为“FK_Orders_Products”的外键约束,它将Orders表的ProductID列与Products表的ProductID列相关联,以保证订单中选择的产品一定是存在的。
3. 检查约束
检查约束是一种用于限制列中取值范围的约束。它要求列中的值满足一定的逻辑条件。例如:
ALTER TABLE [dbo].[Customers]
ADD CONSTRAINT [CHK_Customers_CreditLimit] CHECK ([CreditLimit] >= 0)
上述SQL语句为“Customers”表添加了一个名为“CHK_Customers_CreditLimit”的检查约束,它要求CreditLimit列的值必须大于等于0。
四、示例说明
示例一(建库、建表)
假设我们要创建一个名为“Sales”的数据库,并在其中创建一个名为“Customers”的表。
- 在SSMS中,右键单击“数据库”并选择“新建数据库”。
- 在“新建数据库”对话框中,输入数据库的名称“Sales”并点击“OK”按钮。
- 在对象资源管理器中,展开“Sales”数据库并右键单击“表”节点,选择“新建表”。
- 在“设计”界面中,输入表的结构,例如:
列名 | 数据类型 | 约束 |
---|---|---|
CustomerID | INT | 主键 |
CompanyName | NVARCHAR(50) | 非空 |
ContactName | NVARCHAR(50) | |
Phone | NVARCHAR(20) |
- 保存表并退出“设计”界面即可完成建表操作。
示例二(建约束)
假设我们要在“Sales”数据库中的“Customers”表上添加一个检查约束,要求CreditLimit列的值必须大于等于0。
- 在SSMS中,选择“Sales”数据库。
- 在查询编辑器中输入如下SQL语句:
ALTER TABLE [dbo].[Customers]
ADD CONSTRAINT [CHK_Customers_CreditLimit] CHECK ([CreditLimit] >= 0)
- 点击“执行”按钮保存并执行该SQL语句即可添加检查约束。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sql server建库、建表、建约束技巧 - Python技术站