亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

MSSQL 簡單練習回顧

2024-07-21 02:50:35
字體:
來源:轉載
供稿:網友
MSSQL 簡單練習回顧
這段時間,報了浦軟培訓的.NET,現在整理回顧下,算是個小小總結吧 為了便于操作,我沒有在多個數據庫間切換數據庫實例,以一個總的數據庫實例 test_demo為源進行的相關操作,代碼的注釋根據我的理解,并結合相關文獻進行的解說,如果哪位前輩覺得注釋的解說不妥,可給予糾正,謝謝。現在不廢話了,上代碼   1 ---練習  2 use master  3 /***********************************************  4   1、創建數據庫  5 ************************************************/  6 ---數據庫創建前的檢測  7 if exists(select * from sys.sysdatabases where name='test_demo')  8 drop database test_demo  --刪除已有的數據庫test_demo  9 create database test_demo  --開始創建新數據庫test_demo 10 on PRimary  --默認就屬于primary 主文件組,可省略 ,但必須有on 11 ( 12     name="test_demo",  --主數據文件的邏輯名 13     filename="C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Data/test_demo.mdf", --主數據文件的物理名 14     size=10mb,  --主數據文件的初始大小 15     filegrowth=10% --主數據文件的增長率(可以為百分比,也可為實數) 16 ) 17 ) 18 log on --以下為日志文件描述,同上 19 ( 20     name="test_name", 21     filename="C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Data/test_demo_log.ldf", 22     size=1mb, 23     filegrowth=10% 24 ) 25 --檢查數據庫是否創建成功 26 select * from sys.sysdatabases where name='test_demo' 27  28  29  30 /*********************************************** 31   2、創建表 32 ************************************************/ 33 use test_demo    34 create table stuInfo   --創建學生信息表 stuInfo 35 ( 36     stuName varchar(20) not null, 37     stuNo char(6) not null,  --學號 38     stuAge int not null, 39     stuId numeric(18,0) null, --身份證號,小數位為0 40     stuSeat smallint identity(1,1), --座位號,自動遞增     41     stuAddress text 42 ) 43 go 44 create table stuMarks  --創建學生成績表  45 ( 46     examNo char(7) not null, --考號 47     stuNo char(6) not null, --學號 48     writtenExam int not null, --筆記成績 49     labExam int not null --機試成績 50 ) 51 go 52  53 --檢測數據庫表stuinfo和stumarks的存在情況 54 use studb 55 select * from sys.sysobjects where name= 'stuinfo'  56 select * from sys.sysobjects where name = 'stumarks' 57  58  59  60 /*********************************************** 61   3、為表 stuInfo 和stuMarks添加約束 62 ************************************************/ 63 /* 64 語法: 65        alter  table tab_name 66        add constraint 約束名 約束類型 具體的約束說明    67 備注: 68      主鍵約束(Primary Key Constraint):要求主鍵列數據唯一,并且不允許為空 69      唯一約束(Unique Constraint):要求該列唯一,允許為空,但只能出現一個空值。 70      檢查約束(Check Constraint):某列取值范圍限制、格式限制等,如有關年齡的約束 71      默認約束(Default Constraint):某列的默認值,如我們的男性學員較多,性別默認為“男” 72      外鍵約束(Foreign Key Constraint):用于兩表間建立關系,需要指定引用主表的那列  73 總結:主鍵約束和惟一月雖然都強調了數據的惟一性, 74       但主鍵約束強調的是數據主體,惟一約束則強調的是某一列 75 */ 76 alter table stuInfo 77 add constraint pk_stuNo primary key(stuNo) --為學生學號添加主鍵約束 78  79 alter table stuInfo 80 add constraint uq_stuId unique(stuId) --為學生身份證添加惟一約束 81  82 alter table stuInfo 83 add constraint df_stuAddress default('地址不詳') for stuAddress --為地址添加默認約束,如果地址不詳。默認為“地址不詳” 84  85 alter table stuInfo 86 add constraint ck_stuAge check(stuAge between 15 and 40) --為學生年齡添加年齡檢查約束,要求年齡在15-40 87  88 alter table stuMarks 89 add constraint fk_stuMarks foreign key(stuNo) references stuInfo(stuNo) --為學生成績添加外鍵約束(主表stuInfo和從表stuMarks建立關系,關鍵字段為stuNo) 90  91 exec sp_helpconstraint stuinfo  --查看當前表stuinf的約束情況 92 exec sp_helpconstraint stumarks --查看當前表stumarks的約束情況 93  94  95 /*********************************************** 96   4、插入相關數據 97 ************************************************/ 98 insert into stuinfo values('張三',001,25,420621198906254567,'湖北襄陽') 99 insert into stuinfo values('李四',002,25,420621198906121554,'上海')100 insert into stuinfo values('王五',003,34,420621198003166548,'北京')101 insert into stuinfo values('趙強',004,23,420621199105148756,'湖北武漢')102 insert into stuinfo values('錢海',005,22,420621199208154582,'江蘇蘇州')103 insert into stuinfo values('周國',006,30,420621198409265148,'江蘇南京')104 insert into stuinfo values('孫堅',007,33,420621198304261855,'')105 106 insert into stumarks values(001,1,50.6,70.9)107 insert into stumarks values(022,2,64.5,84.5)108 insert into stumarks values(031,3,46.6,45.9)109 insert into stumarks values(023,4,95.7,51.9)110 insert into stumarks values(043,5,52.5,84.9)111 insert into stumarks values(015,6,94.6,76.9)112 insert into stumarks values(006,7,86.5,84.6)113 114 --查詢數據插入情況115 select * from stuinfo116 select * from stuMarks117 118 /***********************************************119   5、為表stuInfo和stuMarks創建視圖120 ************************************************/121 /*122  視圖是一張虛擬表,可以方便不同用戶的查詢,提高數據的安全性,篩選特定的數據行。123     視圖的用途:124              篩選表中的行125              防止未經許可的用戶訪問敏感數據126              降低數據庫的復雜程度127              將多個物理數據庫抽象為一個邏輯數據庫128 */129 if exists(select * from sys.sysobjects where name='view_stuInfo_stuMarks')130 drop view view_stuInfo_stuMarks131 go132 create view view_stuInfo_stuMarks 133 as134 select '姓名'=stuName, '學號'=stuInfo.stuNo,'考試號'= stuMarks.ExamNo,135    '筆記成績'=writtenExam,'機試成績'=labExam,136    '平均分'=(writtenExam +labExam)/2137 from stuInfo  left join stuMarks 138   on stuInfo.stuNo = stuMarks.stuNo139 go140 141 select * from view_stuInfo_stuMarks --使用視圖142 143 144 --使用相關的條件查詢145 --求出平均分數146 use test_demo147 --獲取每個學員的總成績148 select a.stuName as '學生', a.stuNo as '學號',b.ExamNo as '考號', b.writtenExam as '筆試成績',b.labExam as '機試成績',(b.writtenExam+b.labExam) as '總成績'149  from stuInfo as a inner join stuMarks as b on a.stuNo = b.stuNo150  order by '總成績' desc151 152 /*153   總結:154      當使用group by條件語句進行篩選時,select項的字段中,除使用聚合函數進行統計的字段外,其他需要select出的字段名必須出現在group by分組條件中155 */156 select a.stuName as '學生', a.stuNo as '學號',b.ExamNo as '考號', b.writtenExam as '筆試成績',b.labExam as '機試成績',sum(b.writtenExam+b.labExam) as '總成績',(b.writtenExam+b.labExam)/2 as '平均成績'157  from stuInfo as a inner join stuMarks as b on a.stuNo = b.stuNo158 group by a.stuName,a.stuNo,b.ExamNo,b.writtenExam,b.labExam159  order by '總成績' desc160 161 162 --根據學員總的平均成績和每個學員的總成績,判斷是否及格,劃線為150分163 declare @Avg1 float164 --獲取當前學員總的平均成績165 select @Avg1=avg(writtenExam+labexam) from stuInfo as a, stuMarks as b 166   where a.stuNo=b.stuNo 167  168 select  a.stuName as '學生', a.stuNo as '學號',b.ExamNo as '考號', b.writtenExam as '筆試成績',b.labExam as '機試成績',(b.writtenExam+b.labExam) as '總成績', @avg1 as '及格分數',169 (170 case171   when (b.writtenExam+b.labExam)<@avg1 then '不及格'172         when (b.writtenExam+b.labExam)>=@avg1 then '及格'173 end174 ) as '及格情況'175 from stuInfo as a inner join stuMarks as b on a.stuNo = b.stuNo176 order by '總成績' desc177 178 179 declare @Avg float   --聲明變量@AVG用于存儲學員總的平均成績180 --獲取當前學員總的平均成績181 select @Avg=avg(writtenExam+labexam) from stuInfo as a, stuMarks as b 182   where a.stuNo=b.stuNo 183 184 select  a.stuName as '學生', a.stuNo as '學號',b.ExamNo as '考號', b.writtenExam as '筆試成績',b.labExam as '機試成績',sum(b.writtenExam+b.labExam) as '總成績', @avg as '及格分數',185 (186 case187   when (b.writtenExam+b.labExam)<@avg then '不及格'188         when (b.writtenExam+b.labExam)>=@avg then '及格'189 end190 ) as '及格情況'191 from stuInfo as a inner join stuMarks as b on a.stuNo = b.stuNo192 group by a.stuName,a.stuNo,b.ExamNo, b.writtenExam ,b.labExam 193 order by '總成績' desc194 195 /***********************************************196   6、觸發器 triggers197                     觸發器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會激活它執行。觸發器經常用于加強數據的完整性約束和業務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數據字典中查到。SQL3的觸發器是一個能由系統自動執行對數據庫修改的語句。198 觸發器與存儲過程的唯一區別是觸發器不能執行EXECUTE語句調用,而是在用戶執行Transact-SQL語句時自動觸發執行。199 200  說明:模擬銀行銀行存款事件,用戶的取款和存款操作對儲蓄用戶賬目相關信息的更新    201  練習步驟:202              01、創建bank表和transInfo表203                 02、創建觸發器204 ************************************************/205 use test_demo206 --創建表bank和 transInfo207 create table triggers_bank  --創建賬戶存款表bank208 (209   customerName nvarchar(255) not null,210         cardID varchar(255) not null unique,211         currentMoney money    212 )213 create table triggers_transInfo  --創建賬戶交易表transInfo,用戶記錄賬戶操作事件日志214 (215    transDate datetime not null,216             cardID varchar(255) not null,217          transType nvarchar(50) not null,218             transMoney money 219 )220 221 --向表中插入相關測試數據222 insert into triggers_bank values('張三','1001001',1000.000)223 insert into triggers_bank values('李四','1001002',1.000)224 insert into triggers_transinfo values(getDate(),'1001001','支取',100.00)225 --查詢數據是否插入成功226 select * f
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲欧美日韩高清| 中文字幕欧美日韩精品| 欧美日韩中文字幕| 欧美日韩国产黄| 精品久久久一区二区| 国产极品精品在线观看| 欧美精品日韩www.p站| 亚洲一区二区三区乱码aⅴ| 久99九色视频在线观看| 九色精品免费永久在线| 国产精品99久久久久久久久久久久| 色综合久综合久久综合久鬼88| 欧美肥老太性生活视频| 国产精品中文在线| 亚洲毛片在线看| 精品成人乱色一区二区| xxav国产精品美女主播| 久久夜色精品国产欧美乱| 91精品久久久久久久久久久久久久| 久久99精品久久久久久琪琪| 欧美国产在线视频| 国产一区二区三区在线视频| 久久久成人av| 91在线国产电影| 最近日韩中文字幕中文| 日本欧美中文字幕| 久久综合久久美利坚合众国| 91tv亚洲精品香蕉国产一区7ujn| 欧美大片欧美激情性色a∨久久| 成人性生交大片免费看视频直播| 亚洲一区二区日本| 97在线免费观看| 欧美视频中文字幕在线| 韩国19禁主播vip福利视频| 欧美裸体男粗大视频在线观看| 日韩av在线资源| 久久精品国产视频| 中文字幕亚洲一区二区三区| 91久久精品国产91久久| 欧美性xxxxx| 日本不卡视频在线播放| 日韩大片在线观看视频| 97久久伊人激情网| 亚洲xxxx18| 91av在线网站| 欧美专区在线播放| 久久成人一区二区| 日韩美女av在线| 95av在线视频| 日韩精品有码在线观看| 亚洲色图17p| 亚洲日韩欧美视频| 精品久久久一区| 欧美一区二区色| 日韩欧美在线观看视频| 日韩视频免费大全中文字幕| 精品久久久久久久久久ntr影视| 日韩性xxxx爱| 亚洲欧美日韩天堂一区二区| 日韩精品高清在线观看| 91在线视频成人| 日韩暖暖在线视频| 高清亚洲成在人网站天堂| 欧美专区在线观看| 欧美国产视频一区二区| 色综合久久88| 国产成人黄色av| 57pao精品| 欧美老少配视频| 中文字幕日韩欧美精品在线观看| 国产日韩欧美中文| 精品久久中文字幕久久av| 日韩av网站导航| 国产午夜精品一区二区三区| 在线观看视频亚洲| 国产视频欧美视频| 国产精品美乳在线观看| 日本一区二区三区四区视频| 国产一区二区香蕉| 欧美黄色三级网站| 欧美在线日韩在线| 精品亚洲一区二区三区在线观看| 懂色av影视一区二区三区| 欧美国产一区二区三区| 亚洲精品国产电影| 日韩精品免费综合视频在线播放| 草民午夜欧美限制a级福利片| 日韩高清欧美高清| 欧美大秀在线观看| 国产精品91在线观看| 国产欧洲精品视频| 人妖精品videosex性欧美| 亚洲91精品在线| 国产精品热视频| 色噜噜狠狠狠综合曰曰曰88av| 中文字幕在线成人| 91av福利视频| 色综合亚洲精品激情狠狠| 91黑丝高跟在线| 成人高清视频观看www| 国产视频精品xxxx| 日韩av免费网站| 91香蕉亚洲精品| 亚洲国产美女精品久久久久∴| 国产精品欧美激情| 日韩中文字幕视频在线观看| 亚洲精品福利在线观看| 日韩一区二区福利| 26uuu另类亚洲欧美日本一| 91av视频在线观看| 这里只有精品丝袜| 蜜臀久久99精品久久久无需会员| 国产精品免费视频久久久| 在线观看91久久久久久| 日韩精品欧美激情| 久久九九国产精品怡红院| 亚洲欧美在线磁力| 亚洲伊人一本大道中文字幕| 日韩高清av在线| 日本成人黄色片| 国产欧美亚洲视频| 国产亚洲一区精品| 在线观看欧美成人| 久久久在线观看| 精品毛片网大全| 久久99久久99精品中文字幕| 九色精品免费永久在线| 亚洲国产精品成人av| 久久色免费在线视频| 欧美日韩亚洲91| 精品国产一区久久久| 亚洲r级在线观看| 日韩精品中文字幕有码专区| 日韩在线视频导航| 久久久久久91| 久久亚洲综合国产精品99麻豆精品福利| 91夜夜未满十八勿入爽爽影院| 一区二区三区四区在线观看视频| 日韩高清电影免费观看完整| 日韩欧美成人免费视频| 欧美激情三级免费| 6080yy精品一区二区三区| 国产成人亚洲综合91| 国产不卡一区二区在线播放| 亚洲自拍av在线| 国产精品一区二区三区免费视频| 国产亚洲欧洲高清一区| 欧美性猛xxx| 久久福利视频网| 91精品国产综合久久香蕉922| 亚洲在线观看视频网站| 九九精品在线播放| 精品国产一区二区三区久久狼5月| 国语对白做受69| 成人精品视频久久久久| 国产视频一区在线| 亚洲性日韩精品一区二区| 亚洲欧美中文字幕在线一区| 91精品久久久久久久久久久久久久| 久久69精品久久久久久久电影好| 福利精品视频在线| 清纯唯美日韩制服另类| 国产精品久久久久9999| 亚洲影院色无极综合|