sqlserver是微軟旗下一款數(shù)據(jù)庫(kù)軟件,今天一起看一下如何使用sqlserver來(lái)實(shí)現(xiàn)多表連接查詢(xún)。
創(chuàng)新互聯(lián)建站主營(yíng)臺(tái)江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開(kāi)發(fā),臺(tái)江h(huán)5微信小程序定制開(kāi)發(fā)搭建,臺(tái)江網(wǎng)站營(yíng)銷(xiāo)推廣歡迎臺(tái)江等地區(qū)企業(yè)咨詢(xún)
設(shè)備:聯(lián)想電腦
系統(tǒng):win10
系統(tǒng):sqlserver 2019
1、打開(kāi)電腦后再開(kāi)始界面中找到sqlserver 2019,雙擊打開(kāi)sqlserver 2019。
2、可以看到當(dāng)前有兩個(gè)數(shù)據(jù)表,一個(gè)班級(jí)表,一個(gè)學(xué)生表。加下來(lái)要將兩張表里面的數(shù)據(jù)查詢(xún)出來(lái)。
3、在文本域中輸入:select *? from banji select *? from student點(diǎn)擊執(zhí)行按鈕。
4、這時(shí)就可以分別查詢(xún)出班級(jí)和學(xué)生的信息,如圖所示,只不過(guò)此時(shí)查詢(xún)出的數(shù)據(jù)是分開(kāi)的,多表查詢(xún)就完成了。
常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品有Oracle、SQL Server、Sybase、DB2、Access等。 1.Oracle
Oracle是1983年推出的世界上第一個(gè)開(kāi)放式商品化關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它采用標(biāo)準(zhǔn)的SQL結(jié)構(gòu)化查詢(xún)語(yǔ)言,支持多種數(shù)據(jù)類(lèi)型,提供面向?qū)ο蟠鎯?chǔ)的數(shù)據(jù)支持,具有第四代語(yǔ)言開(kāi)發(fā)工具,支持Unix、Windows NT、OS/2、Novell等多種平臺(tái)。除此之外,它還具有很好的并行處理功能。Oracle產(chǎn)品主要由Oracle服務(wù)器產(chǎn)品、Oracle開(kāi)發(fā)工具、Oracle應(yīng)用軟件組成,也有基于微機(jī)的數(shù)據(jù)庫(kù)產(chǎn)品。主要滿足對(duì)銀行、金融、保險(xiǎn)等企業(yè)、事業(yè)開(kāi)發(fā)大型數(shù)據(jù)庫(kù)的需求。
2.SQL Server
SQL即結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language,簡(jiǎn)稱(chēng)為SQL)。SQL Server最早出現(xiàn)在1988年,當(dāng)時(shí)只能在OS/2操作系統(tǒng)上運(yùn)行。2000年12月微軟發(fā)布了SQL Server 2000,該軟件可以運(yùn)行于Windows NT/2000/XP等多種操作系統(tǒng)之上,是支持客戶機(jī)/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)管理系統(tǒng),它可以幫助各種規(guī)模的企業(yè)管理數(shù)據(jù)。
隨著用戶群的不斷增大,SQL Server在易用性、可靠性、可收縮性、支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)、系統(tǒng)集成等方面日趨完美。特別是SQL Server的數(shù)據(jù)庫(kù)搜索引擎,可以在絕大多數(shù)的操作系統(tǒng)之上運(yùn)行,并針對(duì)海量數(shù)據(jù)的查詢(xún)進(jìn)行了優(yōu)化。目前SQL Server已經(jīng)成為應(yīng)用最廣泛的數(shù)據(jù)庫(kù)產(chǎn)品之一。
由于使用SQL Server不但要掌握SQL Server的操作,而且還要能熟練掌握Windows NT/2000 Server的運(yùn)行機(jī)制,以及SQL語(yǔ)言,所以對(duì)非專(zhuān)業(yè)人員的學(xué)習(xí)和使用有一定的難度。
3.Sybase
1987年推出的大型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)Sybase,能運(yùn)行于OS/2、Unix、Windows NT等多種平臺(tái),它支持標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言SQL,使用客戶機(jī)/服務(wù)器模式,采用開(kāi)放體系結(jié)構(gòu),能實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下各節(jié)點(diǎn)上服務(wù)器的數(shù)據(jù)庫(kù)互訪操作。技術(shù)先進(jìn)、性能優(yōu)良,是開(kāi)發(fā)大中型數(shù)據(jù)庫(kù)的工具。Sybase產(chǎn)品主要由服務(wù)器產(chǎn)品Sybase SQL Server、客戶產(chǎn)品Sybase SQL Toolset和接口軟件Sybase Client/Server Interface組成,還有著名的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工具PowerBuilder。
4.DB2
DB2是基于SQL的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。20世紀(jì)80年代初期DB2的重點(diǎn)放在大型的主機(jī)平臺(tái)上。到90年代初,DB2發(fā)展到中型機(jī)、小型機(jī)以及微機(jī)平臺(tái)。DB2適用于各種硬件與軟件平臺(tái)。各種平臺(tái)上的DB2有共同的應(yīng)用程序接口,運(yùn)行在一種平臺(tái)上的程序可以很容易地移植到其他平臺(tái)。DB2的用戶主要分布在金融、商業(yè)、鐵路、航空、醫(yī)院、旅游等各個(gè)領(lǐng)域,以金融系統(tǒng)的應(yīng)用最為突出。
5.Access
Access是在Windows操作系統(tǒng)下工作的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它采用了Windows程序設(shè)計(jì)理念,以Windows特有的技術(shù)設(shè)計(jì)查詢(xún)、用戶界面、報(bào)表等數(shù)據(jù)對(duì)象,內(nèi)嵌了VBA(全稱(chēng)為Visual Basic Application)程序設(shè)計(jì)語(yǔ)言,具有集成的開(kāi)發(fā)環(huán)境。Access提供圖形化的查詢(xún)工具和屏幕、報(bào)表生成器,用戶建立復(fù)雜的報(bào)表、界面無(wú)需編程和了解SQL語(yǔ)言,它會(huì)自動(dòng)生成SQL代碼。
Access被集成到Office中,具有Office系列軟件的一般特點(diǎn),如菜單、工具欄等。與其他數(shù)據(jù)庫(kù)管理系統(tǒng)軟件相比,更加簡(jiǎn)單易學(xué),一個(gè)普通的計(jì)算機(jī)用戶,沒(méi)有程序語(yǔ)言基礎(chǔ),仍然可以快速地掌握和使用它。最重要的一點(diǎn)是,Access的功能比較強(qiáng)大,足以應(yīng)付一般的數(shù)據(jù)管理及處理需要,適用于中小型企業(yè)數(shù)據(jù)管理的需求。當(dāng)然,在數(shù)據(jù)定義、數(shù)據(jù)安全可靠、數(shù)據(jù)有效控制等方面,它比前面幾種數(shù)據(jù)庫(kù)產(chǎn)品要遜色不少。
什么是NoSQL數(shù)據(jù)庫(kù)?從名稱(chēng)“非SQL”或“非關(guān)系型”衍生而來(lái),這些數(shù)據(jù)庫(kù)不使用類(lèi)似SQL的查詢(xún)語(yǔ)言,通常稱(chēng)為結(jié)構(gòu)化存儲(chǔ)。這些數(shù)據(jù)庫(kù)自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開(kāi)始使用它們時(shí),這些數(shù)據(jù)庫(kù)才流行起來(lái)。該數(shù)據(jù)庫(kù)最明顯的優(yōu)勢(shì)是擺脫了一組固定的列、連接和類(lèi)似SQL的查詢(xún)語(yǔ)言的限制。有時(shí),NoSQL這個(gè)名稱(chēng)也可能表示“不僅僅SQL”,來(lái)確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫(kù)使用諸如鍵值、寬列、圖形或文檔之類(lèi)的數(shù)據(jù)結(jié)構(gòu),并且可以如JSON之類(lèi)的不同格式存儲(chǔ)。
AWS推出了與SQL兼容的查詢(xún)語(yǔ)言PartiQL,只要數(shù)據(jù)庫(kù)查詢(xún)引擎提供PartiQL支持,使用者就能以PartiQL單一查詢(xún)關(guān)聯(lián)式數(shù)據(jù)庫(kù)的結(jié)構(gòu)化資料,以及開(kāi)放資料格式中的巢狀資料或是半結(jié)構(gòu)化資料,甚至還能用來(lái)查詢(xún)NoSQL或是文件數(shù)據(jù)庫(kù)中無(wú)固定結(jié)構(gòu)(Schema-less)的資料。除了AWS自家的數(shù)據(jù)庫(kù)服務(wù),NoSQL數(shù)據(jù)庫(kù)Couchbase Server也承諾將會(huì)支持PartiQL。
企業(yè)資料分散在關(guān)聯(lián)式數(shù)據(jù)庫(kù)、非關(guān)聯(lián)式數(shù)據(jù)庫(kù)以及資料湖泊中。高度結(jié)構(gòu)化的資料,儲(chǔ)存在SQL數(shù)據(jù)庫(kù)或是資料倉(cāng)儲(chǔ);無(wú)固定結(jié)構(gòu)的資料則由鍵值儲(chǔ)存、圖形數(shù)據(jù)庫(kù)(Graph Database)、分類(lèi)帳數(shù)據(jù)庫(kù)或是時(shí)間序列數(shù)據(jù)庫(kù)等NoSQL數(shù)據(jù)庫(kù)處理;而在資料湖泊中的資料,可能也有部分缺乏結(jié)構(gòu),或是可能為巢狀或是多值結(jié)構(gòu)。不同的資料類(lèi)型適用于不同的使用案例,而每種類(lèi)型的資料,可能都有自己的查詢(xún)語(yǔ)言。
不同的資料儲(chǔ)存對(duì)應(yīng)不同的查詢(xún)語(yǔ)言,當(dāng)企業(yè)更換資料格式或是數(shù)據(jù)庫(kù)引擎時(shí),可能還需要跟著改變應(yīng)用程式和查詢(xún)語(yǔ)法,AWS提到,這對(duì)于資料的應(yīng)用,特別是使用資料湖泊的靈活性與效率,有著很大的阻礙。為了統(tǒng)一不同類(lèi)型數(shù)據(jù)庫(kù)存取方法,AWS發(fā)布了查詢(xún)語(yǔ)言PartiQL,這是個(gè)與SQL兼容的查詢(xún)語(yǔ)言,可以用來(lái)查詢(xún)以各種格式儲(chǔ)存在各地的資料。
用戶可以使用PartiQL來(lái)查詢(xún)關(guān)聯(lián)式數(shù)據(jù)庫(kù),像是在Redshift實(shí)作交易或是資料分析等應(yīng)用,或?qū)τ贏mazon S3資料湖泊的開(kāi)放資料格式,同樣能使用PartiQL對(duì)巢狀資料與半結(jié)構(gòu)化資料例如Amazon Ion格式進(jìn)行查詢(xún),另外,PartiQL也可用于文件數(shù)據(jù)庫(kù)等NoSQL數(shù)據(jù)庫(kù),查詢(xún)無(wú)固定結(jié)構(gòu)的資料。
AWS表示,PartiQL的出現(xiàn),是為了滿足自家查詢(xún)和轉(zhuǎn)換大量資料的需求,其提供嚴(yán)格的SQL兼容性,可與標(biāo)準(zhǔn)SQL混合使用,執(zhí)行連接(Join)、過(guò)濾(Filtering)與聚合(Aggregation)操作,并以最小擴(kuò)充支持巢狀和半結(jié)構(gòu)化資料,讓開(kāi)發(fā)者以簡(jiǎn)單且一致的方法,不需要更改查詢(xún)語(yǔ)言,就能查詢(xún)各種格式和服務(wù)的資料。
PartiQL具格式獨(dú)立性與儲(chǔ)存獨(dú)立性,PartiQL語(yǔ)法和語(yǔ)義不依賴(lài)任何資料格式,無(wú)論使用者是要查詢(xún)JSON、Parquet、ORC、CSV還是Ion等格式,查詢(xún)語(yǔ)句的寫(xiě)法都相同,PartiQL的查詢(xún)?cè)诰C合邏輯類(lèi)型系統(tǒng)上運(yùn)作,才對(duì)應(yīng)到不同底層的格式。而PartiQL也不相依于特定資料儲(chǔ)存,因此適用于不同的底層資料儲(chǔ)存。
雖然過(guò)去針對(duì)跨不同類(lèi)型數(shù)據(jù)庫(kù)查詢(xún)的問(wèn)題,已有不少解決方案,AWS指出,像是Postgres JSON同樣也兼容于SQL,但是卻無(wú)法良好地處理JSON巢狀資料;而半結(jié)構(gòu)化查詢(xún)語(yǔ)言,雖然能良好處理巢狀資料,但卻無(wú)法與SQL語(yǔ)言兼容。AWS提到,PartiQL是第一個(gè)能夠完全解決這些問(wèn)題的查詢(xún)語(yǔ)言。
目前AWS已在自家多項(xiàng)服務(wù)支持PartiQL,包括Amazon S3 Select、Amazon Glacier Select、Amazon Redshift Spectrum、Amazon QLDB,接下來(lái)幾個(gè)月將會(huì)有更多的AWS服務(wù)支持PartiQL,Couchbase也公布將加入支持PartiQL的行列?,F(xiàn)在PartiQL以Apache2.0授權(quán)許可開(kāi)源,公開(kāi)教學(xué)、規(guī)范以及參考實(shí)作,所有社群都能使用并參與貢獻(xiàn)。
NoSQL太火,冒出太多產(chǎn)品了,保守估計(jì)也成百上千了。
互聯(lián)網(wǎng)公司常用的基本集中在以下幾種,每種只舉一個(gè)比較常見(jiàn)或者應(yīng)用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時(shí)提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算的能力,成功用法是替代memcached,通過(guò)checkpoint和commit log提供了快速的宕機(jī)恢復(fù),同時(shí)支持replication提供讀可擴(kuò)展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盤(pán)的key-value storage, 模型單一簡(jiǎn)單,數(shù)據(jù)量不受限于內(nèi)存大小,數(shù)據(jù)落盤(pán)高可靠,Google的幾位大神出品的精品,LSM模型天然寫(xiě)優(yōu)化,順序?qū)懕P(pán)的方式對(duì)于新硬件ssd再適合不過(guò)了,不足是僅提供了一個(gè)庫(kù),需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區(qū)別mysql的最大亮點(diǎn):可擴(kuò)展性。mongodb 最新引人的莫過(guò)于提供了sql接口,是目前nosql里最像mysql的,只是沒(méi)有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對(duì)于數(shù)據(jù)量遠(yuǎn)超內(nèi)存限制的場(chǎng)景來(lái)說(shuō),還需要慎重。
4. Column Table Store: HBase
這個(gè)富二代似乎不用贅述了,最大的優(yōu)勢(shì)是開(kāi)源,對(duì)于普通的scan和基于行的get等基本查詢(xún),性能完全不是問(wèn)題,只是只提供裸的api,易用性上是短板,可擴(kuò)展性方面是最強(qiáng)的,其次坐上了Hadoop的快車(chē),社區(qū)發(fā)展很快,各種基于其上的開(kāi)源產(chǎn)品不少,來(lái)解決諸如join、聚集運(yùn)算等復(fù)雜查詢(xún)。