文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

这篇文章主要介绍“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的建库、建表、建约束技巧”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯