您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關SQL Server數據庫創建數據庫和創建表以及條件查詢怎么操作,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
SQLServer數據庫的學習過程是比較枯燥的,因為我們不但要熟練掌握企業管理器的操作,還要熟練掌握SQL語句的查詢。其實這一過程是通過做大量的實踐練習來熟練掌握的。下面億速云小編來講解下SQLServer數據庫創建數據庫和創建表以及條件查詢怎么操作?
SQLServer數據庫創建數據庫和創建表以及條件查詢怎么操作
1、創建數據庫以及創建表
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訂了貨(曾經出過錯)
createtableb(cidvarchar(10),aidvarchar(4))insertintobselectcid,aidfromORDERSgroupbycid,aid
selectdistinctaname,cnamefromAGENTS,CUSTOMERS,bwhereAGENTS.aid=b.aidandCUSTOMERS.cid=b.cid
--上面是通過建臨時表得出結果,假如直接寫呢(注意一定還要有distinct)
selectdistinctcname,anamefromagents,customers,orderswhereagents.aid=orders.aidandcustomers.cid=orders.cid
--答案:
selectdistinctCUSTOMERS.cname,AGENTS.anamefromCUSTOMERS,AGENTS,ORDERSwhereCUSTOMERS.cid=ORDERS.cidandAGENTS.aid=ORDERS.aid
--可以看出,答案非常簡單
SQLServer數據庫創建數據庫和創建表以及條件查詢怎么操作
--題4:在orders表的基礎上生成含有列ordno,cid,aid,pid和profit的"表",其中的profit是由quantity和price計算所得,方法是全部銷售收入減去60%的銷售收入.顧客的折扣以及代理商的酬金百分率
--答案:此題告訴我們關鍵字加[]的重要性,不然一直出現“關鍵字'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
--此題的關鍵點即為可以給一個表取兩個別名.假如題目要求在一個表中的同一列取出匹配項的話都可以用這種方法。
--題6:找出至少被兩個顧客訂購的產品的pid值
selectpid,count(cid)as訂購產品的顧客數量fromordersgroupbypidhavingcount(cid)>=2
--此時用此法更好一些
--答案:
selectdistinctx1.pidfromordersx1,ordersx2wherex1.pid=x2.pidandx1.cid
--總結:對一個表的操作大多可以通過去別名來完成,這里應該會有冗余
--題6:查詢那些訂購了某個被代理商a06訂購過的產品的顧客的cid值
selectdistinctcidfromorderswherepidin(selectpidfromorderswhereaid='a06')
--這時用in感覺渾然天成,因為這里要去的是“某一個”被代理商a06訂購過的產品
--同理,對一個表里面的這種操作都可以通過取別名(且這種方式更簡單)
selectdistincty.cidfromordersx,ordersywherey.pid=x.pidandx.aid='a06'
--總結:可以用一次查詢的就用一次查詢,通過表取別名。
關于SQL Server數據庫創建數據庫和創建表以及條件查詢怎么操作就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。