Oracle-sql
confirmAname
编程爱好者
展开
-
oracle的内连接(重点)
select t1.ename,t2.dnamefrom t1 join t2where t1.c1=t2.c2;查找叫Allen的人所在的部门名称:原创 2013-07-20 02:21:28 · 997 阅读 · 0 评论 -
函数function(重点)
我们假设不同薪水的税率遵照下面的标准:薪水税率0---100001001---20000.012001---30000.023001以上0.04下面我们写一个函数实现以上逻辑:原创 2013-07-23 04:55:05 · 664 阅读 · 0 评论 -
利用 行内视图 实现排名问题或者说top-n分析(重点)
sss原创 2013-07-22 19:53:39 · 923 阅读 · 0 评论 -
oracle利用 行内视图 实现分页(重点)
ssss原创 2013-07-22 19:16:57 · 1053 阅读 · 0 评论 -
多列子查询(重点)
哪些员工的薪水等于本部门的最高薪水:原创 2013-07-21 01:38:57 · 1104 阅读 · 0 评论 -
组函数与group by(重点)
SQL的组函数有5个:max,min,avg,sum,countavg,sum操作数字;max,min可以操作各种数据类型。组函数忽略空值:2013-07-20_212722.jpg员工分布在几个部门:2013-07-20_213452.jpg每个部门的薪水总和:2013-07-20_213749.jpg每个职位的平均薪水:2013-07-20_214103原创 2013-07-20 21:55:43 · 870 阅读 · 0 评论 -
行内视图(重点)
视图的本质:select查询语句。查找出比本部门平均薪水高的员工的姓名和薪水:原创 2013-07-22 18:52:51 · 810 阅读 · 0 评论 -
查看scott账户下有哪些表和索引
查看scott账户下有哪些对象及其对象的类型:原创 2013-08-13 12:28:54 · 1862 阅读 · 0 评论 -
in与exists的比较
exists 采用循环的方式,由outer表的记录数决定循环的次数,outer表的记录数越多,对于exists影响越大,所以外表的记录数要少。in 先执行子查询,子查询的返回结果去重之后,再执行主查询。所以子查询的返回结果越少,越适合用该方式。原创 2013-07-21 17:02:35 · 466 阅读 · 0 评论 -
绑定变量,between...and...,in,not in,通配符_和%,distinct
① 绑定变量&2013-07-19_223256.jpg② betwwen...and...2013-07-19_223514.jpg③ in2013-07-19_223658.jpg④ not 2013-07-19_223810.jpg⑤ 通配符_和&2013-07-19_224034.jpg⑥ distinct2013-07-19原创 2013-07-19 22:54:20 · 848 阅读 · 0 评论 -
oracle的外连接(重点)
。。。原创 2013-07-20 17:00:21 · 597 阅读 · 0 评论 -
having子句(重点)
对组函数的过滤,使用having子句:部门平均薪水超过2000的部门和对应平均薪水值:2013-07-20_215935.jpg原创 2013-07-20 22:04:26 · 731 阅读 · 0 评论 -
PL/SQL(重点)
PL/SQL:Procedure Language & Structured Query Language原创 2013-07-23 02:15:08 · 675 阅读 · 0 评论 -
过程procedure(重点)
函数:必须返回数据,在sql语句中生效。过程:可以不返回数据,可以独立调用。原创 2013-07-23 19:35:15 · 622 阅读 · 0 评论 -
伪列 rownum(重点)
原创 2013-07-22 18:56:47 · 517 阅读 · 0 评论 -
创建索引的两种方式(重点)
① 自动创建:当创建 unique 和 pk 约束时,索引自动创建。②原创 2013-07-22 16:21:40 · 1173 阅读 · 0 评论 -
视图view(重点)
创建视图:在 scott 账户下创建视图,提示权限不够。切换到system账户下进行。创建好了视图以后,就可以像使用表一样使用视图:原创 2013-07-22 02:05:37 · 535 阅读 · 0 评论 -
foreign key 约束(重点)
主表( 父表 ):被参照的表。从表( 子表 ):参照别的表。2013-07-21_233717.jpg2013-07-21_234045.jpg试图增加一个学生记录,指定一个不存在的专业编码:2013-07-21_234904.jpg试图删除major表中的一个专业,这个专业被某些学生选修,此时删除不成功:2013-07-21_235230.jpgon delete原创 2013-07-22 00:25:48 · 756 阅读 · 0 评论 -
约束的类别
主键:primary key,pk外键:foreign key,fk唯一:unique非空:not null检查:check原创 2013-07-21 18:07:49 · 516 阅读 · 0 评论 -
SQL中的集合运算符实例(重点)
查出机构下所有的员工姓名及其对应的领导姓名,包括那些没有领导的也列出:原创 2013-07-21 17:36:50 · 693 阅读 · 0 评论 -
带not exists运算符的关联子查询(重点)
查询没有员工的部门:原创 2013-07-21 16:34:13 · 914 阅读 · 0 评论 -
带exists运算符的关联子查询(重点)
查询出所有有下属的员工:原创 2013-07-21 15:55:56 · 974 阅读 · 0 评论 -
check 约束
2013-07-21_211349.jpg原创 2013-07-21 21:20:38 · 814 阅读 · 0 评论 -
复制表
复制表:包括数据和结构2013-07-22_003721.jpg复制表:不复制数据,只复制表结构2013-07-22_004057.jpg原创 2013-07-22 00:47:21 · 570 阅读 · 0 评论 -
unique 约束既可建立在列级也可建立在表级
create table stu(id number primary key,nickname varchar2(20),email char(40) unique,--列级constraint stu_nickname_uk unique(nickname));--表级原创 2013-07-21 21:07:31 · 993 阅读 · 0 评论 -
利用子查询一次性 insert 多条数据
insert into emp_wang(id,name,deptno)select empno,ename,deptnofrom empwhere deptno=10;原创 2013-07-22 00:31:35 · 7265 阅读 · 0 评论 -
SQL中的集合运算符
SQL中的集合运算符union结果集为两个查询结果的并集,会去掉重复值。union all结果集为两个查询结果的并集,包含重复值。intersect结果集为两个查询结果的交集,不包含重复值。minus第一个结果集中减去它们的交集,不包含重复值。原创 2013-07-21 17:29:06 · 957 阅读 · 0 评论 -
and,or,order by
① and2013-07-19_230100.jpg② or2013-07-19_230226.jpg③ order by升序:2013-07-19_230332.jpg降序:2013-07-19_230525.jpg原创 2013-07-19 23:11:12 · 579 阅读 · 0 评论 -
oracle中的日期
如果要使用日期,可以使用 sysdate,这是oracle数据库所独有的:默认的日期格式不太好看,我们可以使用 to_char 函数对日期进行格式化:如果取当前时间往后一天或前推一天,可以使用 +/-n:原创 2013-07-20 01:52:08 · 635 阅读 · 0 评论 -
SQL的分类
SQL的分类类别具体DQLselectDMLinsert , delete , updateDDLcreate , drop , truncate , alterDCLgrant , revokeTCLcommit , rollback , savepoint原创 2013-07-19 20:54:56 · 501 阅读 · 0 评论 -
not null 约束只能建立在列级
创建非空约束,只能建立在列级:2013-07-21_204017.jpg原创 2013-07-21 20:49:33 · 980 阅读 · 0 评论 -
primary key 约束
主键pk:unique+not null建立主键约束一共有3种方法:① 创建主键约束,由系统命名,建立在列级:--列级主键约束create table student(id number primary key,name varchar2(20),email char(40)register date default sysdate);② 创建主键约束,自己命名,建立原创 2013-07-21 19:09:04 · 1058 阅读 · 0 评论 -
某账户下的对象种类
scott账户下:2013-07-23_015934.jpgsystem账户下:2013-07-23_020159.jpg原创 2013-07-23 02:11:10 · 564 阅读 · 0 评论 -
关联子查询(重点)
哪些员工的薪水比本部门的平均薪水高:原创 2013-07-21 03:20:28 · 767 阅读 · 0 评论 -
having子句中包含子查询(重点)
哪些部门的平均薪水比部门20的平均薪水高:原创 2013-07-21 01:55:22 · 1549 阅读 · 0 评论 -
非关联子查询(重点)
谁的薪水比Allen高:原创 2013-07-20 23:26:22 · 1250 阅读 · 0 评论 -
注释,连接字符串,nvl函数,linesize,pagesize
① sql语句的注释为:----这是SQL中的注释select ename,job from emp;② 基于oracle的sql中的连接字符串:||select ename||sal from emp;③ 在oracle中,任何值与空值做运算,结果是空值,此时需要用到 nvl 函数:2013-07-19_211756.jpg使用nvl函数后可以得到想要的正确结果:20原创 2013-07-19 21:36:20 · 815 阅读 · 0 评论 -
oracle中最常见的数据类型
oracle中最常见的数据类型:① 字符类型:char(n),varchar2(n)char,固定长度的字符数据,从1B到2KB。varchar2,可变长度的字符数据,从1B到4KB.。② 数字类型:numbernumber(7,2):最大99999.99number(5):99999number:随便③ 日期类型:date原创 2013-07-19 21:06:30 · 490 阅读 · 0 评论 -
一个包含各种约束条件的sql脚本
alter table student drop constraint stu_mid_fk;alter table student add constraintstu_mid_fk foreign key(mid) references major(id);原创 2013-07-22 17:46:37 · 598 阅读 · 0 评论 -
表扫描的方式
① 全表扫描( Full Table Scan ):高水位线:曾经包含数据的最右边的块。将扫描高水位线以下的所有数据块。② 通过Rowid来扫描数据:Rowid:标识一条记录的物理位置。包含如下信息:该记录属于哪张表( 哪个数据库对象 ):object_id该记录在哪个数据文件里:file_id该记录在数据文件的第几个数据块里:block_id该记录在数据块原创 2013-07-22 16:03:11 · 828 阅读 · 0 评论