溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

sql server的建庫、建表、建約束技巧

發(fā)布時(shí)間:2021-08-25 18:52:44 來源:億速云 閱讀:134 作者:chen 欄目:數(shù)據(jù)庫

這篇文章主要介紹“sql server的建庫、建表、建約束技巧”,在日常操作中,相信很多人在sql server的建庫、建表、建約束技巧問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”sql server的建庫、建表、建約束技巧”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

--創(chuàng)建School數(shù)據(jù)庫之前:首先判斷數(shù)據(jù)庫是否存在,若存在則刪除后再創(chuàng)建,若不存在則創(chuàng)建----exists關(guān)鍵字:括號里邊能查詢到數(shù)據(jù)則返回‘true' 否則返回‘false'

if exists(select * from sysdatabases where name = 'School')--exists返回‘true'則執(zhí)行刪除數(shù)據(jù)庫操作--drop database School--exists返回‘false'則表明數(shù)據(jù)庫不存在,直接創(chuàng)建 create database Schoolon primary(--主數(shù)據(jù)庫文件--name = 'School', --主數(shù)據(jù)文件邏輯名fileName = 'D:\project\School.mdf', --主數(shù)據(jù)文件物理邏輯名size = 5MB, --初始值大小maxsize = 100MB, --最大大小filegrowth = 15% --數(shù)據(jù)文件增長量)log on(--日志文件--name = 'School_log',filename = 'D:\project\School_log.ldf',size = 2MB,filegrowth = 1MB)go

----------------------------------------使用T-SQL創(chuàng)建employee數(shù)據(jù)庫------------------------------------

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

---------------------------------查詢已存在的數(shù)據(jù)庫信息---------------------------

select * from sysdatabases

---------------------------------刪除數(shù)據(jù)庫------------------------------------復(fù)制代碼 代碼如下: drop database School

---------------------------------創(chuàng)建Student數(shù)據(jù)庫表----------------------------復(fù)制代碼 代碼如下: --1、選擇操作的數(shù)據(jù)庫--use Schoolgo

--判斷表是否存在--復(fù)制代碼 代碼如下: if exists(select * from sysobjects where name = 'Student')drop table Student

--2、創(chuàng)建表---

create table Student(--具體的列名 數(shù)據(jù)類型 列的特征(是否為空)--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

---查看所有數(shù)據(jù)庫對象(數(shù)據(jù)庫表)---復(fù)制代碼 代碼如下: select * from sysobjectsdrop table Student

----------------------創(chuàng)建subject課程表-------------------復(fù)制代碼 代碼如下: -----1、判斷表是否存在;若存在則刪除再創(chuàng)建,若不存在則直接創(chuàng)建--------if exists(select * from sysobjects where name = 'subject')drop table subjectuse Schoolgo---創(chuàng)建subject課程表--create table subject(SubjectNo int not null identity(1,1),SubjectName nvarchar(50),ClassHour int,GradeID int)

----------------------------------------創(chuàng)建Result成績表-------------------復(fù)制代碼 代碼如下: -----1、判斷表是否存在;若存在則刪除再創(chuàng)建,若不存在則直接創(chuàng)建--------if exists(select * from sysobjects where name = 'Result')drop table Resultuse Schoolgo

---創(chuàng)建Result成績表--復(fù)制代碼 代碼如下: create table Result(StudentNo int not null,SubjectNo int not null,ExamDate Datetime not null,StudentResult int not null)

-----------------------------------------創(chuàng)建Grande年級表-------------------復(fù)制代碼 代碼如下: -----1、判斷表是否存在;若存在則刪除再創(chuàng)建,若不存在則直接創(chuàng)建--------if exists(select * from sysobjects where name = 'Grade')drop table Gradeuse Schoolgo

---創(chuàng)建Grande年級表--復(fù)制代碼 代碼如下: create table Grade(GradeId int not null,GrandeName nvarchar(50))

-----------------------------------------T-SQL添加約束-------------------------復(fù)制代碼 代碼如下: --給StudentNo添加主鍵約束---alter table Studentadd constraint pk_StuNo primary key(StudentNo)

--給身份證添加唯一約束--復(fù)制代碼 代碼如下: alter table Studentadd constraint uq_StuIdcard unique(IDENTITYcard)

---給地址address添加默認(rèn)約束--復(fù)制代碼 代碼如下: alter table Studentadd constraint df_stuaddress default('地址不詳') for Address

---刪除地址address默認(rèn)約束---復(fù)制代碼 代碼如下: alter table Studentdrop constraint df_stuaddress

----------出生日期添加檢查約束--------復(fù)制代碼 代碼如下: alter table Studentadd constraint ck_stuBorndate check(Borndate > '1980-01-01')

---------與Grand(年級表)建立主外鍵關(guān)系--------

--1、添加Grade主鍵(操作Grade)---復(fù)制代碼 代碼如下: alter table Gradeadd constraint pk_graid primary key(GradeId)

--2、添加Grade外鍵(操作Student)--復(fù)制代碼 代碼如下: alter table Studentadd constraint fk_stuGradeID foreign key(GradeId) references Grade(GradeId)

-------------------給subject課程表添加約束-----------------------

復(fù)制代碼 代碼如下: ----給subjectNo列添加主鍵約束------alter table subjectadd constraint pk_SubID primary key(SubjectNo)

------給課程名稱subjectName添加非空約束;-----復(fù)制代碼 代碼如下: -----with nocheck:已經(jīng)存在數(shù)據(jù)不通過check約束-------alter table subject with nocheckadd constraint ck_subName check(SubjectName is not null)

-----學(xué)時(shí)必須大于0-----復(fù)制代碼 代碼如下: alter table subject with nocheckadd constraint ck_ClassHour check(ClassHour > 0)

-----與Grade年級表添加主外鍵約束----復(fù)制代碼 代碼如下: alter table subject with nocheckadd constraint fk_GradeID foreign key(GradeID)references Grade(GradeID)

----------給result成績表添加約束------------

-------添加多個(gè)約束---------復(fù)制代碼 代碼如下: 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)

--刪除多個(gè)約束--復(fù)制代碼 代碼如下: alter table Resultdrop constraint pk_No_subID_date,fk_subNo,fk_StuNo,ck_StudentResult,df_examdate

--------更改列的數(shù)據(jù)類型----------復(fù)制代碼 代碼如下: alter table Resultalter column StudentResult int

到此,關(guān)于“sql server的建庫、建表、建約束技巧”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI