码迷,mamicode.com
首页 > 数据库 > 详细

数据库之函数、数据类型转换

时间:2015-07-18 12:29:32      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

一、数学函数

select degree ,sqrt(degree) from score --开平方,平方根

select price, ceiling(Price) from car -- 取大于当前小数的最小整数

select price, floor(Price) from car -- 取小于当前小数的最大整数

select price, round(Price,-1) from car -- 四舍五入,保留几位

select ABS(-2) -- 取绝对值

select RAND()*100 -- 生成随机数,默认是生成0-1之间的数

 

二、字符串函数

select LOWER(Welcome) --转小写
select UPPER(welcome) --转大写
select LTRIM(   hello)--压缩左边的空格
select RTRIM(hello   )--压缩右边的空格
select * from News--查看NEWS里所有列
select left(title,5) from News -- 从左侧截取字符串,截n个字符
select right(title,5) from News --从右侧截取字符串,截n个字符
select substring(title,3,5) from News--从某位置截取字符串,截取长度为n
select reverse(title) from News -- 翻转字符串
select replace(title,海贼,路飞) from News --替换字符串
select STUFF(title,4,3,索隆) from News--替换指定位置的字符串
select LEN( hello) -- 字符串的长度

三、日期时间函数

select * from student
select year(sbirthday) from student -- 取日期时间中的年份
select month(sbirthday) from student -- 取日期时间中的月份
select day(sbirthday) from student -- 取日期时间中的天
select GETDATE() --获取当前系统的时间
select datepart(yy,sbirthday) from student--取日期时间的一部分

四、聚合函数

在查询语句时,也存在一些方法和属性,而这些方法在查询时统称为函数,便利查询时使用

聚合函数(都是针对字段操作)

聚合是缩减一系列输入值的表达式,例如缩减为单个值。

Select*from biao

1、--求平均分AVG:只能对数字类型的操作,返回一个值(返回非null值的平均值)

Select AVG(age)from biao--执行后没有列名

Select AVG(age) as nianing from biao---执行后有列名,加as.

--放在select...from之间的一定是列名。

--as(...)里面可以起别名

--加条件用where:

例:Select AVG(yuwen) as 语文平均 from biao where banji=‘1班’

2、--求总数COUNT,只有2种要么count(*),要么(distinct)去重。(返回包含null值和重复值的聚合的大小)

1)Select COUNT(*) from  biao   count(*)查询表所有

Select COUNT(*) from biao where name like‘王%’

2)Select COUNT(distinct banji) from biao

3、--求最大值MAX  ()+字段(返回非null值的最大值)

Select MAX(yuwen)as...(+别名) from biao where banji=’1班’

4、--求最小值MIN()+字段(返回非null值的最小值)

 Select MIN(yuwen)as...(+别名) from biao where banji=’2班’

5、--求总和SUM(返回非null 值的总和)

Select SUM(yuwen) from biao

Select SUM(yuwen) from biao where....

6、组合使用聚合函数(以上这些聚合函数,都是返回一行一列数值)

select AVG(age) as 平均年龄,COUNT(*) as 人数 from biao where banji=‘1班‘

以上5种是常用的聚合函数(重点记忆),聚合函数都包含 all(所有)和distinct(去重),什么都不写,默认是all;

除此之外,聚合函数还包括COUNT-BIG,CHECKSUM等13种。

例:

技术分享

7、--分组group by(等同于聚合函数里的grouping),针对某一列操作。可以组合上面学的聚合函数

技术分享

不同于聚合函数的是,聚合函数只能显示一个值,而分组显示一组值(每一组)。

select banji from biao group by banji

--按照要求,先分组再结合聚合函数操作

select banji AVG(yuwen) from biao group by banji

--分组也可以加条件where

Select nianing from biao where nianling>20 group by nianling

(补充)关系运算符:

=/!=/

技术分享

例:select nianling,COUNT(*)from biao where nianling between 20and 25 group by nianling

     select grade,COUNT(*)from xuesheng where yuwen>60 group by grade 

8、--having是group by独有的,(只能加聚合函数的选择条件)

having是针对统计好的结果进行筛选,所以使用having的前提必须使用group by.

 select grade,COUNT(*)from xuesheng where yuwen>60 group by grade having COUNT(*)>9

执行having的条件顺序:

1)查询整个表

2)先看where条件

3)筛选完再执行group by

4)再执行前面的聚合函数,针对每组分别操作

5)最后执行having后面的聚合函数。

9、group by....order by....

例:Select banji,COUNT(*)from biao where yuwen>75 group by banji order by COUNT(*) desc

执行order by条件先后顺序:

1)查询整个表

2)先看where条件

3)筛选完再执行group by

4)再执行前面的聚合函数,针对每组分别操作

5)最后执行order by..后面的聚合函数。

例题:

 select grade,MAX(shuxue)as 数学最高,MIN(shuxue) as 数学最低,MAX(yuwen)as 语文最高,MIN(yuwen) as 语文最低,MAX(yingyu)as 英语最高,MIN(yingyu) as 英语最低 from xuesheng group by grade having MAX(shuxue)>80 order by MAX(shuxue) desc

技术分享

五、数据转换、函数转换

技术分享

 

 

练习:查看名字,生日

技术分享

数据库之函数、数据类型转换

标签:

原文地址:http://www.cnblogs.com/franky2015/p/4656421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!