SQL之三
2017-01-12 11:38
197 查看
SQL之三
注:有些sql语句在不同的DBMS中不能执行。
1. 日期和时间处理函数
日期和时间采用相应的数据类型存储在表中,每种DBMS都有自己的特殊形式。日期和时间以特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。
举例1:
Orders表中包含的订单都带有订单日期。
为在SQL Server中检索2012年的所有订单。
Select order_num from Orders where datepart(yy,order_date) = 2012;
在Access中使用如下sql语句:
Select order_num from Orders where datepart(‘yyyy’,order_date) = 2012;
Oracle没有datepart()函数,不过有几个可用来完成相同检索的日期处理函数:
Select order_num from Orders where to_number(to_char(order_date,’yyyy’)) = 2016;
举一反三:
Select order_num from Orders where to_number(to_char(order_date,’mm’)) = 1;
这里查询的是所有1月份的
Select order_num from Orders where to_number(to_char(order_date,’dd’)) = 2;
这里查询的是所有2号的
举例2:
Orders表中2012年一月一号至2012年十二月三十一号的订单
Select order_num from where order_date between to_date(’01-01-2012’) and to_date(’12-31-2012’);
2. 数值处理函数
abs() 返回一个数的绝对值(绝对值:正数的绝对值就是它本身,负数的绝对值是-负数,0的绝对值就是0)
cos() 返回一个角度的余弦
exp() 返回一个数的指数值
p() 返回圆周率
sin() 返回一个角度的正弦
sqrt() 返回一个书的平方根
tan() 返回一个角度的正切
3. 汇总数据
聚集函数:
Avg() 返回某列的平均值
Count() 返回某列的函数
Max() 返回某列的最大值
Min() 返回某列的最小值
Sum() 返回某列值之和
下面是SQL语句的例子:
所有产品的平均价格
Select avg(prod_price) as avg_price from Products;
查询特定供应商所提供产品的平均价格:
Select avg(prod_price) as avg_price from Products where vend_id=’DLL01’;
注:avg()只用于单个列,avg()只能用来确定特定数值列的平均值,而且列名必须作为函数给出。为了获得多个列的平均值,必须使用多个avg()函数;avg()函数忽略列值为null的行。
返回Customers表中顾客的总数:
Select count(*) as num_cust from Customers;
注:如果count()函数指定的是某列,那么会忽略指定列为空的行,但如果用的是count(*),则不会忽略。
返回价格最多的订单
Select max(prod_price) as max_price from Products;
注:max()会忽略列值为null的值。
返回价格最少的订单
Select min(prod_price) as min_price from Products;
返回指定物品的数量之和
Select sum(quantity) as items_ordered from OrderItems where order_num = 20005;
返回总的订单的金额
Select sum(item_price * quantity) as total_price from OrderItems;
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- 10 件在 PHP 7 中不要做的事情
- 使用SQL Server连接服务器访问DB2 Server
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- SQL Server 中 RAISERROR 的用法详细介绍