数据库常用函数
数据库常用函数汇总统计

实验二(续):利用SQL语句查询三、常用库函数及统计汇总查询1、求学号为 S1学生的总分和平均分;select sum(score) as TotalScore,avg(score)as AveScorefrom scwhere sno='S1'2、求选修 C1号课程的最高分、最低分及之间相差的分数;select max(score)as MaxScore,min(score)as MinScore, max(score)- min(score)as difffrom scwhere cno='C1'3、求选修 C1号课程的学生人数和最高分;select count(distinct sno),max(score)from scwhere cno='C 1'4、求计算机系学生的总数;select count(sno)from swhere dept=' 计算机 '5、求学校中共有多少个系;select count(distinct dept) as DeptNumfrom s6、统计有成绩同学的人数;select count(score)from sc7、利用特殊函数 COUNT(*)求计算机系学生的总数;select count(*)from swhere dept=' 计算机 '8、利用特殊函数 COUNT(*)求女学生总数和平均年龄;select count(*),avg(age)from swhere sex=' 女 '9、利用特殊函数 COUNT(*)求计算机系女教师的总数。
select count(*)from twhere dept=' 计算机 'and sex=' 女 '四、分组查询及排序1、查询各个教师的教师号及其任课门数;select tno,count(*)as c_numfrom tcgroup by tno2、按系统计女教师的人数;select dept,count(tno)from twhere sex=' 女 'group by dept3、查询选修两门以上课程的学生的学号和选课门数;select sno,count(*)as sc_numfrom scgroup by snohaving count(*)>24、查询平均成绩大于 70分的课程号和平均成绩;select cno,avg(score)from scgroup by cnohaving avg(score)>705、查询选修 C1的学生学号和成绩,并按成绩降序排列;select sno,scorefrom scwhere cno='01'order by score desc6、查询选修 C2、C3、C4或C5课程的学号、课程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列;select sno,cno,scorefrom scwhere cno in('C2','C3','C4','C5')order by sno ,score desc7、求有三门以上选课成绩及格的学生的学号及其总成绩,查询结果按总成绩降序列出。
数据库count函数的用法

数据库count函数的用法COUNT 函数是SQL 中常用的一个聚合函数,用于计算表中的行数或特定列中的非空值数量。
以下是 COUNT 函数的基本用法和一些示例:基本语法sql复制代码SELECTCOUNT(column_name)FROM table_nameWHERE condition;示例1.计算表中的总行数:sql复制代码SELECT COUNT(*) FROMstudents;这将返回 students 表中的总行数。
2. 计算特定列的非空值数量:sql复制代码SELECT COUNT(name) FROMstudents;这将返回 students 表中 name 列的非空值数量。
3. 计算满足特定条件的行数:sql复制代码SELECT COUNT(*) FROM students WHEREage > 20;这将返回 students 表中年龄大于20 的学生数量。
4. 计算多列的组合非空值数量:sql复制代码SELECT COUNT(DISTINCT name, age) FROM students;这将返回 students 表中不同 name 和 age 组合的数量。
注意事项•COUNT(*) 计算表中的总行数,包括所有列都为空的行。
•COUNT(column_name) 计算特定列的非空值数量。
如果列值为NULL,则不计入总数。
•COUNT(DISTINCT column_name) 计算特定列的唯一非空值数量。
•使用 WHERE 子句可以限制计数范围,只计算满足特定条件的行。
这些只是 COUNT 函数的基本用法。
在实际应用中,你可以根据具体需求灵活使用 COUNT 函数来处理数据。
数据库聚集函数

数据库聚集函数数据库聚集函数是数据库中常用的一种函数,它用于统计数据表中某一列的数据信息。
本文将介绍常用的数据库聚集函数及其用法。
1. COUNT函数COUNT函数是最常用的聚集函数之一,它用于计算数据表中某一列的记录数。
语法如下:COUNT(column_name)其中,column_name是要统计记录数的列名。
如果不指定列名,则统计整个数据表的记录数。
COUNT函数返回值为一个整数,表示记录数。
2. SUM函数SUM函数用于计算数据表中某一列的数值总和。
语法如下:SUM(column_name)其中,column_name是要计算总和的列名。
SUM函数返回值为一个数值,表示总和。
3. AVG函数AVG函数用于计算数据表中某一列的数值平均值。
语法如下:AVG(column_name)其中,column_name是要计算平均值的列名。
AVG函数返回值为一个数值,表示平均值。
4. MAX函数MAX函数用于计算数据表中某一列的最大值。
语法如下:MAX(column_name)其中,column_name是要计算最大值的列名。
MAX函数返回值为一个数值,表示最大值。
5. MIN函数MIN函数用于计算数据表中某一列的最小值。
语法如下:MIN(column_name)其中,column_name是要计算最小值的列名。
MIN函数返回值为一个数值,表示最小值。
除了以上五种常用的聚集函数外,还有一些其他的聚集函数,例如:6. VARIANCE函数VARIANCE函数用于计算数据表中某一列的方差。
语法如下:VARIANCE(column_name)其中,column_name是要计算方差的列名。
VARIANCE函数返回值为一个数值,表示方差。
7. STDDEV函数STDDEV函数用于计算数据表中某一列的标准差。
语法如下:STDDEV(column_name)其中,column_name是要计算标准差的列名。
STDDEV函数返回值为一个数值,表示标准差。
Excel的14个常用的数据库函数

Excel的14个常用的数据库函数1. DVARP函数:用于计算总体方差。
语法:DVARP(database,field,criteria)参数:database表示要在其中计算方差的数据范围,field表示要计算方差的字段,criteria 是一个可选的筛选条件。
2. GETPOVOTDATA函数:用于从数据透视表中获取特定单元格的值。
语法:GETPOVOTDATA(data_field, pivot_table, [field1, item1], [field2, item2], …)参数:data_field表示从数据透视表中返回的数据区域,pivot_table表示要检索数据的数据透视表,field1, item1等表示要使用的筛选条件。
3. DVAR函数:用于计算样本方差。
语法:DVAR(database,field,criteria)参数:database表示要在其中计算方差的数据范围,field表示要计算方差的字段,criteria 是一个可选的筛选条件。
4. DSTDEVP函数:用于计算总体标准差。
语法:DSTDEVP(database,field,criteria)参数:database表示要在其中计算标准差的数据范围,field表示要计算标准差的字段,criteria是一个可选的筛选条件。
5. DSUM函数:用于计算数据范围中数值的总和。
语法:DSUM(database,field,criteria)参数:database表示要在其中计算总和的数据范围,field表示要计算的字段,criteria 是一个可选的筛选条件。
6. DPRODUCT函数:用于计算数据范围中数值的乘积。
语法:DPRODUCT(database,field,criteria)参数:database表示要在其中计算乘积的数据范围,field表示要计算的字段,criteria 是一个可选的筛选条件。
7. DSTDEV函数:用于计算样本标准差。
mysql常用的聚合函数

mysql常用的聚合函数MySQL是一种常用的关系型数据库管理系统,它提供了许多强大的聚合函数,用于统计和计算数据。
在本文中,我们将介绍一些常用的MySQL聚合函数,并探讨它们的用法和作用。
一、COUNT函数COUNT函数用于统计某个列或表中的行数。
它可以用来计算表中的记录数量,或者根据条件统计满足条件的记录数量。
例如,我们可以使用以下语句统计一个表中的记录数量:SELECT COUNT(*) FROM table_name;二、SUM函数SUM函数用于计算某个列的总和。
它可以用于计算数值型数据的总和,比如销售额、订单数量等。
例如,我们可以使用以下语句计算一个表中某个列的总和:SELECT SUM(column_name) FROM table_name;三、AVG函数AVG函数用于计算某个列的平均值。
它可以用于计算数值型数据的平均值,比如平均销售额、平均订单数量等。
例如,我们可以使用以下语句计算一个表中某个列的平均值:SELECT AVG(column_name) FROM table_name;四、MAX函数MAX函数用于找出某个列的最大值。
它可以用于寻找数值型数据中的最大值,或者日期型数据中的最晚日期。
例如,我们可以使用以下语句找出一个表中某个列的最大值:SELECT MAX(column_name) FROM table_name;五、MIN函数MIN函数用于找出某个列的最小值。
它可以用于寻找数值型数据中的最小值,或者日期型数据中的最早日期。
例如,我们可以使用以下语句找出一个表中某个列的最小值:SELECT MIN(column_name) FROM table_name;六、GROUP BY子句GROUP BY子句用于根据某个列对结果进行分组。
它可以将相同值的行分为一组,并进行聚合计算。
例如,我们可以使用以下语句根据某个列对表中的数据进行分组,并计算每组的平均值:SELECT column_name, AVG(column_name) FROM table_name GROUP BY column_name;七、HAVING子句HAVING子句用于过滤分组后的结果。
数据库常用函数

数据库常⽤函数⼀、数学函数abs(x) 返回x的绝对值bin(x) 返回x的⼆进制(oct返回⼋进制,hex返回⼗六进制)ceiling(x) 返回⼤于x的最⼩整数值exp(x) 返回值e(⾃然对数的底)的x次⽅floor(x) 返回⼩于x的最⼤整数值greatest(x1,x2,...,xn)返回集合中最⼤的值least(x1,x2,...,xn) 返回集合中最⼩的值ln(x) 返回x的⾃然对数log(x,y)返回x的以y为底的对数mod(x,y) 返回x/y的模(余数)pi()返回pi的值(圆周率)rand()返回0到1内的随机值,可以通过提供⼀个参数(种⼦)使rand()随机数⽣成器⽣成⼀个指定的值。
round(x,y)返回参数x的四舍五⼊的有y位⼩数的值sign(x) 返回代表数字x的符号的值sqrt(x) 返回⼀个数的平⽅根truncate(x,y) 返回数字x截短为y位⼩数的结果⼆、聚合函数(常⽤于group by从句的select查询中)avg(col)返回指定列的平均值count(col)返回指定列中⾮null值的个数min(col)返回指定列的最⼩值max(col)返回指定列的最⼤值sum(col)返回指定列的所有值之和group_concat(col) 返回由属于⼀组的列值连接组合⽽成的结果三、字符串函数ascii(char)返回字符的ascii码值bit_length(str)返回字符串的⽐特长度concat(s1,s2...,sn)将s1,s2...,sn连接成字符串concat_ws(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并⽤sep字符间隔insert(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的⼦串替换为字符串instr,返回结果find_in_set(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置lcase(str)或lower(str) 返回将字符串str中所有字符改变为⼩写后的结果left(str,x)返回字符串str中最左边的x个字符length(s)返回字符串str中的字符数ltrim(str) 从字符串str中切掉开头的空格position(substr in str) 返回⼦串substr在字符串str中第⼀次出现的位置quote(str) ⽤反斜杠转义str中的单引号repeat(str,srchstr,rplcstr)返回字符串str重复x次的结果reverse(str) 返回颠倒字符串str的结果right(str,x) 返回字符串str中最右边的x个字符rtrim(str) 返回字符串str尾部的空格strcmp(s1,s2)⽐较字符串s1和s2trim(str)去除字符串⾸部和尾部的所有空格ucase(str)或upper(str) 返回将字符串str中所有字符转变为⼤写后的结果四、⽇期和时间函数curdate()或current_date() 返回当前的⽇期curtime()或current_time() 返回当前的时间date_add(date,interval int keyword)返回⽇期date加上间隔时间int的结果(int必须按照关键字进⾏格式化),如:selectdate_add(current_date,interval 6 month);date_format(date,fmt) 依照指定的fmt格式格式化⽇期date值date_sub(date,interval int keyword)返回⽇期date加上间隔时间int的结果(int必须按照关键字进⾏格式化),如:selectdate_sub(current_date,interval 6 month);dayofweek(date) 返回date所代表的⼀星期中的第⼏天(1~7)dayofmonth(date) 返回date是⼀个⽉的第⼏天(1~31)dayofyear(date) 返回date是⼀年的第⼏天(1~366)dayname(date) 返回date的星期名,如:select dayname(current_date);from_unixtime(ts,fmt) 根据指定的fmt格式,格式化unix时间戳tshour(time) 返回time的⼩时值(0~23)minute(time) 返回time的分钟值(0~59)month(date) 返回date的⽉份值(1~12)monthname(date) 返回date的⽉份名,如:select monthname(current_date);now() 返回当前的⽇期和时间quarter(date) 返回date在⼀年中的季度(1~4),如select quarter(current_date);week(date) 返回⽇期date为⼀年中第⼏周(0~53)year(date) 返回⽇期date的年份(1000~9999)⼀些⽰例:获取当前系统时间:select from_unixtime(unix_timestamp());select extract(year_month from current_date);select extract(day_second from current_date);select extract(hour_minute from current_date);返回两个⽇期值之间的差值(⽉数):select period_diff(200302,199802);在mysql中计算年龄:select date_format(from_days(to_days(now())-to_days(birthday)),'%y')+0 as age from employee;这样,如果brithday是未来的年⽉⽇的话,计算结果为0。
数据库常用函数表

DTOC(DATE())
11/01/2002
DTOS(D)
把日期转成年月日式的字符串
DTOS(DATE())
CTOT(C)
字符串转成日期时间型
CTOT(11/01/2002 10:30:50am)
11/01/2002 10:30:50am
DTOT(D)
日期型转为日期时间型
DTOT(DATE())
ROUND(3.14159,4)
3.1416
RAND()
随机小数(0<RAND()<1)
0.0001,0.333,0.9999
Sum(x)
对一列求和计算
Sum(字段名)
Avg(x)
对一列求平均计算
Avg(字段名)
平均数
MAX(x)
求一列中的最大值
MAX(字段名)
最大值
MIN(x,y)
求一TE())
12
DOW(D)
求星期几(数值)
DOW(DATE())
1
CDOW(D)
求星期几(英文)
CDOW(DATE())
sunday
TIME(D)
求当前时间
TIME(DATE())
10:20:38am
4、数据类型转换函数
函数名
操作
例
结果
ASC(S)
求第一个字符串的ASCII码
ASC("what")
11/25/2001 00:00:01am
TTOC(T)
日期时间型转为字符型
TTOC(DATETIME())
11/25/2001 00:00:01am
TTOD(T)
日期时间型转为日期型
postgre常用函数

postgre常用函数PostgreSQL是一种开源对象关系数据库管理系统,它具有许多优良的功能和特性,其中包括一组强大的内置函数。
在本文中,我们将介绍PostgreSQL中的一些常用函数,以帮助您更好地了解PostgreSQL。
数学函数1. abs(x) -返回参数x的绝对值。
2. cbrt(x) -返回x的立方根。
3. ceil(x) -返回大于或等于x的最小整数。
4. floor(x) -返回小于或等于x的最大整数。
5. mod(x, y) -返回x除以y的余数。
6. pi() - 返回π的值。
7. round(x, d) -将x四舍五入到d位小数。
字符串函数日期和时间函数1. age(date1, date2) -返回date1与date2之间的年龄。
2. extract(field from timestamp) -从时间戳中提取指定的日期或时间部分,如年、月、日、时、分、秒等。
3. now() -返回当前日期和时间。
4. date_part(field, timestamp) -与Extract类似,也是从时间戳中提取指定的日期或时间部分。
5. timestampadd(interval, n, timestamp) -在时间戳中添加指定的时间间隔。
6. timestampdiff(interval, timestamp1, timestamp2) -计算时间戳之间的时间间隔。
聚合函数1. avg(expression) -计算指定表达式的平均值。
2. count(expression) -返回指定表达式的行数。
3. max(expression) -返回指定表达式的最大值。
4. min(expression) -返回指定表达式的最小值。
5. sum(expression) -计算指定表达式的总和。
其他常用函数总结PostgreSQL是一种十分强大的数据库管理系统,这些内置函数大为增强了其实用价值和功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库常用函数一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份和还原备份:exp dsscount/sa@dsscount owner=dsscountfile=C:\dsscount_data_backup\dsscount.dmplog=C:\dsscount_data_backup\outputa.log还原:imp dsscount/sa@dsscountfile=C:\dsscount_data_backup\dsscount.dmp full=y ignore=ylog=C:\dsscount_data_backup\dsscount.log statistics=none4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)CREATE TABLE ceshi(id INT not null identity(1,1) PRIMARY KEY,NAME VARCHAR(50),age INT) id为主键,不为空,自增长根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)说明:删除主键: Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、说明:几个高级查询运算词A: UNION 运算符UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。
两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。
当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接A、left (outer) join:左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB:right (outer) join:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full/cross (outer) join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据在selecte统计函数中的字段,不能和普通的字段放在一起;13、对数据库进行操作:分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名14.如何修改数据库的名称:sp_renamedb 'old_name', 'new_name'二、提升1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1(仅用于SQlServer)法二:select top 0 * into b from a2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..4、说明:子查询(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、说明:显示文章、提交人和最后回复时间select a.title,ername,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c7、说明:在线视图查询(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )11、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....12、说明:日程安排提前五分钟提醒SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>513、说明:一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段具体实现:关于数据库分页:declare @start int,@end int@sql nvarchar(600)set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’exec sp_executesql @sql注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。
Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。