人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

sql server建庫(kù)、建表、建約束技巧

發(fā)布日期:2021-12-24 15:54 | 文章來(lái)源:站長(zhǎng)之家

下面給大家分享下sql server建庫(kù)、建表、建約束技巧,下文介紹有文字有代碼。

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

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

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

create database employee
on 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ù)庫(kù)信息---------------------------

select * from sysdatabases

---------------------------------刪除數(shù)據(jù)庫(kù)------------------------------------

復(fù)制代碼 代碼如下:

drop database School

---------------------------------創(chuàng)建Student數(shù)據(jù)庫(kù)表----------------------------

復(fù)制代碼 代碼如下:

--1、選擇操作的數(shù)據(jù)庫(kù)--
use School
go

--判斷表是否存在--

復(fù)制代碼 代碼如下:

if exists(select * from sysobjects where name = 'Student')
drop table Student

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

create table Student
(
--具體的列名 數(shù)據(jù)類(lèi)型 列的特征(是否為空)--
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ù)庫(kù)對(duì)象(數(shù)據(jù)庫(kù)表)---

復(fù)制代碼 代碼如下:

select * from sysobjects
drop table Student

----------------------創(chuàng)建subject課程表-------------------

復(fù)制代碼 代碼如下:

-----1、判斷表是否存在;若存在則刪除再創(chuàng)建,若不存在則直接創(chuàng)建--------
if exists(select * from sysobjects where name = 'subject')
drop table subject

use School
go

---創(chuàng)建subject課程表--
create table subject
(
SubjectNo int not null identity(1,1),
SubjectName nvarchar(50),
ClassHour int,
GradeID int
)

----------------------------------------創(chuàng)建Result成績(jī)表-------------------

復(fù)制代碼 代碼如下:

-----1、判斷表是否存在;若存在則刪除再創(chuàng)建,若不存在則直接創(chuàng)建--------
if exists(select * from sysobjects where name = 'Result')
drop table Result
use School
go

---創(chuàng)建Result成績(jī)表--

復(fù)制代碼 代碼如下:

create table Result
(
StudentNo int not null,
SubjectNo int not null,
ExamDate Datetime not null,
StudentResult int not null
)

-----------------------------------------創(chuàng)建Grande年級(jí)表-------------------

復(fù)制代碼 代碼如下:

-----1、判斷表是否存在;若存在則刪除再創(chuàng)建,若不存在則直接創(chuàng)建--------
if exists(select * from sysobjects where name = 'Grade')
drop table Grade
use School
go

---創(chuàng)建Grande年級(jí)表--

復(fù)制代碼 代碼如下:

create table Grade
(
GradeId int not null,
GrandeName nvarchar(50)
)

-----------------------------------------T-SQL添加約束-------------------------

復(fù)制代碼 代碼如下:

--給StudentNo添加主鍵約束---
alter table Student
add constraint pk_StuNo primary key(StudentNo)

--給身份證添加唯一約束--

復(fù)制代碼 代碼如下:

alter table Student
add constraint uq_StuIdcard unique(IDENTITYcard)

---給地址address添加默認(rèn)約束--

復(fù)制代碼 代碼如下:

alter table Student
add constraint df_stuaddress default('地址不詳') for Address

---刪除地址address默認(rèn)約束---

復(fù)制代碼 代碼如下:

alter table Student
drop constraint df_stuaddress


----------出生日期添加檢查約束--------

復(fù)制代碼 代碼如下:

alter table Student
add constraint ck_stuBorndate check(Borndate > '1980-01-01')

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

--1、添加Grade主鍵(操作Grade)---

復(fù)制代碼 代碼如下:

alter table Grade
add constraint pk_graid primary key(GradeId)

--2、添加Grade外鍵(操作Student)--

復(fù)制代碼 代碼如下:

alter table Student
add constraint fk_stuGradeID foreign key(GradeId) references Grade(GradeId)

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

復(fù)制代碼 代碼如下:

----給subjectNo列添加主鍵約束------
alter table subject
add constraint pk_SubID primary key(SubjectNo)

------給課程名稱subjectName添加非空約束;-----

復(fù)制代碼 代碼如下:

-----with nocheck:已經(jīng)存在數(shù)據(jù)不通過(guò)check約束-------
alter table subject with nocheck
add constraint ck_subName check(SubjectName is not null)

-----學(xué)時(shí)必須大于0-----

復(fù)制代碼 代碼如下:

alter table subject with nocheck
add constraint ck_ClassHour check(ClassHour > 0)

-----與Grade年級(jí)表添加主外鍵約束----

復(fù)制代碼 代碼如下:

alter table subject with nocheck
add constraint fk_GradeID foreign key(GradeID)
references Grade(GradeID)


----------給result成績(jī)表添加約束------------

-------添加多個(gè)約束---------

復(fù)制代碼 代碼如下:

alter table Result
add
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 Result
drop constraint pk_No_subID_date,fk_subNo,fk_StuNo,ck_StudentResult,df_examdate

--------更改列的數(shù)據(jù)類(lèi)型----------

復(fù)制代碼 代碼如下:

alter table Result
alter column StudentResult int

以上就是本文全部?jī)?nèi)容,希望大家喜歡。

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部