SQL
lysunki
这个作者很懒,什么都没留下…
展开
-
SQL中Case语句用法讨论
[code="sql"]select case when id>4 then 5 when id原创 2009-03-21 17:40:54 · 112 阅读 · 0 评论 -
having&group by
GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 select 后面除 group by的列以外 均用聚合函数聚合函数 sum,count,max,min,avg(均值函数)...select a,count(b) from t_table group by a;Having 在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示...原创 2012-01-18 16:24:37 · 74 阅读 · 0 评论 -
trigger 控制
alter trigger TRI_TABLE__BIU_AUD disable;commit;alter trigger TRI_TABLE__BIU_AUD enable;commit;原创 2011-11-21 13:43:02 · 128 阅读 · 0 评论 -
索引 CREATE INDEX
B-树 数据结构CREATE INDEX -- 定义一个新索引SynopsisCREATE [ UNIQUE ] INDEX name ON table [ USING method ] ( { column | ( expression ) } [ opclass ] [, ...] ) [ TABLESPACE tablespace ] [ WHE...原创 2011-11-21 13:45:10 · 330 阅读 · 0 评论 -
oracle NULL
当变量赋为NULL时,需特别注意 if v_tmp exp '1' then -- 都无法进来 只有 is null or is not nullend if;在where条件中 not in(...) 通常也会忽略 NULL原创 2012-02-24 21:29:35 · 75 阅读 · 0 评论 -
savepoint&rollback
A simple rollback or commit erases all savepoints. When you roll back to a savepoint, any savepoints marked after that savepoint are erased. The savepoint to which you roll back remains.You can re...原创 2012-03-17 13:37:22 · 151 阅读 · 0 评论 -
ALTER 操作
--新增列ALTER TABLE Table_name ADD column_name column_type(varchar2(1)) DEFAULT '0' not null;--删除主键ALTER TABLE table_name drop constraint PK_name;--新增主键ALTER TABLE t_wop_dsr add constraint ...原创 2012-11-15 13:40:04 · 257 阅读 · 0 评论 -
oracle常见错误
ORA-01476: divisor is equal to zero 这个错误是sql语句中存在除数为0的情况原创 2012-11-26 10:39:59 · 84 阅读 · 0 评论 -
PL/SQL多行数据处理
1.游标申明游标 使用时打开cursor c_cursor is ....open c_cursor;loop fetch c_cursor into vo; exit when c_cursor%notfound; ...end loop;close c_cursor;2.直接Forfor table_columns_tmp ...原创 2012-12-28 11:48:33 · 218 阅读 · 0 评论 -
NVARCHAR2&VARCHAR2
1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。原创 2013-01-21 14:13:25 · 106 阅读 · 0 评论 -
NoSQL存储
NoSQL不仅仅是No SQL,还是Not only SQL,SQL代表传统关系数据库,NoSQL显然是针对传统关系数据库的补充和升级。NoSQL分类:(1)Key-value stores键值存储, 保存keys+BLOBs (二进制大对象Binary Large OBjects)(2)Table-oriented 面向表列, 主要有Google的BigTable和Cassa...原创 2013-11-30 11:33:36 · 372 阅读 · 0 评论 -
动态SQL
[code="sql"]DECLARE v_sql VARCHAR2(10000);v_cols VARCHAR2(8000);v_values VARCHAR2(8000);BEGINFOR p IN ( SELECT t.COLUMN_NAME from ALL_TAB_COLS t where t.TABLE_NAME ='NBZ_POLICY_MAIN') LOOP...原创 2015-01-26 15:36:23 · 73 阅读 · 0 评论 -
游标使用
简单游标[code="java"]declare cursor cur_pol is select m.policyno, m.companycode, m.productcode from nbz_policy_main m where m.inputdate < sysdate and m.inputdate > date '2...原创 2015-04-16 14:59:48 · 78 阅读 · 0 评论 -
CURSOR
--定义CURSOR c_mycursor IS select * from t_my_table t where ...--使用 OPEN c_mycursor; LOOP FETCH c_mycursor INTO mycursor; EXIT WHEN c_mycursor%NOTFOUND; BEGIN ...原创 2012-01-11 10:16:29 · 77 阅读 · 0 评论 -
oracle表&视图
user_tables用于存储用户分配的表视图dba_tables用于存储管理员分配的表视图all_tables用户存储数据库中所有的表的视图原创 2012-01-09 19:43:30 · 102 阅读 · 0 评论 -
SQL 流程控制语句 之一 IF…ELSE语句
declare @a int,@b varchar(100)set @a=(select count(titles_id) from titles);set @b=convert(varchar(100),@a);if @a2009-03-21 17:47:40 · 425 阅读 · 0 评论 -
SQL分页
Oracle:[code="java"]SELECT * FROM (SELECT * FROM (SELECT T.*, ROW_NUMBER() OVER(ORDER BY NULL) AS RN FROM T_ADMIN_USER T) P WHERE P.RN > 5) Q WHERE ROWNU...原创 2009-01-16 12:42:45 · 369 阅读 · 0 评论 -
连接查询
[b]自然连接[/b](INNER JOIN)也叫内连接SELECT PUB_NAME,TITLEFROM TITLES,PUBLISHERSWHERE TITLES.PUB_ID=PUBLISHERS.PUB_ID或写成:SELECT PUB_NAME,TITLEFROM TITLES INNER JOIN PUBLISHERSON TITLES.PUB_ID=PUB...原创 2009-01-16 13:01:49 · 152 阅读 · 0 评论 -
4范式
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 例如,如下的数据库表是符合第一范式的: 字段1 字段2 字段3 字段4 而这样的数据库表是不符合第一范式的: 字段1 字段2 字段3 字段4 字段3.1 字段3.2 很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不...原创 2009-01-20 17:55:16 · 208 阅读 · 0 评论 -
oracle数据导入&导出
表导出:exp UserName/Password@DBName file=d:\daochu.dmp tables=(tableName1,tableName2...)全数据导出exp UserName/Password@DBName file=d:\daochu.dmp full=y表导入:imp UserName/Password@DBName file=d:\d...原创 2010-05-11 08:30:14 · 84 阅读 · 0 评论 -
oracle 表解锁
全部解锁[code="sql"]declare v_sid V$LOCKED_OBJECT.SESSION_ID%type;v_ser V$SESSION.SERIAL#%type;ls_sql varchar2(1000);i number;j number;beginselect count(distinct session_id) into j from ...原创 2011-09-20 23:05:10 · 70 阅读 · 0 评论 -
oracle循环使用
[code="java"] declare i number; begin i := 1; while (i原创 2011-03-06 20:04:43 · 64 阅读 · 0 评论 -
in&exists
有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1T2 时,2) 的查询效率高。IN和EXISTS。 select * from t1 where x in ( select y f...原创 2011-03-06 20:40:03 · 66 阅读 · 0 评论 -
oracle function
COALESCE(a,b,c,d.....z)返回参数表中第一个不为null的值(从左开始)NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致 NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,...原创 2011-03-06 20:43:16 · 96 阅读 · 0 评论 -
Select语句执行顺序
目的在于理解如何Select【搜索所得】:标准的 SQL 的解析顺序为:(1).FROM 子句, 组装来自不同数据源的数据(2).WHERE 子句, 基于指定的条件对记录进行筛选(3).GROUP BY 子句, 将数据划分为多个分组(4).使用聚合函数进行计算(5).使用 HAVING 子句筛选分组(6).计算所有的表达式(7).使用 ORDER BY ...原创 2011-03-08 22:31:35 · 83 阅读 · 0 评论 -
UNION 与 UNION ALL
UNION 与 UNION ALLUNION 有一个内部的 DISTINCT 语句。因此,重复的行将被消除,每个值只显示一个实例。很多业务问题都可以从这种行为当中获益。原创 2011-12-27 21:03:16 · 78 阅读 · 0 评论 -
oracle数据导入导出
--将数据库db完全导出[code="sql"]exp user/pwd@db file=d:\daochu.dmp full=y[/code]--将数据库中u1用户与u2用户的表导出[code="sql"]exp user/pwd@db file=d:\daochu.dmp owner=(u1,u2)[/code]--将数据库中的表table1 、table2导出[code=...原创 2012-01-05 15:20:44 · 62 阅读 · 0 评论 -
SQL优化规范
优化规范1.1 限制输出原则 在OLTP系统中,原则上都是小事务、小查询,应当限制输出的行数,使执行计划经过索引,保证响应速度。而且,对于用户来说,返回过多的行是没有意义的。 规范1:结果集不能超过500行可以通过以下方法限制输出行数:对于多个可选输入条件的查询,要至少有一个强条件,而且这个条件字段应该有索引。对于时间范围的查询,要预估结果集,从而确定最长时间范围。...原创 2015-04-17 13:44:52 · 231 阅读 · 0 评论