最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[C#學(xué)習(xí)筆記24]T-SQL創(chuàng)建數(shù)據(jù)庫(kù)、數(shù)據(jù)表、CRUD、檢查約束、外鍵約束

2020-08-30 16:34 作者:技術(shù)龍的傳人  | 我要投稿

打開(kāi)數(shù)據(jù)庫(kù),新建查詢,編寫操作數(shù)據(jù)庫(kù)的代碼

基于T-SQL創(chuàng)建數(shù)據(jù)庫(kù)

????數(shù)據(jù)庫(kù)(課程管理系統(tǒng)數(shù)據(jù))、課程表(保存課程信息)、課程分類表(課程分類信息)、講師表

系統(tǒng)數(shù)據(jù)庫(kù):

????master數(shù)據(jù)主要用來(lái)管理其他數(shù)據(jù)庫(kù)的信息

????model數(shù)據(jù)庫(kù):模板數(shù)據(jù)

用戶數(shù)據(jù)庫(kù):

????數(shù)據(jù)文件:

????????主數(shù)據(jù)文件,一個(gè)數(shù)據(jù)庫(kù)有且僅有一個(gè)主數(shù)據(jù)文件。mdf擴(kuò)展名

????????次要數(shù)據(jù)文件,根據(jù)需要添加多個(gè)并且分布到不同的磁盤路徑。ndf擴(kuò)展名

????????日志文件,有且至少有一個(gè)。ldf擴(kuò)展名

? ? 學(xué)習(xí)T-SQL腳本最大好處是在數(shù)據(jù)庫(kù)兼容性上更強(qiáng)大。

特捏注意:drop關(guān)鍵字使用開(kāi)發(fā)中要特別小心,萬(wàn)一刪錯(cuò)了無(wú)法挽回。

給數(shù)據(jù)表添加約束是為了保證數(shù)據(jù)的有效性。LoginPwd varchar(18) check(len(LoginPwd)>=6 and len(LoginPwd)<=18) not null,

????檢查約束就是添加數(shù)據(jù)的時(shí)候,會(huì)檢查這個(gè)字段的值,是否在約束的條件范圍之內(nèi)

????主鍵約束要求不能重復(fù)

????????標(biāo)識(shí)列:這個(gè)列必須是唯一的,系統(tǒng)自動(dòng)生成,不用顯式的插入數(shù)據(jù)

????????格式:identity(標(biāo)識(shí)種子,增值量)? ? ?identity(100,1)

????????常見(jiàn)錯(cuò)誤:標(biāo)識(shí)列顯式給值;插入列的個(gè)數(shù)和對(duì)應(yīng)的值個(gè)數(shù)不一致

標(biāo)識(shí)列在刪除數(shù)據(jù)后,不會(huì)自動(dòng)補(bǔ)充,也沒(méi)必要考慮這個(gè)

insert update delete select基本語(yǔ)法熟練運(yùn)用

默認(rèn)約束:給字段加入默認(rèn)值

唯一約束

外鍵約束:兩個(gè)數(shù)據(jù)表之間有關(guān)系,但沒(méi)有約束,在添加數(shù)據(jù)時(shí)會(huì)造成數(shù)據(jù)不一致的情況

????作用:1)外鍵表中添加數(shù)據(jù)時(shí),如果和主表建立關(guān)系,則會(huì)自動(dòng)的從主表中對(duì)應(yīng)的字段中查詢數(shù)據(jù)是否一致,不一致會(huì)拒絕.保證數(shù)據(jù)一致.

????????????2)方便管理數(shù)據(jù)

使用innser?join?實(shí)現(xiàn)聯(lián)合查詢

數(shù)據(jù)庫(kù)關(guān)系圖的建立(雙擊數(shù)據(jù)庫(kù)關(guān)系圖——是——右鍵新建——添加所有數(shù)據(jù)表)

練習(xí)代碼如下:

--首先要指向操作的數(shù)據(jù)庫(kù)

use master

go? ?--批處理的結(jié)束標(biāo)志


if exists(select * from sysdatabases where name='CourseManageDB')

drop database CourseManageDB

go


create database CourseManageDB

on primary

(

name='CourseManageDB_data',

filename='D:\DB\CourseManageDB_data.mdf',--主數(shù)據(jù)文件

size=10MB,

filegrowth=1MB

)

,

(

name='CourseManageDB_data1',

filename='D:\DB\CourseManageDB_data1.ndf',--次要數(shù)據(jù)文件

size=10MB,

filegrowth=1MB

)

log on

(

name='CourseManageDB_log',

filename='D:\DB\CourseManageDB_log.ldf',--日志文件

size=10MB,

filegrowth=1MB

)

go

--指向要操作的數(shù)據(jù)

use CourseManageDB

go

--創(chuàng)建講師表

if exists(select * from sysobjects where name='Teacher')

drop table Teacher

go

create table Teacher

(

-- TeacherId int primary key, --講師編號(hào),主鍵

? ? TeacherId int identity(100,1) primary key,--自增主鍵用identity(基數(shù),增量)

LoginAccount varchar(50) not null,--登錄帳號(hào)

LoginPwd varchar(18) check(len(LoginPwd)>=6 and len(LoginPwd)<=18) not null,

TeacherName varchar(20) not null,

PhoneNumber char(11) not null,

-- NowAdress nvarchar(100)

? ? NowAdress nvarchar(100) default('地址不詳')--地址添加默認(rèn)值

)

go


--課程分類表

if exists(select * from sysobjects where name='CourseCategory')

drop table CourseCategory

go

create table CourseCategory

(

CategoryId int identity(10,1) primary key,

CategoryName varchar(20) not null

)

go

--課程表

if exists(select * from sysobjects where name='Course')

drop table Course

go

create table Course

(

CourseId int identity(10,1) primary key,

CourseName varchar(20) not null,

CourseContent nvarchar(500) not null,

ClassHour int not null,

-- Credit int not null--學(xué)分

Credit int check(Credit>=1 and Credit<=30) not null,--學(xué)分約束范圍1~30分

CategoryId int references CourseCategory(CategoryId) not null,--外鍵約束

TeacherId int references Teacher(TeacherId)

)

go

--根據(jù)需要添加其他數(shù)據(jù)表

--添加測(cè)試數(shù)據(jù)

--insert into Teacher(TeacherId,LoginAccount,LoginPwd,TeacherName,PhoneNumber)

--values(10000,'Dragon Yao','012345','姚小龍','1234567890'),

--(10001,'Dragon Li','111111','李小龍','1234567891'),

--(10002,'Dragon Liang','222222','梁小龍','1234567892')


--insert into Teacher(TeacherId,LoginAccount,LoginPwd,TeacherName,PhoneNumber)

--values(10000-1,'Dragon Yao','012345','姚小龍','1234567890')--主鍵不能


--當(dāng)啟用標(biāo)識(shí)列的時(shí)候,不能顯式的插入值,應(yīng)該改成下面的方法

insert into Teacher(LoginAccount,LoginPwd,TeacherName,PhoneNumber)

values('Dragon Yao','012345','姚小龍','1234567890'),

('Dragon Li','111111','李小龍','1234567891'),

('Dragon Liang','222222','梁小龍','1234567892')

insert into Teacher(LoginAccount,LoginPwd,TeacherName,PhoneNumber,NowAdress)

values('Dragon Yao1','012345','姚小龍','1234567890','西安')

select * from Teacher?

--刪除后主鍵值還會(huì)順延自增,不受影響,全部刪除也不會(huì)從頭自增

delete from Teacher where TeacherId=102

delete from Teacher--全部刪除

update Teacher set LoginPwd='000000',TeacherName='新老師' where TeacherId=104--修改

--添加課程分類

Insert Into CourseCategory(CategoryName)values('.Net'),('Java'),('C++')

select * from CourseCategory


--添加課程信息

Insert into Course(CourseName,CourseContent,ClassHour,Credit,CategoryId,TeacherId)

values('C#01','OOP/SQL',500,10,10,100)

Insert into Course(CourseName,CourseContent,ClassHour,Credit,CategoryId,TeacherId)

values('C#02','WinForm',500,10,11,101)


select * from Course

select CourseName,CourseContent,ClassHour,Credit,Course.CategoryId,CategoryName from Course

inner join CourseCategory on Course.CategoryId=CourseCategory.CategoryId

{

? ? name='CourseManageDB_log',

? ? filename='D:\DB\CourseManageDB_log.ldf,--日志文件名

? ? size=10MB,

? ? filegrowth=1MB

}

go




[C#學(xué)習(xí)筆記24]T-SQL創(chuàng)建數(shù)據(jù)庫(kù)、數(shù)據(jù)表、CRUD、檢查約束、外鍵約束的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
洛阳市| 阜康市| 清原| 积石山| 正定县| 河东区| 长宁县| 桦川县| 化隆| 黑山县| 馆陶县| 苗栗县| 平阳县| 榆树市| 柳林县| 策勒县| 南川市| 仙桃市| 泗水县| 宽城| 宜黄县| 安平县| 开阳县| 泰州市| 凤山县| 乌恰县| 耒阳市| 龙江县| 南安市| 安龙县| 开封县| 海伦市| 禄丰县| 景东| 宁武县| 利辛县| 尼勒克县| 张家口市| 景宁| 荃湾区| 基隆市|