数据库
海盗船长u010662668
这个作者很懒,什么都没留下…
展开
-
ORACLE中左连接与右连接
Employees表: Department表: select e.last_name,e.department_id,d.department_namefrom employees eleft outer join departments don (e.department_id = d.department_id); s转载 2017-02-28 14:02:41 · 313 阅读 · 0 评论 -
sql中limit用法
用法一:显示前n条记录select * from record LIMIT 10;--检索前10行数据,显示1-10条数据用法二:从n行开始,显示m条记录select * from record LIMIT 1,10;--检索从第2行开始,累加10条记录用法三:与offset搭配SELECT * FROM record LIMIT 10 OFFSET 2OFFSET与逗号隔...原创 2018-08-25 19:37:39 · 1821 阅读 · 0 评论 -
oracle中in和exists区别
select * from Awhere id in(select id from B)以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录.它的查询过程类似于以下过程List resultSet=[];Array A=(select *原创 2017-03-15 13:45:37 · 185 阅读 · 0 评论 -
【Explain Plan】查看SQL的执行计划
Explain Plan在sqlplus中使用起来非常的便捷,使用方法如下sec@ora10g> explain plan for select count(*) from t;Explained.sec@ora10g> select * from table(dbms_xplan.display());PLAN_TABLE_OUTPUT--------------原创 2017-03-14 14:01:09 · 639 阅读 · 0 评论 -
oracle之创建、使用索引和判断索引是否被使用
一、创建索引: create index index_name on table_name(table_field);二、修改索引: alter index 索引名 rename to 新索引名三、删除索引: drop index 索引名四、查看索引: .查看索引个数和类别转载 2017-03-13 16:19:42 · 7125 阅读 · 0 评论 -
oracle之B树索引
B树索引的概念:B树索引是一个典型的树结构,不仅Oracle,很多实际应用都用到,在oracle里面分三个索引块1 - 叶子节点块(leaf block):直接指向表里的数据行。2 - 分支节点块(branch block):指向分支节点或者是叶子节点。3 - 根节点块(root node):也属于分支节点,只是最顶端的分支节点。上面三个专业名词都很形象的表转载 2017-03-13 16:18:20 · 755 阅读 · 0 评论 -
Oracle触发器讲解
一、触发器简介触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时原创 2017-03-13 15:41:51 · 238 阅读 · 0 评论 -
oracle之存储过程6- if、for、游标使用
create or replace procedure test01 is V_TEST number(10):=1; begin if V_TEST = 1 then dbms_output.put_line('1----'); end if;原创 2017-03-13 15:26:53 · 567 阅读 · 0 评论 -
oracle之存储过程5-查询结果保存到变量中去
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: create or replace procedure test01 is v_empno number(10);--创建变量,存储员工编号 v_en原创 2017-03-13 15:24:20 · 7473 阅读 · 0 评论 -
oracle之存储过程4-存储过程变量的使用
1.存储过程基本结构。从is到begin区域为声明变量区域,从bengin到end区域为逻辑代码区域。创建变量并赋值。创建变量时需要指定取值范围。变量名 := 值;x number(4,2);x := 1; 使用 带参数的存储过程。存储过程参数不用指定取值范围。 注意事项:1, 存储过程 “变量” 需要制定带取值原创 2017-03-13 15:21:28 · 3547 阅读 · 0 评论 -
oracle之存储过程3-执行存储过程
第一步:在存储过程上点击右键,选择“Test” 。打开调试界面。 第二步 :点击调试按钮。 第二步 :点击开始运行按钮。运行结束,会在 DBMSOutPut 选项卡中查询打印输出的信息。原创 2017-03-13 15:15:39 · 296 阅读 · 0 评论 -
oracle之存储过程2-创建存储过程
第一步:连接数据库后,在“object”窗口中找到“procedures”目录,在该目录上点击右键,选择“new”菜单创建存储过程。 创建后的界面,该存储过程是没有参数的。 第二步:编写一条代码,编译存储过程。 创建和编译存储过程到这里就已经完成,下一篇将如何使用存储过程。 你可能遇到的错误!!!原创 2017-03-13 15:13:00 · 927 阅读 · 0 评论 -
oracle之存储过程1-介绍
什么是存储过程?是一个可以用编程的方式来操作SQL的集合。存储过程的优点?执行效率很高,因为存储过程是预编译的,即创建时编译,而SQL语句是执行一次,编译一次。调用存储过程可以大大减少同数据库的交互次数。降低网络通信量,因为存储过程执行的时候,只需要call存储过程名,不需要传递大量的SQL语句。 有利于复用。存储过程的缺点?移植性非常差,如果在oracle原创 2017-03-13 15:10:00 · 201 阅读 · 0 评论 -
Oracle 建立索引及SQL优化
Oracle 建立索引及SQL优化数据库索引:索引有单列索引复合索引之说如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引。数据库索引主要进行提高访问速度。建设原则: 1、索引应该经常建在Where 子句经常用到的列上。如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%。则应该考虑。 2、对于两表连接转载 2017-03-13 14:33:02 · 273 阅读 · 0 评论 -
Oracle中大数据量时提高查速度的办法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id f原创 2017-03-22 14:32:44 · 5224 阅读 · 0 评论 -
oracle中union和union all的区别
之前只知道union和union all的区别在于是否对记录去重,最近开发过程中发现还有一个区别,记录下:1、union会对两个结果集并集操作并去重,同时进行默认规则的排序2、union all会对两个结果集并集操作但不会去重,不会进行排序是否去重大家都知道,但排序是怎么回事呢?union进行默认规则的排序,是指对两个或多个结果集合并后,按照查出字段的先后顺序进行排序,比如查出的字...原创 2018-10-17 18:40:40 · 278 阅读 · 0 评论