1 --執行插入語句返回剛剛生成的自動編號2 insert into tblclass output inserted.clsid values('
大一一班
','11
',18)3
4 ------------case函式用法------------
5 --相當於switch 注意then後面的資料型別要一樣
6select * from
tblscore
7select
8tscoreid,
9tenglish,
10 評分=
11case
12 when tenglish>=95 then '優秀'
13 when tenglish>=90 then '良好'
14 when tenglish>80 then '優'
15 when tenglish is
null then '
101'
16else
'賈伯斯'17
end18
from
tblscore
1920 --等值判斷
21select
22tscoreid,
23tenglish,
24 評分=
25case
tenglish
26 when 95 then '優秀'
27 when 90 then '良好'
28 when 80 then '優'
29 when null then '
101'
30else
'賈伯斯'31
end32
from
tblscore
3334
3536 --聚集索引(聚簇索引):
37 -------當資料實際的儲存順序,與索引的順序一致就把該索引叫聚集索引
38 --非聚集索引(非聚簇索引)
39 -------當索引中資料的順序與,資料實際儲存的順序不一致的時候,該索引叫非聚集索引。
40 *****==非聚集索引**********===
41 --在表sales.salesperson中給salesquota, salesytd這兩列建立非聚集索引
42create nonclustered index ix_salesperson_salesquota_salesytd on sales.salesperson (salesquota, salesytd); go
43 ====建立唯一非聚集索引**********===
44create unique index ak_unitmeasure_name on production.unitmeasure(name); go
45 *****==建立聚集索引***************==
46 create table t1 (a int, b int, c as a/b);
47 --建立唯一的聚集索引
48 create unique clustered index idx1 on t1(c); insert into t1 values (1, 0
);49 --刪除索引
50drop index t8.ix_t8_tage
5152
5354 ----------------子查詢--------------------
55 --把乙個查詢結果作為另乙個查詢的查詢源
5657
select * from
58 (select fname,fage,fgender from
mystudent
59where fage between 18 and 24 and fgender='
女') as
tbl60
where fname like '趙%'
6162 --把另外乙個查詢的結果作為當前查詢的where條件來使用。
6364
65select * from tblstudent where tsclassid=
66 (select tclassid from tblclass where tclassname='
高二二班')
6768 ---exists-----
69 --如果exists包含了的查詢,能查到結果,就返回true,否則返回false
70if(exists(select * from tblstudent where tsid<>1
))71
begin
72 print '
有資料'
73end
74else
75begin
76 print '
無查詢結果'77
end78
7980 --查詢所有'
高二二班
'與'高二一班
'的學生的資訊
81 --子查詢中=、!=、<、<=、>、>=之後只能返回單個值,如果多個值就報錯了。
8283 --這個寫法是錯誤的
84select * from tblstudent where tsclassid=85(
86select tclassid from tblclass where tclassname='
高二二班
' or tclassname='
高二一班'87
)88 ---這個寫法是正確的
89select * from tblstudent where tsclassid in90(
91select tclassid from tblclass where tclassname='
高二二班
' or tclassname='
高二一班'92
)939495 ------------------分頁----------------
96 ------desc 降序排序從高到底 asc公升序排序(預設)
9798 -------第一種分頁----------------
99 -----每頁5條資料,找第二頁
100select top 5 * from tblstudent where tsid not in
101(
102select top((2-1)*5) tsid from
tblstudent order by tsid
103) order by tsid
104105 ---第二種分頁--
106select * from
107(
108select *, row_number() over(order by tsid) as number from
tblstudent
109 ) as
t110
where t.number between 6 and 10
111112
113114 --開窗函式與聚合函式一起使用,可以讓聚合函式對每一條資料都計算一次。
115select * ,count(*) over() as
'總條數
'from
tblstudent
116117
118 --------------連線join-----------------
119 --案例3:查詢學生姓名、年齡、班級及成績
120select
121 ts.tsname as
'學生姓名',
122 ts.tsage as'年齡
',123 tc.tclassname '班級'
,124 tb.tenglish '
英語成績',
125 tb.tmath '
數學成績
'126
127from tblstudent as
ts128 inner join tblscore as tb on ts.tsid=tb.tsid
129 inner join tblclass as tc on tc.tclassid=ts.tsclassid
130131
132 --請查詢出所有沒有參加考試(在成績表中不存在的學生)的學生的姓名。
133select
ts.tsname
134from tblstudent as
ts135 left join tblscore as tb on ts.tsid=tb.tsid
136where tb.tenglish is
null and tb.tmath is
null
SQL入門學習(3)子查詢
目錄 普通子查詢 返回乙個值的普通子查詢 返回一組值的普通子查詢 使用any 返回一組值的普通子查詢 使用all 相關子查詢 子查詢分為普通子查詢和相關子查詢。他們執行順序是不一樣的。執行順序 先執行子查詢,子查詢返回結果之後,再執行父查詢。例 查詢與 劉偉 老師職稱相同的教師號 姓名。select...
SQL多條件查詢子查詢SQL多條件查詢子查詢
多條件搜尋時where 1 1並不高效,如果使用這種方法,在資料庫中會做全表查詢 對每行資料都進行掃瞄比對 會無法使用索引等優化查詢的策略,建立的索引會暫時失效。case函式 case必須和end一起使用,下接when then select 數學成績 case when math 100 then...
mysql sql 子查詢語句 SQL子查詢
子查詢或內部查詢或巢狀查詢在另乙個sql查詢的查詢和嵌入式where子句中。子查詢用於返回將被用於在主查詢作為條件的資料,以進一步限制要檢索的資料。子查詢可以在select,insert,update使用,而且隨著運算子如delete語句 in,between 等.這裡有一些規則,子查詢必須遵循 子...