共计 4916 个字符,预计需要花费 13 分钟才能阅读完成。
这篇文章主要介绍“sql server 的建库、建表、建约束技巧”,在日常操作中,相信很多人在 sql server 的建库、建表、建约束技巧问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sql server 的建库、建表、建约束技巧”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
– 创建 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 的建库、建表、建约束技巧”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!