sql server建库、建表、建约束技巧

yizhihongxing

建库、建表、建约束是关系型数据库设计中非常重要的一部分,下面是SQL Server建库、建表、建约束的完整攻略。

一、建库

  1. 打开SQL Server Management Studio(SSMS)。
  2. 在对象资源管理器中,右键单击“数据库”并选择“新建数据库”。
  3. 在“新建数据库”对话框中,输入数据库的名称、所属的文件组、数据文件和日志文件的路径等信息。
  4. 点击“OK”按钮创建数据库。

二、建表

  1. 在SSMS中,选择要创建表的数据库。
  2. 右键单击数据库,选择“新建查询”。
  3. 在查询编辑器中输入建表的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。

  1. 点击“执行”按钮创建表。

三、建约束

约束是用于保证数据完整性的一种机制,它限制了表中某些列或行的取值范围。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”的表。

  1. 在SSMS中,右键单击“数据库”并选择“新建数据库”。
  2. 在“新建数据库”对话框中,输入数据库的名称“Sales”并点击“OK”按钮。
  3. 在对象资源管理器中,展开“Sales”数据库并右键单击“表”节点,选择“新建表”。
  4. 在“设计”界面中,输入表的结构,例如:
列名 数据类型 约束
CustomerID INT 主键
CompanyName NVARCHAR(50) 非空
ContactName NVARCHAR(50)
Phone NVARCHAR(20)
  1. 保存表并退出“设计”界面即可完成建表操作。

示例二(建约束)

假设我们要在“Sales”数据库中的“Customers”表上添加一个检查约束,要求CreditLimit列的值必须大于等于0。

  1. 在SSMS中,选择“Sales”数据库。
  2. 在查询编辑器中输入如下SQL语句:
ALTER TABLE [dbo].[Customers]
ADD CONSTRAINT [CHK_Customers_CreditLimit] CHECK ([CreditLimit] >= 0)
  1. 点击“执行”按钮保存并执行该SQL语句即可添加检查约束。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sql server建库、建表、建约束技巧 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 100道淘宝运营题仅答对53道,我炒掉了我的运营!

    100道淘宝运营题攻略 淘宝运营已成为电商企业必不可少的一部分,做好淘宝运营需要不断的学习和实践。以下是淘宝运营攻略,为了帮助大家更好更快地提升淘宝运营能力,避免“炒掉”的命运。 一、正确对待淘宝运营题 淘宝运营题呈现的是场景,实际上是为了考察淘宝运营的思路和方法。在做题前,我们需要了解淘宝运营的基础知识和技能,例如店铺搭建、商品规划、页面美化、活动策划等。…

    database 2023年5月19日
    00
  • CentOS 离线安装gcc(版本4.8.2)详细介绍

    以下是详细讲解 CentOS 离线安装gcc(版本4.8.2)的完整攻略: 需要下载的软件包 在进行离线安装 GCC 时,我们需要下载以下软件包: GCC 4.8.2 源码包:可以在 ftp://ftp.gnu.org/pub/gnu/gcc/ 下载,选择 gcc-4.8.2.tar.gz 下载。 GMP、MPFR、MPC 库:这三个库是 GCC 构建过程中…

    database 2023年5月22日
    00
  • Oracle如何查看impdp正在执行的内容

    查看正在执行的import进度 可以通过查询v$session_longops视图来查看正在执行的impdp进度。 具体操作步骤如下: 首先,打开Oracle客户端,使用sqlplus连接到Oracle数据库。 然后,执行以下SQL脚本: SELECT sid, opname, target, sofar, totalwork, units, elapsed…

    database 2023年5月22日
    00
  • Python 如何操作 SQLite 数据库

    让我们来详细讲解下 Python 如何操作 SQLite 数据库的完整攻略。 简介 SQLite 是一种轻量级的关系型数据库,可以嵌入到各种应用程序中,支持多种操作系统,是移动应用和桌面应用的理想选择。Python 代码就可以操作 SQLite 数据库,无需像 MySQL, PostgreSQL 这样的数据库一样需要一个服务进程。本文将讲解如何通过 Pyth…

    database 2023年5月21日
    00
  • 渗透测试信息收集之常用端口信息

    渗透测试信息收集之常用端口信息 在渗透测试的过程中,信息收集是至关重要的一步。其中,根据目标主机所开放的端口信息来推断其所运行的服务,是信息收集的一个重要环节。本文将讲述一些常见的端口信息收集攻略,以供参考。 常用端口信息查询 nmap 信息收集 nmap是一款常用的端口信息扫描工具。通过输入命令nmap -sS -sV -p- target_ip,nmap…

    database 2023年5月22日
    00
  • mysql执行时间为负数的原因分析

    以下是详细讲解“mysql执行时间为负数的原因分析”的完整攻略: 什么是mysql执行时间? 在MySQL中,执行时间指的是查询或者其他数据库操作所花费的时间。MySQL会记录每个执行操作所花费的时间,并在查询日志中输出。 什么情况下mysql执行时间会为负数? 在一些情况下,MySQL的执行时间可能会显示为负数,这种情况往往会造成困扰。但实际上,这些负数时…

    database 2023年5月22日
    00
  • SQL查询语句通配符与ACCESS模糊查询like的解决方法

    下面是SQL查询语句通配符与ACCESS模糊查询like的解决方法的完整攻略: 1. SQL查询语句通配符 在SQL中,通配符是搜索匹配模式中用来替代字符的特殊字符。通配符可用于建立模式搜索的条件。常用的SQL通配符有以下两种: %:代表任意字符出现任意次数。例如,”S%”可以匹配”The Shawshank Redemption”, “Saving Pri…

    database 2023年5月21日
    00
  • MySQL 数据类型详情

    MySQL 数据类型详情 MySQL 数据库支持多种数据类型,不同的数据类型有不同的存储大小和格式。正确地选择数据类型可以提高数据库内存使用效率和查询效率。 什么是MySQL数据类型? 简单来说,数据类型是用来对存储数据类型进行分类的。在 MySQL 数据库中,每列属性均有其数据类型,在创建表时需要设置相应的数据类型。 数据类型根据存储的数据分为三类:数值类…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部