千家信息网

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

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"sql server的建库、建表、建约束技巧",在日常操作中,相信很多人在sql server的建库、建表、建约束技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2026年10月31日sql server的建库、建表、建约束技巧

这篇文章主要介绍"sql server的建库、建表、建约束技巧",在日常操作中,相信很多人在sql server的建库、建表、建约束技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"sql server的建库、建表、建约束技巧"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

--创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建----exists关键字:括号里边能查询到数据则返回'true' 否则返回'false'

if exists(select * from sysdatabases where name = 'School')--exists返回'true'则执行删除数据库操作--drop database School--exists返回'false'则表明数据库不存在,直接创建 create database Schoolon primary(--主数据库文件--name = 'School', --主数据文件逻辑名fileName = 'D:\project\School.mdf', --主数据文件物理逻辑名size = 5MB, --初始值大小maxsize = 100MB, --最大大小filegrowth = 15% --数据文件增长量)log on(--日志文件--name = 'School_log',filename = 'D:\project\School_log.ldf',size = 2MB,filegrowth = 1MB)go

----------------------------------------使用T-SQL创建employee数据库------------------------------------

create database employeeon primary(--主要数据文件--name = 'employee1',filename = 'D:\project\employee1.mdf',size = 10MB,filegrowth = 10%),(--次要数据文件--name = 'employee2',filename = 'D:\project\employee2.ndf',size = 20MB,maxsize = 100MB,filegrowth = 1MB)log on(--第一个日志文件--name = 'employee_log1',filename = 'D:\project\employee_log1.ldf',size = 10MB,filegrowth = 1MB),(--第二个日志文件--name = 'employee_log2',filename = 'D:\project\employee_log2.ldf',size = 10MB,maxsize = 50MB,filegrowth = 1MB)

---------------------------------查询已存在的数据库信息---------------------------

select * from sysdatabases

---------------------------------删除数据库------------------------------------复制代码 代码如下: drop database School

---------------------------------创建Student数据库表----------------------------复制代码 代码如下: --1、选择操作的数据库--use Schoolgo

--判断表是否存在--复制代码 代码如下: if exists(select * from sysobjects where name = 'Student')drop table Student

--2、创建表---

create table Student(--具体的列名 数据类型 列的特征(是否为空)--StudentNo int identity(2,1) not null,LoginPwd nvarchar(20) not null,StudentName nvarchar(20) not null,Sex int not null,GradeId int not null,phone nvarchar(50) not null,BornDate datetime not null,Address nvarchar(255),Email nvarchar(50),IDENTITYcard varchar(18))go

---查看所有数据库对象(数据库表)---复制代码 代码如下: select * from sysobjectsdrop table Student

----------------------创建subject课程表-------------------复制代码 代码如下: -----1、判断表是否存在;若存在则删除再创建,若不存在则直接创建--------if exists(select * from sysobjects where name = 'subject')drop table subjectuse Schoolgo---创建subject课程表--create table subject(SubjectNo int not null identity(1,1),SubjectName nvarchar(50),ClassHour int,GradeID int)

----------------------------------------创建Result成绩表-------------------复制代码 代码如下: -----1、判断表是否存在;若存在则删除再创建,若不存在则直接创建--------if exists(select * from sysobjects where name = 'Result')drop table Resultuse Schoolgo

---创建Result成绩表--复制代码 代码如下: create table Result(StudentNo int not null,SubjectNo int not null,ExamDate Datetime not null,StudentResult int not null)

-----------------------------------------创建Grande年级表-------------------复制代码 代码如下: -----1、判断表是否存在;若存在则删除再创建,若不存在则直接创建--------if exists(select * from sysobjects where name = 'Grade')drop table Gradeuse Schoolgo

---创建Grande年级表--复制代码 代码如下: create table Grade(GradeId int not null,GrandeName nvarchar(50))

-----------------------------------------T-SQL添加约束-------------------------复制代码 代码如下: --给StudentNo添加主键约束---alter table Studentadd constraint pk_StuNo primary key(StudentNo)

--给身份证添加唯一约束--复制代码 代码如下: alter table Studentadd constraint uq_StuIdcard unique(IDENTITYcard)

---给地址address添加默认约束--复制代码 代码如下: alter table Studentadd constraint df_stuaddress default('地址不详') for Address

---删除地址address默认约束---复制代码 代码如下: alter table Studentdrop constraint df_stuaddress

----------出生日期添加检查约束--------复制代码 代码如下: alter table Studentadd constraint ck_stuBorndate check(Borndate > '1980-01-01')

---------与Grand(年级表)建立主外键关系--------

--1、添加Grade主键(操作Grade)---复制代码 代码如下: alter table Gradeadd constraint pk_graid primary key(GradeId)

--2、添加Grade外键(操作Student)--复制代码 代码如下: alter table Studentadd constraint fk_stuGradeID foreign key(GradeId) references Grade(GradeId)

-------------------给subject课程表添加约束-----------------------

复制代码 代码如下: ----给subjectNo列添加主键约束------alter table subjectadd constraint pk_SubID primary key(SubjectNo)

------给课程名称subjectName添加非空约束;-----复制代码 代码如下: -----with nocheck:已经存在数据不通过check约束-------alter table subject with nocheckadd constraint ck_subName check(SubjectName is not null)

-----学时必须大于0-----复制代码 代码如下: alter table subject with nocheckadd constraint ck_ClassHour check(ClassHour > 0)

-----与Grade年级表添加主外键约束----复制代码 代码如下: alter table subject with nocheckadd constraint fk_GradeID foreign key(GradeID)references Grade(GradeID)

----------给result成绩表添加约束------------

-------添加多个约束---------复制代码 代码如下: alter table Resultadd constraint pk_No_subID_date primary key(StudentNo,SubjectNo,ExamDate),constraint df_examdate default(getdate()) for ExamDate,constraint ck_StudentResult check(StudentResult between 0 and 100),constraint fk_StuNo foreign key(StudentNo) references Student(StudentNo),constraint fk_subNo foreign key(SubjectNo) references Subject(SubjectNo)

--删除多个约束--复制代码 代码如下: alter table Resultdrop constraint pk_No_subID_date,fk_subNo,fk_StuNo,ck_StudentResult,df_examdate

--------更改列的数据类型----------复制代码 代码如下: alter table Resultalter column StudentResult int

到此,关于"sql server的建库、建表、建约束技巧"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

代码 数据 数据库 文件 技巧 年级 课程 学习 地址 成绩 日志 课程表 多个 大小 更多 类型 逻辑 帮助 查询 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 互联网科技工作委员会毛军 西安互联网科技 互联网金融科技平台 奇士达互联网科技 有木互联网科技 北京华百购互联网科技有限公司 岳阳华臻互联网科技有限公司 崇明区互联网教育科技诚信经营 辽宁互联网新科技 民营互联网公司国防科技 互联网新科技动漫ppt素材 阿里互联网科技企业 互联网安防科技感 上海互联网科技公司ppt 互联网高科技行业有哪些企业 互联网科技平台产品运营 上海旺乐尼互联网科技有限公司 恒生互联网科技趋势 互联网的黑科技实验室 瑰夏咖啡 中国互联网科技工作委员会毛军 兼蜜互联网科技 火传媒上海互联网科技 顶级互联网科技成果有哪些 哈尔滨屹滨互联网科技有限公司 中国互联网公司排名锤子科技 互联网科技大赛获奖感言 广州梦谷互联网科技有限公司领导 江苏互联网智能科技产品出厂价
0