![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
文章平均质量分 70
PowerKinging
努力提高自己!
展开
-
索引的收集
1.如果在建基本表S时未使用主键子句,那么可以利用创建索引的方法起到主键的作用 CREATE UNIQUE INDEX 索引名 ON 表(列) 例子:CREATE UNIQUE INDEX S#_INSEX ON S(S#) 不要UNIQUE也可以,你那就是索引没有起到主键的作用了 UNIQUE表示每个索引值对应唯一的数据记录2.删除索引 例子:DROP IN...原创 2011-07-14 15:21:30 · 193 阅读 · 0 评论 -
给表中增加一列或者修改列类型,大小脚本
修改表中的某列:alter table tablename modify 字段 VARCHAR2(128);增加一列:alter table tablename add 字段 VARCHAR2(128); -- Add comments to the columns comment on column table.字段 is '中文注释; ...2012-02-13 16:27:07 · 152 阅读 · 0 评论 -
pl-sql中函数循环插入值方式一
create or replace function F_TEST( p_type in number, p_startdate in varchar2, p_enddate in varchar2)--type类型table_testreturn table_test pipelined is pragma autonomous_transaction;--自动事物 ...2012-02-14 10:39:50 · 408 阅读 · 0 评论 -
oracle中将列转化为行
oracle 10g以后 wm_concat函数的运用准备测试数据 create table test(id number,name varchar2(20));insert into test values(1,'a');insert into test values(1,'b');insert into test values(1,'c');insert into te...2012-10-25 11:40:18 · 400 阅读 · 0 评论 -
sql中的having和where的作用
例子: select max(orgid) from auditresults where warningrulesid=100000021 having orgid>=100000737 group by orgid; select max(orgid) from auditresults where warningrulesid=100000021 group by org...2012-02-24 16:39:51 · 297 阅读 · 0 评论 -
ORACLE中函数和存储过程的区别
函数和存储过程的区别从参数的返回情况来看: 如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;从调用情况来看: 如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考如果是在过程化语句中调用的话,就要看你要实现什么样的功能。函数一般情...原创 2012-07-20 15:40:15 · 100 阅读 · 0 评论 -
plsql中利用函数将一个逗号分隔字符串转义返回单个的列
1.传进去一个字符串,类似于'123,456';CREATE OR REPLACE FUNCTION GET_STRING_TAB (v_str in varchar2) return table_string pipelined as v_new_str varchar2(8000);begin if v_str is null then pipe row(-1);...2012-04-05 15:12:16 · 715 阅读 · 0 评论 -
系统运行一段时间后,提升其速度的方法总结
BI系统运行一段时间后性能明显变慢了肿么办施系统慢数据库优化 【问题描述】系统在运行了一段时间以后,在没有变更程序,且数据量没有大幅增加的时候,系统的执行效率明显变慢了肿么办?是求助研发人员,然后各种扯皮、谩骂乃至人生攻击?还是自已动手,丰衣足食?【问题分析】如果没有升级程序(为什么每次升级程序总是会让系统变得更糟而不是更好呢?这是一个值得研究的问题),数据量又没有大幅...原创 2012-07-30 18:08:48 · 468 阅读 · 0 评论 -
JNDI全面总结 (tomact中配置连接池)
JNDI全面总结 原理: 在DataSource中事先建立多个数据库连接,保存在数据库连接池中。当程序访问数据库时,只用从连接池中取空闲状态的数据库连接即可,访问结束,销毁资源,数据库连接重新回到连接池,这与每次去直接访问数据库相比,会节省大量时间和资源。 JNDI( Java Naming and Directory Interface ),是Ja...原创 2012-08-02 12:42:58 · 237 阅读 · 0 评论 -
oracle触发器详解实例
语法规则:Create [or replace] trigger [模式.]触发器名 Before| after insert|delete|(update of 列名)On 表名[for each row]When 条件PL/SQL块说明:For each row的意义是:在一次操作表的语句中,每操作成功一行就会触发一次;不...原创 2012-08-03 13:36:32 · 154 阅读 · 0 评论 -
ORACLE PL/SQL编程之八:(触发器经典实例(全))
ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下:8.1 触发器类型8.1.1 DML触发器8.1.2 替代触发器8.1.3 系统触发器8.2 创建触发器8.2.1 触发器触发次序8.2.2 创建DML触发器8.2.3 创建替代(INSTEAD OF)触发器8.2.3 创建系统事件触发器8.2.4 系统触发器事件属性8....原创 2012-08-03 13:54:05 · 136 阅读 · 0 评论 -
索引的运用
索引整理 SQL语法整理——索引什么是索引数据库中表的索引与日常生活中所使用的书或者字典的索引是相似的。索引可以极大地提高查询的速度。 索引的分类索引包含由表或视图中的一列或多列生成的键.根据索引的使用方式、数据的存储方式可以将索引分为4类: 惟一性索引、 主键索引、 ...原创 2012-09-18 17:48:28 · 122 阅读 · 0 评论 -
sql语句-创建索引
语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100GO/*实例*/USE 库名GOIF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引DROP INDEX T...原创 2012-02-07 15:59:08 · 201 阅读 · 0 评论 -
(转)SQL 优化原则(精)
(转)SQL 优化原则 一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以...原创 2012-02-07 15:47:02 · 101 阅读 · 0 评论 -
pl-sql中关于函数test及存储过程中调用function函数
对于存储过程可以直接反键test但是对于函数就要先在过程中调用,然后测试例子:CREATE OR REPLACE PROCEDURE erik_test(str_code out varchar2) isa_strSql varchar2(256); ncount integer :=0;begin a_strSql := ' select count...2012-02-07 15:20:14 · 501 阅读 · 0 评论 -
Oracle学习:分区表和索引
什么时候使用分区: 1、 大数据量的表,比如大于2GB。一方面2GB文件对于32位os是一个上限,另外备份时间长。 2、 包括历史数据的表,比如最新的数据放入到最新的分区中。典型的例子:历史表,只有当前月份的数据可以被修改,而其他月份只能read-only ORACLE只支持以下分区:tables, indexes on tables, materialized views, ...原创 2011-07-14 15:28:12 · 115 阅读 · 0 评论 -
SQL触发器实例讲解1
SQL触发器实例1定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create Table Student( ...原创 2011-07-14 15:31:58 · 83 阅读 · 0 评论 -
树状数据库表:Oracle中start with...connect by prior子句用法
Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3;例:select * from tablestart with org_id = 'HBHqfWGWPy'c...原创 2011-12-15 15:57:20 · 200 阅读 · 0 评论 -
sqlserver和oracle中去除某一字段中重复字节,以逗号分隔
sqlserver:create function reny_str(@str varchar(2000)) returns varchar(20)asbegin declare @t table(a varchar(200)) declare @b table(a varchar(200)) insert @t select substring(@str,...原创 2011-12-15 16:19:30 · 516 阅读 · 1 评论 -
oracle中死锁及解锁
SELECT OBJECT_ID,SESSION_ID,SERIAL# ,a.oracle_username,a.os_user_name,a.process FROM V$LOCKED_OBJECT a , V$SESSION WHERE a.SESSION_ID=SID; 解锁SQL:alter system kill session 'sid,serial#'; --...原创 2011-12-21 17:48:32 · 299 阅读 · 0 评论 -
oracle中恢复表数据及相关设置
>1、从flash back里查询被删除的表 select * from recyclebin>2.执行表的恢复falshback table tb to drop before; tb代表要恢复的表名 对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有:select * from flashback_trans...原创 2011-12-28 14:00:07 · 91 阅读 · 0 评论 -
UNDO_RETENTION
深度理解Oracle10g中UNDO_RETENTION参数 每一中数据库都需要有一种管理回滚或者撤销数据的方法。当一个DML发生以后,在用户还没有提交(COMMIT)改变,用户不希望这种改变继续保持,需要撤销所做的修改,将数据回退到没有发生改变以前,这时就需要使用一种被称为撤销记录的数据。 使用撤销记录,我们可以:1、 当使用ROLLBACK语句时回滚事务,撤销DML操作改变的数据...原创 2011-12-28 14:01:49 · 133 阅读 · 0 评论 -
pl_sql中函数的基本运用
1基本函数create or replace function f_getworkdate (inputdate date)return date is v_workdate date;begin select calendardate into v_workdate from tbl where tbl.startdate=date; return v_work...2012-05-16 17:42:07 · 159 阅读 · 0 评论 -
sql中分组,除了group by之外的用法
表(kzw): id xianlu_id point_name x y h biaod_id 1 19 草桥 314594.654 494252.073 ...原创 2011-11-14 10:19:37 · 1624 阅读 · 0 评论 -
关于PL_SQL中表函数function 复杂sql的分组问题
FUNCTION: 在function中,大部分业务相对复杂,查出的字段不想表中直接取出那么单一,某些字段要经过几个字段的运算才能获得,这个给分组带来了很大的难题。因为某些字段需要输出,但是却影响分组,这时候可以有一个迂回的办法。1. select * from table(F_ClaimState('2010-10-01','2011-11-01',null)) 直接获取表函数 ...2011-11-14 10:29:29 · 136 阅读 · 0 评论 -
pl-sql中判断是否为数字,是否为日期格式
一:if translate(str,'\0123456789','\') is null then --为空则全是数字 --your code end if;二: select ascii(9) from dual;48到57为数字。三:大小写还是等于自己的,那就是数字upper('1')=1--判断是否为日期格式:create or replace funct...原创 2011-11-24 16:08:48 · 1546 阅读 · 0 评论 -
Oracle同义词创建及其作用
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系。本文介绍如何创建同义词语句,删除同义词以及查看同义词语句。 oracle的同义词总结: 从字面上理解就是别名的意思,和试图的功能类似。就是一种映射关系。 1.创建同义词语句: create public synonym table_name for user.table_name...原创 2014-03-05 10:30:20 · 159 阅读 · 0 评论