SQL入门经典之数据库基本查询添加更新和删除
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL入门经典之数据库基本查询添加更新和删除相关的知识,希望对你有一定的参考价值。
使用SQL查询:
SQL查询基本语法:
SELECT [ALL|DISTINCT] [TOP (<expression>) [PERCENT] [WITH TIES] ] <column list> [FROM <source table(s)/view>] [WHERE <restrictive condition>]
[GROUD BY<column name or expression using a column in the SELECT list>]
[HAVING <restrictive condition based on the GROUP BY results>]
[ORDER BY <column list>]
[[FOR XML {ROW|AUTO|EXPLICIT|PATH[(<element>)]},XMLDATA][,ELEMENTS][,BINARY base 64]]
[OPTION (<query hint>,[,.....n])]
上面sql语句看起来很复杂。现在大家一一讲解。
SELECT 告诉sql执行什么操作。FROM 要操作的是那个表(注意事项:查询中不能使用*作为字段。查询多少字段,就写多少字段名称)
SELECT * FROM Person.Contact --我要在Person.Contact这个表查询
WHERE 查询条件过滤
SELECT * FROM Person.Contact WHERE FirstName like ‘M%‘--我要在Person.Contact这个表下查找是FirstName 开头为M的联系人
WHERE字句中可用的运算符如下:
GROUP BY 子句聚合数据函数:
做为BOSS要想知道每件商品的销售量和总价格。就要使用聚合函数
SELECT SalesOrderID,sum(UnitPrice) as TotalPrice FROM Sales.SalesOrderDetail Group BY SalesOrderID--聚合函数 SELECT SalesOrderID,sum(UnitPrice) as TotalPrice FROM Sales.SalesOrderDetail Group BY SalesOrderID having sum(UnitPrice) >10000
注意事项:过滤掉销售额小于10000的商品。不知道为什么TotalPrice 不能作为聚合函数的过滤。只能用 sum(UnitPrice) 过滤.可以在聚合函数前使用where过滤。where过滤不能使用聚合函数。容易错误点:group by 后面使用where过滤。GROUP by 只能用having过滤。having 过滤等聚合函数填充完毕后才能过滤。
聚合函数有:COUNT()求个数 SUM()求和 AVG()求平均数 MIN()最小值 MAX()最大值这些是比较常用的聚合函数,可以单独使用,也可以和group by使用。
现在介绍COUNT()聚合函数 :先看2条代码和结果
select count(1) from Person.Contact --结果19972条数据 select count(MiddleName) from Person.Contact --11473条数据
上面2条数据结果不一样,这个不用当心。后面博客会说这个问题(建议不要带列名作为count聚合函数)
ORDER BY 排序查询:
BOSS要求看那个商品销售前10名:这里也把TOP这个关键词介绍了。order by 那个字段DESC 按照那个字段降序排,asc升序排。top取前面多少条数据
SELECT TOP 10 SalesOrderID,sum(UnitPrice) as TotalPrice FROM Sales.SalesOrderDetail Group BY SalesOrderID having sum(UnitPrice) >10000 ORDER BY TotalPrice DESC --按照销售额从高到底排序前10名数据
DISTINCT 和ALL的谓词:如果数据库有100条一样数据。 ALL是全部加载一样数据100次。DISTINCT只加载一条数据。其余99条舍弃掉。
FOR XML这里不做介绍了。后面有专门博客介绍这个查询。
INSERT 添加数据
基本语法:INSERT [TOP (<expression> )[PERCENT] [INTO] <table object>[(<column listt>)][OUTPUT <output clause>] {VALUES(<data value>)[,(datavalues)][,....n]|<table source>|EXEC <procedure>|DEFAULT VALUES}
上面语法是不是看起来很复杂,简化语法:INSERT INTO<tables object>[(<column list>)] VALUES(<data value>)[,(datavalues)][,....n]
[先暂时写到这里,我要学习英语了]
以上是关于SQL入门经典之数据库基本查询添加更新和删除的主要内容,如果未能解决你的问题,请参考以下文章