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

首頁 > 開發 > 綜合 > 正文

記錄幾個基礎的SQL開發題

2024-07-21 02:49:41
字體:
來源:轉載
供稿:網友
記錄幾個基礎的SQL開發題

一些很基礎,但是在第一時間,不借助工具我卻沒能全答對的問題。

1. 表A有5行數據,表B有7行數據,問Inner Join最多返回幾行數據,Left Join最多返回幾行數據,分別在什么情況下?

Inner Join 是返回關聯表的Cartesian PRoduct,然后根據On條件剔除掉不符合的行。這樣的話,返回最多行的情況就是保留整個Cartesian product,On對每一行都為True.

即最多返回5*7=35行。

Outer Join 是返回關聯表的Cartesian product,然后根據On條件剔除掉不符合的行,再將添加外部行。

外部行是指保留表中根據On條件在非保留表中找不到與之匹配行的行,非保留表的行數據用NULL值占位。

返回最多行的情況也是返回整個Cartesian product=35行。

最大返回行的示例代碼:

CodeCREATE TABLE tb1 (id INT,val NVARCHAR(10))CREATE TABLE tb2 (id INT,val NVARCHAR(10))GOINSERT INTO tb1 VALUES(1,'a'),(1,'b'),(1,'c'),(1,'d'),(1,'e')INSERT INTO tb2 VALUES(1,'a'),(1,'b'),(1,'c'),(1,'d'),(1,'e'),(1,'f'),(1,'g')GOSELECT * FROM tb2 a JOIN  tb1 bON a.id=b.id;SELECT * FROM tb2 a  LEFT OUTER JOIN  tb1 bON a.id=b.idGO

2. 有表Tb如下,寫出SELECT COUNT(*),COUNT(col1),COUNT(col2),COUNT(DISTINCT col1),COUNT(DISTINCT col2),COUNT(col1+col2),COUNT(col1-col2) FROM Tb的返回結果。

col1col2
11
1NULL
Null1
NullNull

這是一個非?;A和細節性的問題,如果能用電腦,試一下就知道答案了,但是試題上碰到,很少人能全寫對。定義問題,COUNT函數的定義如下:

返回組中的項。

COUNT(*) 返回組中的項數。包括 NULL 值和重復項。

COUNT(ALL expression) 對組中的每一行都計算 expression 并返回非空值的數量。

COUNT(DISTINCT expression) 對組中的每一行都計算 expression 并返回唯一非空值的數量。

同時,NULL參與的運算,結果始終為NULL。這樣結果就比較明顯了:4 2 2 1 1 1 1

3.如何得到一個1~9之間的隨機整數(包含1和9)?表Tb只有一列col,包含很多個這種整數,查詢Tb得到如下結果,Range隨機整數的范圍,Count表示計數

RangeCount
1~3
4~5
6~9

1~9之間隨機整數:SELECT cast(ceiling(rand() * 9) AS INT )

rand()返加始終會是大于0且小于1的float,ceiling取大于或者等于給定表達式的最小整數,所以會得1~9之間的隨機整數。

CodeCREATE TABLE tb4 (id INT)GODECLARE @i INT =100WHILE @i>0BEGIN INSERT INTO tb4 VALUES(cast(ceiling(rand() * 9) AS  INT )); SET @i=@i-1ENDGO--先根據不同區段分組統計并給數據打上flag,再根據flag去sum得到總數;WITH cte AS (SELECT ID,COUNT(id)AS counts,( CASE WHEN id BETWEEN 1 AND 3 THEN 1      WHEN id BETWEEN 4 AND 5 THEN 2      WHEN id BETWEEN 6 AND 9 THEN 3 END  ) as flag FROM tb4 GROUP BY id)SELECT ( CASE flag WHEN 1 THEN '1~3'      WHEN 2  THEN '4~5'  WHEN 3 THEN '6~9' END  ) as [Range],SUM(counts)AS [Count]FROM cte GROUP BY flag
4. Server1上有數據庫A,其鏡像數據庫是服務器Server2上的AM。Server2上定時生成AM的Snapshot庫AS。Server2上有一個庫AU,這個庫中沒有表,全是指向的AS的視圖。

用戶只能通過AU庫的視圖去訪問AS的數據。請問該如何實現這種安全性要求。

這其實是一個Ownership chain的問題。參考資料:Ownership Chains

分析:

a. 必需有一個login(就叫tb吧)對于數據庫A,AS和AU具有訪問權限.假設某個用戶的login叫做vw,它必需是庫A和AS的public成員,同時還要對庫AU中視圖具有查詢權限.

b. login tb在庫A和AU中必需相應表和視圖的Owner

c. 由于Mirroring db和Snapshot的安全配置繼承自主庫A且不可修改,所以在Server2上必需創建同名和同SID的login.

d. 在Server2上啟用cross db ownership chaining,允許跨庫的所有權鏈接.

測試代碼:

測試代碼中主庫為MirrorTest,鏡像庫也是MirrorTest,快照庫是MT_SS,視圖庫為MT_VIEW

a. 在Server1上創建庫和相關配置

Code--create the testing database and tablesuse mastergoCREATE DATABASE [MirrorTest] gouse [MirrorTest] goEXEC dbo.sp_changedbowner @loginame = N'sa', @map = falsegoselect * into dbo.tb1 from sys.objectsselect * into dbo.tb2 from sys.indexesgo--create login and configure securityuse mastergocreate login tb with passWord ='joe123',check_policy=offcreate login vw with password ='joe123',check_policy=off--select name,sid from sys.server_principals where name in('vw','tb')--tb0xEF38C47530A81041A4F0455F7DCE71E9--vw0x1652B3E456CAE549B263C6C06D6D61B1gouse [MirrorTest] go create user tbcreate user vw--set USER tb as the owner of tb1&tb2ALTER AUTHORIZATION ON dbo.tb1 TO tbALTER AUTHORIZATION ON dbo.tb2 TO tbgo

b. 在成功配置鏡像會話之后,再在SERVER2上配置

Codeuse mastergocreate login tb with password ='joe123',check_policy=off,sid=0xEF38C47530A81041A4F0455F7DCE71E9create login vw with password ='joe123',check_policy=off,sid=0x1652B3E456CAE549B263C6C06D6D61B1go--drop database MT_SS--create Snapshot of Mirroring db MirrorTestcreate database MT_SS on(Name='MirrorTest',filename='F:/SQL-DATA/MT.mdf')as snapshot of MirrorTestgo--create viewuse mastergocreate database MT_Viewgouse MT_Viewgocreate user tbcreate user vwgocreate view dbo.v1 as select * from MT_ss.dbo.tb1gocreate view dbo.v2 as select * from MT_ss.dbo.tb2go--set USER tb as the owner of v1&vv2ALTER AUTHORIZATION ON dbo.v1 TO tbALTER AUT
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一网中文字幕| 久久久久久久一| 亚洲最大成人网色| 欧美成人午夜激情| 亚洲美女动态图120秒| 91精品一区二区| 日韩美女毛茸茸| 欧美野外wwwxxx| 亚洲国产精品成人av| 日韩欧美国产一区二区| 久久久久久国产精品三级玉女聊斋| 91亚洲va在线va天堂va国| 欧美高清在线观看| 粗暴蹂躏中文一区二区三区| 黄网站色欧美视频| 国产成人亚洲综合91精品| 中文字幕九色91在线| 国产精品久久久久久久9999| 国产成人综合精品在线| 亚洲精品国产美女| 清纯唯美亚洲综合| 在线视频日韩精品| 成人在线观看视频网站| 欧美激情精品久久久久久大尺度| 欧美一级成年大片在线观看| 最近2019年好看中文字幕视频| 中日韩美女免费视频网站在线观看| 亚洲自拍偷拍在线| 亚洲91精品在线| 欧美激情精品久久久久久大尺度| 国产视频久久久久久久| 亚洲韩国日本中文字幕| 九九九热精品免费视频观看网站| 亚洲午夜精品久久久久久性色| 欧美色图在线视频| 久久精品亚洲一区| 久久久久久尹人网香蕉| 欧美激情a∨在线视频播放| 国产亚洲a∨片在线观看| 欧美成人激情视频免费观看| 亚洲天堂av高清| 国产一区二区日韩精品欧美精品| 国产精品亚洲欧美导航| 欧美一区二区三区……| 一本色道久久88精品综合| 日本欧美国产在线| 另类天堂视频在线观看| 欧美激情一区二区三区在线视频观看| 亚洲激情在线视频| 久久国产精品久久久久久久久久| 精品日本高清在线播放| 欧美第一黄色网| 亚洲成年人影院在线| 亚洲欧美国产一区二区三区| 久久亚洲精品一区二区| 亚洲精品在线不卡| 91在线精品播放| 国产精品自拍偷拍视频| 在线看国产精品| 亚洲在线视频福利| 97在线精品视频| 亚洲男人天堂九九视频| 国产午夜精品理论片a级探花| 国产精品一区二区电影| 国产精品v片在线观看不卡| 国产97在线视频| 亚洲人成亚洲人成在线观看| 国产成人自拍视频在线观看| 国产精品美女无圣光视频| 国产z一区二区三区| 欧美亚洲免费电影| 国产精品高潮呻吟久久av无限| 久久久久亚洲精品| 欧美人在线观看| 成人国产精品一区二区| 亚洲xxxx做受欧美| 97在线看免费观看视频在线观看| 日韩在线播放视频| 高清一区二区三区日本久| 日韩精品免费在线视频| 国产97在线观看| 国产精品私拍pans大尺度在线| 欧美午夜性色大片在线观看| 国内偷自视频区视频综合| 国产精品av电影| 亚洲香蕉伊综合在人在线视看| 亚洲黄色免费三级| 国产成人在线视频| 成人福利在线观看| 国产精品久久久久aaaa九色| 日韩中文在线视频| 最新国产精品拍自在线播放| 欧美精品www在线观看| 日韩欧美在线视频日韩欧美在线视频| 麻豆国产va免费精品高清在线| 91成人国产在线观看| 亚洲性夜色噜噜噜7777| 亚洲美女视频网| 国产精品999999| 欧美激情奇米色| 亚洲精品视频免费| 成人网在线免费观看| 国产欧美久久一区二区| 久久久亚洲影院你懂的| 亚洲欧洲一区二区三区久久| 97精品国产97久久久久久春色| 欧美与欧洲交xxxx免费观看| 91国产精品视频在线| 久久韩国免费视频| 日韩欧美在线免费观看| xxxx性欧美| 精品亚洲一区二区三区在线播放| 91麻豆桃色免费看| 韩国三级日本三级少妇99| 97超视频免费观看| 一区二区在线免费视频| 亚洲国产高清高潮精品美女| 日韩精品免费一线在线观看| 97在线观看免费| 精品国产一区二区三区久久久狼| 精品国内产的精品视频在线观看| 国产一区av在线| 欧美另类极品videosbestfree| 91精品久久久久久久久中文字幕| 国外成人免费在线播放| 精品成人久久av| 欧美另类69精品久久久久9999| 国自产精品手机在线观看视频| 91精品国产91久久久| 亚洲免费影视第一页| 欧美国产日韩一区二区在线观看| 久久久国产91| 久久精品福利视频| 亚洲国产成人精品久久久国产成人一区| 81精品国产乱码久久久久久| 精品一区二区三区四区在线| 日韩免费在线电影| 亚洲美女在线视频| 国产精品吹潮在线观看| 日韩一区二区三区国产| 日韩中文字幕在线观看| 欧美激情欧美激情| 丝袜亚洲欧美日韩综合| 在线日韩日本国产亚洲| 欧美日韩国产在线| 国产婷婷97碰碰久久人人蜜臀| 久久久久久久一区二区三区| 亚洲女同精品视频| 国产91精品高潮白浆喷水| 庆余年2免费日韩剧观看大牛| 91在线精品播放| 一区国产精品视频| 欧美视频国产精品| 欧美一级高清免费播放| 米奇精品一区二区三区在线观看| 日韩高清av一区二区三区| 色综合天天狠天天透天天伊人| 性色av一区二区三区红粉影视| 日韩在线观看免费全| 国产精品美乳在线观看| 乱亲女秽乱长久久久| 成人免费淫片视频软件| 久久久久久免费精品| 亚洲天堂视频在线观看|