1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表

约束条件分为以下几种:

1)非空约束,使用NOT NULL关键字;

2)默认值约束,使用DEFAULT关键字;

3)检查约束,使用CHECK关键字;

4)唯一约束,使用UNIQUE关键字;

5)主键约束,使用PRIMARY KEY关键字;

6)外键约束,使用FOREIGN KEY关键字。

约束是确保数据的完整性,从而阻止不希望插入的数据被录入。

以下使用一段SQL代码进行演示:

USE PersonInfo  --使用PersonInfo数据库
GO

IF EXISTS (SELECT * FROM sys.tables WHERE [name] = 'Employee ')  --如果存在Employee这张表
DROP TABLE Employee  --则删除
GO

IF EXISTS(SELECT * FROM sys.tables WHERE [name] = 'Person')  --如果存在Person这张表
DROP TABLE Person --则删除
GO

CREATE TABLE Person --创建Person(人物)表
(
  --索引
  PersonID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_PersonID PRIMARY KEY,-- 创建一个整型、自增为1、标识种子为1、不允许为空、约束条件为主键约束的列PersonID
  --名字
  Name nvarchar(20) NOT NULL, --创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Name
  --年龄
  Age int NOT NULL  CONSTRAINT CK_Age CHECK (Age >= 18  AND Age<=55) ,--创建一个整型、约束条件为检查约束的列Age
  --性别
  Gender bit NOT NULL CONSTRAINT DF_Gender  DEFAULT(1) , --创建一个类型为bit、默认值为1(True)的列Gender
  --身份信息
  [Identity] nchar(18) NOT NULL CONSTRAINT CK_Identity CHECK(LEN([Identity])=18)  
                                CONSTRAINT  UQ_Identity UNIQUE
  --创建一个非Unicode非固定长度(最多存储18个非Unicode字符)的、约束条件为检查约束的列Identity
)
GO


CREATE TABLE Employee --创建Employee(雇员)表
(
    --索引
    EmployeeID int IDENTITY(1,1001) NOT NULL CONSTRAINT PK_ID PRIMARY KEY, -- 创建一个整型、自增为1、标识种子为1001、不允许为空、约束条件为主键约束的列EmployeeID
    --人物索引 
    PersonID int NOT NULL CONSTRAINT FK_PersonID FOREIGN KEY REFERENCES Person(PersonID),
    --职位 
    Post nvarchar(20) NOT NULL,--创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Post
    --入职时间 
    EntryTime datetime CONSTRAINT DF_EntryTime DEFAULT getdate() --创建一个类型为datetime、默认值为取服务器时间的列EntryTime
)
GO 

结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

SQL Server 学习笔记

之前学过一点数据库但由于一直没有使用忘得差不多了,最近重新复习一下相关的知识,把基本的语法YOU又看了一遍,为了强化记忆在写一遍~~~~~~ ? 基本的 se...

36315
来自专栏码农分享

数据库批量删除

1073
来自专栏程序员宝库

MYSQL 业务上碰到的 SQL 问题整理集合

前言 身为一名前端工程师,对于 SQL了解程度并不是很深刻,盘点一些个人工作遇到的问题,给大家普及下知识,以及记录自己如何解决这些问题的。 导航 SELECT ...

3296
来自专栏跟着阿笨一起玩NET

sql 在not in 子查询有null值情况下经常出现的陷阱

如果下:Table_A表和Table_B表,要求查询出在Table_A表中不在Table_B表中的记录。

1131
来自专栏java达人

有哪些常用的sql语句

首行当然是最基本的增删查改啦,其中最重要的是查。 还有就是一些要注意的地方,就是SQL语句对大小写不敏感,语句中列名对应的值要用单引号''括起来不是双引号。...

18310
来自专栏钟绍威的专栏

当子查询碰上NULLUNIONJOIN总结

情景: 现在有如图两个表,boy和girl,对应着Boy和Girl两个bean,有共同字段id、name,另外boy还有个外键grilfriend(指向girl...

1727
来自专栏Java 源码分析

数据库Exists关键字举例

一.问题描述: 查询所有未选择03号课程的学生的姓名 规定使用存在量词 student表: ? grade表: ? 二.思路: 既然是存在量词那么也就是E...

2796
来自专栏C# 编程

2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件

上一节讲的是直接在创建表的时候添加条件约束,但是有时候是在表格创建完毕之后,再添加条件约束的,那么这个又该如何实现? 其实,跟上一节所写的SQL代码,很多是相同...

2080
来自专栏个人随笔

MySQL常用函数

聚合函数  统计和分析 数据  使用场景:会和分组结合使用 -- 一旦启用分组,只能获取组的信息,组中成员不能出现在select后 count() 查询某个字...

3367
来自专栏Java帮帮-微信公众号-技术文章全总结

【数据库】MySQL进阶六、模糊查询用法

【数据库】MySQL进阶六、 模糊查询用法 javahelp mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可...

47013

扫码关注云+社区