这篇文章将为大家详细讲解有关SQL Server数据库创建数据库和创建表以及条件查询怎么操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
这篇文章将为大家详细讲解有关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数据库创建数据库和创建表以及条件查询怎么操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。