SQL Server数据库创建数据库和创建表以及条件查询怎么操作

66次阅读
没有评论

共计 4251 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 SQL Server 数据库创建数据库和创建表以及条件查询怎么操作,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

SQLServer 数据库的学习过程是比较枯燥的,因为我们不但要熟练掌握企业管理器的操作,还要熟练掌握 SQL 语句的查询。其实这一过程是通过做大量的实践练习来熟练掌握的。下面丸趣 TV 丸趣 TV 小编来讲解下 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 数据库创建数据库和创建表以及条件查询怎么操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计4251字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)