Sql 学习笔记2Word文档格式.docx
- 文档编号:20630232
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:19
- 大小:21.12KB
Sql 学习笔记2Word文档格式.docx
《Sql 学习笔记2Word文档格式.docx》由会员分享,可在线阅读,更多相关《Sql 学习笔记2Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
COUNT(*)
返回被选行数
FIRST(column)
返回在指定的域中第一个记录的值
LAST(column)
返回在指定的域中最后一个记录的值
MAX(column)
返回某列的最高值
MIN(column)
返回某列的最低值
STDEV(column)
STDEVP(column)
SUM(column)
返回某列的总和
VAR(column)
VARP(column)
在SQLServer中的合计函数
BINARY_CHECKSUM
CHECKSUM
CHECKSUM_AGG
返回某列的行数(不包括NULL值)
COUNT(DISTINCTcolumn)
返回相异结果的数目
返回在指定的域中第一个记录的值(SQLServer2000不支持)
返回在指定的域中最后一个记录的值(SQLServer2000不支持)
Scalar函数
Scalar函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。
MSAccess中的Scalar函数
UCASE(c)
将某个域转换为大写
LCASE(c)
将某个域转换为小写
MID(c,start[,end])
从某个文本域提取字符
LEN(c)
返回某个文本域的长度
INSTR(c,char)
返回在某个文本域中指定字符的数值位置
LEFT(c,number_of_char)
返回某个被请求的文本域的左侧部分
RIGHT(c,number_of_char)
返回某个被请求的文本域的右侧部分
ROUND(c,decimals)
对某个数值域进行指定小数位数的四舍五入
MOD(x,y)
返回除法操作的余数
NOW()
返回当前的系统日期
FORMAT(c,format)
改变某个域的显示方式
DATEDIFF(d,date1,date2)
用于执行日期计算
SQLAVG函数
定义和用法
AVG函数返回数值列的平均值。
NULL值不包括在计算中。
SQLAVG()语法
SELECTAVG(column_name)FROMtable_name
SQLAVG()实例
我们拥有下面这个"
Orders"
表:
O_Id
OrderDate
OrderPrice
Customer
1
2008/12/29
1000
Bush
2
2008/11/23
1600
Carter
3
2008/10/05
700
4
2008/09/28
300
5
2008/08/06
2000
Adams
6
2008/07/21
100
例子1
现在,我们希望计算"
OrderPrice"
字段的平均值。
我们使用如下SQL语句:
SELECTAVG(OrderPrice)ASOrderAverageFROMOrders
结果集类似这样:
OrderAverage
950
例子2
现在,我们希望找到OrderPrice值高于OrderPrice平均值的客户。
SELECTCustomerFROMOrders
WHEREOrderPrice>
(SELECTAVG(OrderPrice)FROMOrders)
COUNT()函数返回匹配指定条件的行数。
SQLCOUNT()语法
SQLCOUNT(column_name)语法
COUNT(column_name)函数返回指定列的值的数目(NULL不计入):
SELECTCOUNT(column_name)FROMtable_name
SQLCOUNT(*)语法
COUNT(*)函数返回表中的记录数:
SELECTCOUNT(*)FROMtable_name
SQLCOUNT(DISTINCTcolumn_name)语法
COUNT(DISTINCTcolumn_name)函数返回指定列的不同值的数目:
SELECTCOUNT(DISTINCTcolumn_name)FROMtable_name
COUNT(DISTINCT)适用于ORACLE和MicrosoftSQLServer,但是无法用于MicrosoftAccess。
SQLCOUNT(column_name)实例
我们拥有下列"
现在,我们希望计算客户"
Carter"
的订单数。
SELECTCOUNT(Customer)ASCustomerNilsenFROMOrders
WHERECustomer='
Carter'
以上SQL语句的结果是2,因为客户Carter共有2个订单:
CustomerNilsen
SQLCOUNT(*)实例
如果我们省略WHERE子句,比如这样:
SELECTCOUNT(*)ASNumberOfOrdersFROMOrders
NumberOfOrders
这是表中的总行数。
SQLCOUNT(DISTINCTcolumn_name)实例
表中不同客户的数目。
SELECTCOUNT(DISTINCTCustomer)ASNumberOfCustomersFROMOrders
NumberOfCustomers
这是"
表中不同客户(Bush,Carter和Adams)的数目。
FIRST()函数
FIRST()函数返回指定的字段中第一个记录的值。
提示:
可使用ORDERBY语句对记录进行排序。
SQLFIRST()语法
SELECTFIRST(column_name)FROMtable_name
SQLFIRST()实例
现在,我们希望查找"
列的第一个值。
SELECTFIRST(OrderPrice)ASFirstOrderPriceFROMOrders
FirstOrderPrice
LAST()函数
LAST()函数返回指定的字段中最后一个记录的值。
SQLLAST()语法
SELECTLAST(column_name)FROMtable_name
SQLLAST()实例
列的最后一个值。
SELECTLAST(OrderPrice)ASLastOrderPriceFROMOrders
LastOrderPrice
MAX()函数
MAX函数返回一列中的最大值。
SQLMAX()语法
SELECTMAX(column_name)FROMtable_name
MIN和MAX也可用于文本列,以获得按字母顺序排列的最高或最低值。
SQLMAX()实例
列的最大值。
SELECTMAX(OrderPrice)ASLargestOrderPriceFROMOrders
LargestOrderPrice
MIN()函数
MIN函数返回一列中的最小值。
SQLMIN()语法
SELECTMIN(column_name)FROMtable_name
SQLMIN()实例
列的最小值。
SELECTMIN(OrderPrice)ASSmallestOrderPriceFROMOrders
SmallestOrderPrice
SUM()函数
SUM函数返回数值列的总数(总额)。
SQLSUM()语法
SELECTSUM(column_name)FROMtable_name
SQLSUM()实例
字段的总数。
SELECTSUM(OrderPrice)ASOrderTotalFROMOrders
OrderTotal
5700
合计函数(比如SUM)常常需要添加GROUPBY语句。
GROUPBY语句
GROUPBY语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SQLGROUPBY语法
SELECTcolumn_name,aggregate_function(column_name)
FROMtable_name
WHEREcolumn_nameoperatorvalue
GROUPBYcolumn_name
SQLGROUPBY实例
现在,我们希望查找每个客户的总金额(总订单)。
我们想要使用GROUPBY语句对客户进行组合。
我们使用下列SQL语句:
SELECTCustomer,SUM(OrderPrice)FROMOrders
GROUPBYCustomer
SUM(OrderPrice)
1700
很棒吧,对不对?
让我们看一下如果省略GROUPBY会出现什么情况:
上面的结果集不是我们需要的。
那么为什么不能使用上面这条SELECT语句呢?
解释如下:
上面的SELECT语句指定了两列(Customer和SUM(OrderPrice))。
SUM(OrderPrice)"
返回一个单独的值("
列的总计),而"
Customer"
返回6个值(每个值对应"
表中的每一行)。
因此,我们得不到正确的结果。
不过,您已经看到了,GROUPBY语句解决了这个问题。
GROUPBY一个以上的列
我们也可以对一个以上的列应用GROUPBY语句,就像这样:
SELECTCustomer,OrderDate,SUM(OrderPrice)FROMOrders
GROUPBYCustomer,OrderDate
HAVING子句
在SQL中增加HAVING子句原因是,WHERE关键字无法与合计函数一起使用。
SQLHAVING语法
HAVINGaggregate_function(column_name)operatorvalue
SQLHAVING实例
现在,我们希望查找订单总金额少于2000的客户。
HAVINGSUM(OrderPrice)<
结果集类似:
现在我们希望查找客户"
Bush"
或"
Adams"
拥有超过1500的订单总金额。
我们在SQL语句中增加了一个普通的WHERE子句:
Bush'
ORCustomer='
Adams'
HAVINGSUM(OrderPrice)>
1500
结果集:
UCASE()函数
UCASE函数把字段的值转换为大写。
SQLUCASE()语法
SELECTUCASE(column_name)FROMtable_name
SQLUCASE()实例
Id
LastName
FirstName
Address
City
John
OxfordStreet
London
George
FifthAvenue
NewYork
Thomas
ChanganStreet
Beijing
现在,我们希望选取"
LastName"
和"
FirstName"
列的内容,然后把"
列转换为大写。
SELECTUCASE(LastName)asLastName,FirstNameFROMPersons
ADAMS
BUSH
CARTER
LCASE()函数
LCASE函数把字段的值转换为小写。
SQLLCASE()语法
SELECTLCASE(column_name)FROMtable_name
SQLLCASE()实例
列转换为小写。
SELECTLCASE(LastName)asLastName,FirstNameFROMPersons
adams
bush
carter
MID()函数
MID函数用于从文本字段中提取字符。
SQLMID()语法
SELECTMID(column_name,start[,length])FROMtable_name
参数
column_name
必需。
要提取字符的字段。
start
规定开始位置(起始值是1)。
length
可选。
要返回的字符数。
如果省略,则MID()函数返回剩余文本。
SQLMID()实例
现在,我们希望从"
City"
列中提取前3个字符。
SELECTMID(City,1,3)asSmallCityFROMPersons
SmallCity
Lon
New
Bei
LEN()函数
LEN函数返回文本字段中值的长度。
SQLLEN()语法
SELECTLEN(column_name)FROMtable_name
SQLLEN()实例
La
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Sql 学习笔记2 学习 笔记