1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2. 不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
3. 索引并不是越多越好,索引固然可 以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率。
数据库中常用的函数都有哪些啊?因数据库不同有不同的函数,以oracle为例:常用的有单条语句作用的函数:destinct(去除重复行),to_char(转换自符串),to_date(日期格式函数),sumstr(截取自符串),lower(将字母转换为小写),upper(将字母矗换为小写),char(将数字转换为字符),ascii(求字符的ascii码)等函数
组函数:min(求最小值),max(求最大值),avg(求平均数),sum(求总和),counnt(统计记录数)
数据库函数有哪些?有人吗?
有 Funciton , 也就是函数
有 Procedure , 也就是存储过程
有 Package, 也就是 代码包 (包含 head 和 body 两部分, 可以理解为一个包里面,定义多个 存储过程或函数)
有 Types, 也就是 自定义数据类型
有 Triggers, 也就是 触发器
有 Jobs, 也就是 数据库作业 (定期执行的)
有 Table , 也就是表 (表有 普通表, 临时表, 分区表)
有 Index, 也就是索引
有 Constraint, 也就是 约束 ( 也就是 某个表里面的某一列, 必须满足什么约束条件)
有 View, 也就是 视图
有 Materialized View, 叫 “物化视图”, 这个有点复杂的。
有 Sequence , 叫 序列号。
有 User , 叫 用户
有 Profile , 叫 用户属性文件 (用于限制 每个用户 占有数据库资源的限制)
有 Synonyms, 叫 “同义词” (用于 便捷地访问 其他用户下的对象)
有 Database link 叫 “链接数据库” (用于访问 其他机器上的 Oracle 数据库)
有 TableSpace 叫 表空间 (用于 存放表数据的)
有 CURSOR 叫 游标, 用于 存储过程里面, 遍历数据的。
数据库系统函数有哪些分类
单行函数,多行函数 单行的又分字符,日期,数字,转换,通用几种
采纳哦
sql 聚合函数有哪些
聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:
1. AVG 返回指定组中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
2. COUNT 返回指定组中项目的数量。
例:select count(prd_no) from sales
3. MAX 返回指定数据的最大值。
例:select prd_no,max(qty) from sales group by prd_no
4. MIN 返回指定数据的最小值。
例:select prd_no,min(qty) from sales group by prd_no
5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no
6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales
7. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup
8. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no
9. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no
10. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
11. STDEV 返回给定表达式中所有值的统计标准偏差。
例:select stdev(prd_no) from sales
12. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。
例:select stdevp(prd_no) from sales
13. VAR 返回给定表达式中所有值的统计方差。
例:select var(prd_no) from sales
14. VARP 返回给定表达式中所有值的填充的统计方差。
例:select varp(prd_no) from sales...>>
所有的数据库函数的函数名都以什么开头
这个是好多的具体如下:
一、财务函数
ACCRINT 返回定期付息有价证券的应计利息
ACCRINTM 返回到期一次性付息有价证券的应计利息
AMORDEGRC 返回使用折旧系数的每个结算期间的折旧值
AMORLINC 返回每个结算期间的折旧值
COUPDAYBS 返回当前付息期内截止到成交日的天数
COUPDAYS 返回包含成交日所在的付息期的天数
COUPDAYSNC 返回从成交日到下一付息日之间的天数
COUPNCD 返回成交日之后的下一个付息日
COUPNUM 返回成交日和到期日之间的付息次数
COUPPCD 返回成交日之前的前一个的付息日
CUMIPMT 返回两个期间内累计支付的利息
CUMPRINC 返回一笔贷款在两个期间内累计偿还的本金数额
DB 使用固定余额递减法,返回一笔资产在给定期间内的折旧值
DDB 使用双倍余额递减法或其他指定方法,返回一笔资产在给定期间内的折旧值
DISC 返回有价证券的贴现率
DOLLARDE 将按分数表示的价格转换为按小数表示的价格
DOLLARFR 将按小数表示的价格转换为按分数表示的价格
DURATION 返回定期付息有价证券的每年期限
EFFECT 返回实际年利率
FV 返回一笔投资的未来值
FVSCHEDULE 返回应用一系列复利率后的本金的未来值
INTRATE 返回一次性付息有价证券的利率
IPMT 返回一笔投资在给定期间内支付的利息
IRR 返回一系列现金流的内部收益率
ISPMT 计算特定投资期内要支付的利息
MDURATION 返回假设面值 $100 的有价证券的 Macauley 修正期限
MIRR 返回正和负现金流以不同利率进行计算的内部收益率
NOMINAL 返回年名义利率
NPER 返回投资期间的数量
NPV 返回基于一系列定期现金流和贴现率计算的投资的现净值
ODDFPRICE 返回首期付息日不固定的面值$100 的有价证券价格
ODDFYIELD 返回首期付息日不固定的有价证券的收益率
ODDLPRICE 返回末期付息日不固定的面值$100 的有价证券价格
ODDLYIELD 返回末期付息日不固定的有价证券的收益率
PMT 返回年金的定期支付金额
PPMT 返回一笔投资在给定期间内偿还的本金
PRICE 返回定期付息的面值 $100 的有价证券的价格
PRICEDISC 返回折价发行的面值$100 的有价证券的价格
PRICEMAT 返回到期付息的面值$100 的有价证券的价格
PV 返回投资的现值
RATE 返回年金的各期利率
RECEIVED 返回一次性付息的有价证券到期收回的金额
SLN 返回一笔资产在某个期间内的线性折旧值
SYD 返回一笔资产按年限总和折旧法计算的指定期间的折旧值
TBILLEQ 返回国库券的等效收益率
TBILLPRICE 返回面值 $100 的国库券的价格
TBILLYIELD 返回国库券的收益率
VDB 使用余额递减法,返回一笔资产在给定期间或部分期间内的折旧值
XIRR 返回一组不定期发生的现金流的内部收益率
XNPV 返回一组不定期发生的现金流的净现值
YIELD 返回定期付息有价证券的收益率
YIELDDISC 返回折价发行的有价证券(如国库券)的年收益率
YIELDMAT 返回到期付息的有价证券的年收益率
二、日期与时间函数
DATE 返回特定日期的序列号
DATEVALUE 将文本格式的日期转换为序列号
DAY 将序列号转换为月的日期
DAYS360 计算基于一年 360 天的两个日期间的天数
EDATE 返回用于表示开始日期之......>>
Oracle数据库函数有几种与作用
数值型函数: *** 作数字类型
字符型函数: *** 作字符型
日期型的函数: *** 作日期型
转换函数:转换类型
聚组函数:统计和、差、积等 *** 作
分析函数:连续求和、排序等
其他函数:很多,没有表中分类
数据库的对象有哪些
Funciton:函数
Procedure:存储过程
Package:代码包,一个包里面,定义多个存储过程、函数、类型、常量等
Type:自定义数据类型
Trigger:触发器
Job:数据库作业 (定期执行的)
Table:表
Index:索引
Constraint:约束,限制各数据项应满足哪些限阀条件
View:视图
Materialized View:物化视图
Sequence:序列
User:叫 用户
Synonym:同义词
Database link:数据库链接(ORACLE有,别的数据库不熟,想必也应该有,可能不叫这个名字)
TableSpace:表空间(ORACLE叫这个名字,别的数据库不熟)
CURSOR:游标
常用的大致这些,可能会有遗漏,但也应该不会差太多。
excel常用函数都有哪些?
常用函数
1、求和函数 SUM
2、平均值函数 AVERAGE
3、逻辑函数 IF
4、快捷方式或链接创建函数 HYPERLINK
5、计数函数 COUNT
6、最大(小)值函数 MAX(MIN)
7、条件求和函数 SUMIF
8、货款偿还计算函数 PMT
9、样本的标准偏差函数 STDEV
10、排序函数 RANK
11、四舍五入函数 ROUND
12、条件计数函数 COUNTIF
13、百分排位预测函数 PERCENTILE
14、数值探测函数 ISNUMBER
15、零存整取收益函数 PV
16、内部平均值函数 TRIMMEAN
17、日期年份函数 YEAR
18、起止天数函数 DAYS360
19、取整函数 TRUNC
20、字符提取函数 MID
伍昊的《你早该这么玩excel》顶你学堂在线公开课,你可以去看下,学完这个课程,excel基本上也就够用了。
SQL Server中的聚合函数有哪些?
count() 所有记录数
count(*)所有非null记录数
avg() 某一列平均值
min() 某一列最小值
max() 某一列最大值
sum() 某一列总和
数据库的命令都有哪些?
1、显示当前存在的数据库 mysql>show databases
2、选择数据库 mysql>USE mysql Database changed (USE 和 QUIT 命令不需要分号结束。),显示当前选择的数据库 mysql>select database()
3、显示当前数据库中存在的表 mysql>SHOW TABLES
4、显示表(db)的内容 mysql>select * from db
5、命令的取消 当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用 c来取消该条命令 mysql>select ->user() ->c
6、创建一个数据库abccs mysql>CREATE DATABASE abccs
7、选择你所创建的数据库 mysql>USE abccs Database changed;
8、创建一个数据库表 首先看现在你的数据库中存在什么表: mysql>SHOW TABLESEmpty set (0.00 sec) 说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable: 我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。 mysql>CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20))
9、显示表的结构: mysql>DESCRIBE mytable
10、 往表中加入记录 我们先用SELECT命令来查看表中的数据: mysql>select * from mytableEmpty set (0.00 sec) 这说明刚才创建的表还没有记录。 加入一条新记录: mysql>insert into mytable values ('abccs','f','1977-07-07','china')
11、用文本方式将数据装入一个数据库表 如果一条一条地输入,很麻烦。我们可以用文本文件的方式将所有记录加入你的数据库表中。 创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在 CREATE TABLE语句中列出的列次序给出,例如: abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa 使用下面命令将文本文件“mytable.txt”装载到mytable表中: mysql>LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet再使用如下命令看看是否已将数据输入到数据库表中: mysql>select * from mytable
12、从数据库表中检索信息 select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件
13、查询所有数据: mysql>select * from mytable
14、修正错误记录: 假如tom的出生日期有错误,应该是1973-09-02,则可以用update语句来修正: mysql>u......>>
数据查询 是数据库 *** 作中最主要的功能之一有时候数据库查询性能的好坏 直接关系到数据库的运行效率 关系到数据库的选型 下面笔者不谈大道理 只是对其中对一些平时大家容易忽略的查询小技巧做一些总结 或许大家可能正在为此犯愁呢?
第一个技巧 利用连接符连接多个字段
如在员工基本信息表中 有员工姓名 员工职位 出身日期等等 如果现在视图中这三个字段显示在同一个字段中 并且中间有分割符 如我现在想显示的结果为 经理Victor出身于 年 月 日 这该如何处理呢?其实 这是比较简单的 我们可以在Select查询语句中 利用连接符把这些字段连接起来
如可以这么写查询语句
SELECT员工职位 || ||员工姓名|| 出身于 ||出身日期 as 员工出身信息 FROM 员工基本信息表
通过这条语句就可以实现如上的需求 也就是说 我们在平时查询中 可以利用||连接符把一些相关的字段连接起来 这在报表视图中非常的有用 如笔者以前在设计图书馆管理系统的时候 在书的基本信息处有图书的出版社 出版序列号等等内容 但是 有时会在打印报表的时候 需要把这些字段合并成一个字段打印 为此 就需要利用这个连接符把这些字段连接起来 而且 利用连接符还可以在字段中间加入一些说明性的文字 以方便大家阅读 如上面我在员工职位与员工姓名之间加入了空格并且在员工姓名与出身日期之间加入了出身于几个注释性的文字 这些功能看起来比较小 但是却可以大大的提高内容的可读性 这也是我们在数据库设计过程中需要关注的一个内容
总之 令后采用连接符 可以提高我们报表的可读性于灵活性
第二个技巧 取消重复的行
如在人事管理系统中 有员工基本信息基本表 在这张表中 可能会有部门 职位 员工姓名 身份z件号码等字段 若查询这些内容 可能不会有重复的行 但是 我若想知道 在公司内部设置了哪些部门与职位的时候 并且这些部门与职位配置了相关人员 此时 又该如何查询呢?
若我现在直接查询部门表 其可以知道系统中具体设置了哪些部门与职位 但是 很有可能这些部门或者职位由于人事变动的关系 现在已经没有人了 所以 这里查询出来的是所有的部门与职位信息 而不能够保证这个部门或者职位一定有职员存在 也就是说 这不能够满足于我们上面的要求
若我现在直接从员工信息表中查询 虽然可以保证所查询出来的部门与职位信息 一定有员工信息的存在 但是 此时查询出来的部门与职位信息会有重复的行 如采购部门分工合作 可能会有采购采购小组长 此时 在查询出来的部门与职位的信息中 就会有三条重复的记录
所以 以上两种处理方式 都不能够百分之百的满足企业用户的需求 此时 我们其实可以利用一个DISTINCT函数 来消除其中查询出来的重复行
如我们可以利用SELECT DISTINCT 部门信息 职位信息 FROM 员工基本信息表 通过这条加了DISTINCT约束的查询语句 不但可以查询出所有有员工的职位与部门信息 而且 会把重复的记录过滤掉 从而提高可阅读性
所以 在数据库设计过程中 特别是在查询语句的使用中 这个函数特别有用
第三个技巧 勤用WHERE语句
我们都知道 数据库查询效率高不高 是我们评价数据库设计好坏的一个重要标准 毋庸置疑 在数据库查询中勤用Where条件语句 是提高数据库查询性能的一个很重要的手段之一 特别是在设计到比较大的表中查询符合条件的记录过程中 利用WHERE条件语句加以限制 可以大幅度的提高查询的响应速度
如在图书馆管理系统中 现在有人想查询 注册会计师 辅导用书的时候 虽然不在书的类别或者名称中输入 注册会计师 先查询出全部的纪录 然后再一条条的看是否有相关的书籍信息 也是可行的 但是 这么处理的话 一方面系统响应的速度会非常的慢 因为里面记录很多 另一方面 查询的结果看起来也会非常的头疼
其实 我们只需要在查询中加入一些查询的参数 利用Where条件语句加以限制 则即可以提高数据库响应的速度 也可以找出最符合用户需求的数据
另外 我也接触过一些在Oracle数据库上设计的平台型管理软件 他们可以自定义相关的报表 在报表设计中 只要用户在前台设计平台中 选中 大表查询 的话 则这个平台会在生成报表的时候 自动应用Where条件语句 以提高前台系统从数据库查询数据的效率
所以 笔者认为在Oracle数据库系统设计中 要勤于使用Where语句 利用Where语句来提高数据库查询的效率
第四个技巧 灵活使用COUNT函数
在查询处理的时候 COUNT函数可以说是我们应用的比较多的函数之一 如我们有时候需要统计员工的人数 统计图书的种类数的时候 都需要使用到这个函数 不过 这个函数很多人可能会用 但是到灵活应用的地步 还是有一点差距
下面笔者就COUNT函数的一些应用技巧谈谈自己的心得
一是要灵活放置COUNT函数的位置 因为利用COUNT函数统计记录数的时候 是会考虑空行的记录的 如在数据表中一般有序列字段与其它的有意义字段两类 有时候可能序列字段中有内容而其它字段中没有内容 则在利用COUNT函数统计记录数量的时候 会把这个空记录也考虑进去 很明显 则就会发生统计的错误 所以 这个COUNT函数该放在哪个位置上 还是比较讲究的 一般的话 笔者试建议不要放在序列号字段上 而要放在一些关键的实体字段中 如统计员工人数的时候 则就可以放在员工姓名或者编号上等等
二是灵活跟其它函数搭配使用 如在上面的例子中 笔者谈到有时候用户需要知道现在有员工编制的部门与职位有哪一些 我们可以利用DISTINCT函数来找出具体的部门 但是 我现在只想知道有编制的部门与职位具体有多少 此时 我们也可以利用COUNT 与DISTINCT函数结合应用 找出我们所需要的数据 在COUNT函数中 可以指定ALL与DISTINCT选项 默认的情况下 是ALL选项 表示统计所有的行 其中也包括重复的行 而DISTINCT就表示只统计不重复的行 可见 COUNT函数跟其它函数搭配使用的话 可以简化我们的查询语句 提高查询效率
第五个技巧 只查询时必须的字段
有时候 用户不同的查询需求都要用到同一张表 如在员工信息表中包含了很多内容 有时候用户想要知道正式员工有多少管理层员工有多少生产线员工又有哪些或者想知道合同即将到期的员工有哪些 为此 就遇到一个问题 因为这些内容基本上都是在同一张表中 那是在同一个视图中实现 而是根据需求不同 设计不同的视图呢?
若单从技术上考虑 两这都是可以实现的 不会有多大的难度 但是 若是从数据库性能上考虑在 则还是采用不同的视图来实现不同的需求为好
一方面 若从安全方面讲 则可以根据不同的视图来控制相关的访问权限 可见 把视图细化 在权限控制上则会更加的灵活
lishixinzhi/Article/program/Oracle/201311/17049
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)