溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》
  • 首頁 > 
  • 教程 > 
  • 數(shù)據(jù)庫 > 
  • SQL Server數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作

SQL Server數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作

發(fā)布時間:2021-10-13 11:19:34 來源:億速云 閱讀:274 作者:柒染 欄目:數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)SQL Server數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

  SQLServer數(shù)據(jù)庫的學(xué)習(xí)過程是比較枯燥的,因為我們不但要熟練掌握企業(yè)管理器的操作,還要熟練掌握SQL語句的查詢。其實這一過程是通過做大量的實踐練習(xí)來熟練掌握的。下面億速云小編來講解下SQLServer數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作?

  SQLServer數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作

  1、創(chuàng)建數(shù)據(jù)庫以及創(chuàng)建表

  createdatabaseCAPcreatetableCUSTOMERS(cidvarchar(10)primarykey,canmevarchar(10),cityvarchar(20),discntmoney)insertintoCUSTOMERSvalues('c001','TipTop','Duluth',10.00)insertintoCUSTOMERSvalues('c002','Basics','Dallas',12.00)insertintoCUSTOMERSvalues('c003','Allied','Dallas',8.00)insertintoCUSTOMERSvalues('c004','ACME','Duluth',8.00)insertintoCUSTOMERSvalues('c006','ACME','Kyoto',0.00)

  createtablePRODUCTS(pidvarchar(10)primarykey,pnamevarchar(10),cityvarchar(20),quantityvarchar(10),pricemoney)insertintoPRODUCTSvalues('p01','comb','Dallas','111400',0.50)insertintoPRODUCTSvalues('p02','brush','Newark','203000',0.50)insertintoPRODUCTSvalues('p03','razor','Duluth','150600',1.00)insertintoPRODUCTSvalues('p04','pen','Duluth','125300',1.00)insertintoPRODUCTSvalues('p05','pencil','Dallas','221400',1.00)insertintoPRODUCTSvalues('p06','folder','Dallas','123100',2.00)insertintoPRODUCTSvalues('p07','case','Newark','100500',1.00)

  createtableAGENTS(aidvarchar(4)primarykey,anamevarchar(10),cityvarchar(10),[percent]int)insertintoAGENTSvalues('a01','Smith','NewYork',6)insertintoAGENTSvalues('a02','Jones','Newark',6)insertintoAGENTSvalues('a03','Brown','Tokyo',7)insertintoAGENTSvalues('a04','Gray','NewYork',6)insertintoAGENTSvalues('a05','Otasi','Duluth',5)insertintoAGENTSvalues('a06','Smith','Dallas',5)

  createtableORDERS(ordnovarchar(4),[month]varchar(3),cidvarchar(10),aidvarchar(4),pidvarchar(10),qtyint,dollarsmoney)insertintoORDERSvalues('1011','jan','c001','a01','p01',1000,450.00)insertintoORDERSvalues('1012','jan','c001','a01','p01',1000,450.00)insertintoORDERSvalues('1019','feb','c001','a02','p02',400,180.00)insertintoORDERSvalues('1017','feb','c001','a06','p03',600,540.00)insertintoORDERSvalues('1018','feb','c001','a03','p04',600,540.00)insertintoORDERSvalues('1023','mar','c001','a04','p05',500,450.00)insertintoORDERSvalues('1022','mar','c001','a05','p06',400,720.00)insertintoORDERSvalues('1025','apr','c001','a05','p07',800,720.00)insertintoORDERSvalues('1013','jan','c002','a03','p03',1000,880.00)insertintoORDERSvalues('1026','may','c002','a05','p03',800,704.00)insertintoORDERSvalues('1015','jan','c003','a03','p05',1200,1104.00)insertintoORDERSvalues('1014','jan','c003','a03','p05',1200,1104.00)insertintoORDERSvalues('1021','feb','c004','a06','p01',1000,460.00)insertintoORDERSvalues('1016','jan','c006','a01','p01',1000,500.00)insertintoORDERSvalues('1020','feb','c006','a03','p07',600,600.00)insertintoORDERSvalues('1024','mar','c006','a06','p01',800,400.00)

  2、sql語句的編寫

  --題1:找出住在紐約的代理商的aid值和名字

  selectaid,anamefromAGENTSwherecity='NewYork'

  --題2:檢索訂貨記錄中所有零件的pid值

  selectdistinctpidfromORDERS

  --題3:檢索所有滿足以下條件的顧客-代理商姓名對(cname,aname),其中的cname通過aname訂了貨(曾經(jīng)出過錯)

  createtableb(cidvarchar(10),aidvarchar(4))insertintobselectcid,aidfromORDERSgroupbycid,aid

  selectdistinctaname,cnamefromAGENTS,CUSTOMERS,bwhereAGENTS.aid=b.aidandCUSTOMERS.cid=b.cid

  --上面是通過建臨時表得出結(jié)果,假如直接寫呢(注意一定還要有distinct)

  selectdistinctcname,anamefromagents,customers,orderswhereagents.aid=orders.aidandcustomers.cid=orders.cid

  --答案:

  selectdistinctCUSTOMERS.cname,AGENTS.anamefromCUSTOMERS,AGENTS,ORDERSwhereCUSTOMERS.cid=ORDERS.cidandAGENTS.aid=ORDERS.aid

  --可以看出,答案非常簡單

  SQLServer數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作

  --題4:在orders表的基礎(chǔ)上生成含有列ordno,cid,aid,pid和profit的"表",其中的profit是由quantity和price計算所得,方法是全部銷售收入減去60%的銷售收入.顧客的折扣以及代理商的酬金百分率

  --答案:此題告訴我們關(guān)鍵字加[]的重要性,不然一直出現(xiàn)“關(guān)鍵字'percent'附近有語法錯誤。”

  selectordno,x.cid,x.aid,x.pid,40*(x.qty*p.price)-01*(c.discnt+a.[percent])*(x.qty*p.price)asprofitfromordersasx,customersasc,agentsasa,productsaspwherec.cid=x.cidanda.aid=x.aidandp.pid=x.pid;

  --題5:求出住在同一城市的顧客對。

  selectdistinctc1.cname,c2.cname,c1.cityfromcustomersc1,customersc2wherec1.city=c2.cityandc1.cname

  --此題的關(guān)鍵點(diǎn)即為可以給一個表取兩個別名.假如題目要求在一個表中的同一列取出匹配項的話都可以用這種方法。

  --題6:找出至少被兩個顧客訂購的產(chǎn)品的pid值

  selectpid,count(cid)as訂購產(chǎn)品的顧客數(shù)量fromordersgroupbypidhavingcount(cid)>=2

  --此時用此法更好一些

  --答案:

  selectdistinctx1.pidfromordersx1,ordersx2wherex1.pid=x2.pidandx1.cid

  --總結(jié):對一個表的操作大多可以通過去別名來完成,這里應(yīng)該會有冗余

  --題6:查詢那些訂購了某個被代理商a06訂購過的產(chǎn)品的顧客的cid值

  selectdistinctcidfromorderswherepidin(selectpidfromorderswhereaid='a06')

  --這時用in感覺渾然天成,因為這里要去的是“某一個”被代理商a06訂購過的產(chǎn)品

  --同理,對一個表里面的這種操作都可以通過取別名(且這種方式更簡單)

  selectdistincty.cidfromordersx,ordersywherey.pid=x.pidandx.aid='a06'

  --總結(jié):可以用一次查詢的就用一次查詢,通過表取別名。

關(guān)于SQL Server數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表以及條件查詢怎么操作就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI