sql数据库的关键字及查询及函数
本周和上周经理给我们做了两次关于sql的培训,感觉很有用所以总结一下!
Union:只有两张表结构相同的结果集才能使用union,将所有的表数据放到一个结果集中。
Count:计算参数列表中的数字项的个数。括号里边可以是列名,也可以是参数值。
Case:case只能跟在select后边,不能用在where后边。from后边如果是子查询的话必须添加子查询结果集名称。
Join:连接号,分为inner join(内连接)和outer join(外连接),其中outer join又分为left join(左连接)和right join(右连接)。inner join:只返回两个表中联结字段相等的行;left join:返回包括左表中的所有记录和右表中联结字段相等的记录;right join:返回包括右表中的所有记录和左表中联结字段相等的记录。
Exists:检验查询是否返回数值,后边跟子查询。
Isnull/Is not null:判断是否为空。
Cube:汇总数据,生成多维数据集。cube只有在group by分组两个以上才起作用,是对group by后的字段分组后在进行单独分组。
Over:可以与聚合函数一起使用来得出叠加结果集。over(order by。。。)后跟排名开窗函数,over(partition by。。。)后跟聚合开窗函数。使用over子句比子查询效率高。
Partition by:对结果集进行分组时会有重复数据,group by不会出现重复数据。
Row_number():为查询出来的每一行记录生成一个序号,使用方法为:Row_number() over(order by 。。。)。
exec 存储过程=变量 等同于return 变量。
select 任意值相当于赋值,即查询任意值,例如:select 1,执行后显示结果为1。
相关文档:
/*
功能:利用函数创建流水号如:
fx201005260001,
fx201005260002,
fx201005270001
作者:陈永建
创建时间:2010-05-26
*/
use master
go
i ......
COUNT(*)与COUNT(COL)
网上搜索了下,发现各种说法都有:
比如认为COUNT(COL)比COUNT(*)快的;
认为COUNT(*)比COUNT(COL)快的;
还有朋友很搞笑的说到这个其实是看人品的。
在不加WHERE限制条件的情况下,COUNT(*)与COUNT(COL)基本可以认为是等价的;
但是在有WHERE限制条件的情况下,COUNT(*)会比COUNT(COL)快非常多 ......
1). 设置当前session是否对修改的数据进行自动提交 :SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
SQL> set autocommit off
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 :SET ECHO {ON|OFF}
SQL> set echo on
3).是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|O ......
第一部分:oracle pl/sql实例练习(1)
一、使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下
emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)
dept部门表(deptno部门编号/dname部门名称/loc地点)
工资 = 薪金 + 佣金
也可以通过 ......
常用SQL查询:
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select t ......