
SQl
文章平均质量分 82
thy822
这个作者很懒,什么都没留下…
展开
-
SQL中的单记录函数
SQL中的单记录函数1.ASCII 返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;A A ZERO SPACE--------- --------- --------- ---------65 97 48 322.CHR 给出整数,返回对应的字符;SQL> select chr(5474原创 2011-01-18 15:16:00 · 837 阅读 · 0 评论 -
Oracle存储过程基本语法
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;行2: IS关键词表明后面将跟随一个转载 2012-11-13 16:50:51 · 1196 阅读 · 0 评论 -
ORACLE 列转行和行转列的SQL
网络上关于行转列和列转行的文章不少,但要么太复杂,要么太凌乱,此处用一个小例子说明如何通过简单SQL实现行列转换。表testNAMEKMCJ张三语文80张三数学86张三英语75李四语文转载 2012-08-28 10:59:40 · 8428 阅读 · 0 评论 -
oracle分析函数Rank, Dense_rank, row_number
目录===============================================1.使用rownum为记录排名2.使用分析函数来为记录排名3.使用分析函数为记录进行分组排名一、使用rownum为记录排名:在前面一篇《Oracle开发专题之:分析函数》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:①对所有客户按订单总额进行排名转载 2012-08-30 15:44:08 · 635 阅读 · 0 评论 -
三范式浅析
注意:斜体字部分为逻辑性语言,不容易理解,但很准确;粗体字部分为通俗语言,容易理解,但有失准确。l 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。换句话说:能分就分,分到不能分为止!例1:原表1上表中“地点”字段中的值就不符合第一范式。正确的做法应该是把大地点和小地点分开,保持每列转载 2012-08-29 16:32:30 · 1438 阅读 · 0 评论 -
Analyze table 如何降低表HWM
1Anonlyze只影响user_tables的统计数据, 不影响user_segments占用空间等参数。Analyze Table会分析BLOCKS,NUM_ROWS,AVG_ROW_LEN,LAST_ANALYZED….到user_tablesanalyze table t compute statistics;analyze table用来收集统计信息,作为cbo优原创 2011-06-27 16:58:00 · 831 阅读 · 0 评论 -
SQL2005外键带有索引吗??我还需要在外键上面建索引吗?
<br />建立外键不像建立主键那样默认有一个聚集索引,需要手工增加在外键上的索引。<br /><br />如:SQL code Use testGoIfObject_id('TableB','U') IsNotNullDropTable TableBGoIfObject_id('TableA','U') IsNotNullDropTable TableAGoCreateTable TableA( ID intIdentity(1,1) Notnull, x int ,原创 2011-05-10 09:48:00 · 2907 阅读 · 0 评论 -
SQL优化--使用内连接(inner join)代替外连接(left join,right join)
避免 LEFT JOIN 和 NULL <br /> 当然,有很多时候您需要执行 LEFT JOIN 和使用 NULL 值。但是,它们并不适用于所有情况。改变 SQL 查询的构建方式可能会产生将一个花几分钟运行的报告缩短到只花几秒钟这样的天壤之别的效果。有时,必须在查询中调整数据的形态,使之适应应用程序所要求的显示方式。虽然 TABLE 数据类型会减少大量占用资源的情况,但在查询中还有许多区域可以进行优化。SQL 的一个有价值的常用功能是 LEFT JOIN。它可以用于检索第一个表中的所有行、第原创 2011-05-12 17:19:00 · 1704 阅读 · 0 评论 -
oracle笔记
<br />oracle 10 要安装JDK1.6 General(一般选这个)<br />Sys图形化界面<br />oracle10需要安装客户端10<br />添加用户时会添加表空间 Temp space(回滚时用到)<br />角色commit和procedure<br />SGA文件的修改<br />import 40GB 要将数据和索引分别导入,要在服务器上导入, 不要在客户机上导入<br />32位 4096GB<br />oracle优化:hints和sql plan<br />analyz原创 2011-05-12 16:23:00 · 608 阅读 · 0 评论 -
Analyze 命令的使用方法
<br />1、三大功能<br />搜集和删除索引、表和簇的统计信息<br />验证表、索引和簇的结构<br />鉴定表和簇和行迁移和行联接<br />针对analyze的搜集和删除统计信息功能而言,oracle推荐使用DBMS_STATS包来搜集优化信息,DBMS_STATS可以并行的搜集信息,可以搜集分区表的全局信息,进一步来说,按成本的优化器只会使用DBMS_STATS包所统计出来的信息。<br />2、先决条件<br />必须在你自己的方案中或有ANALYZE ANY system 的权限,<br原创 2011-05-12 16:55:00 · 2406 阅读 · 0 评论 -
UNION ,INTERSECT,MINUS
<br />和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。 UNION 是联集,而 INTERSECT 是交集 INTERSECT 的语法如下: [SQL语句 1] INTERSECT [SQL语句 2] 假设我们有以下的两个表格, A表格 Place Price Date原创 2011-05-11 10:27:00 · 663 阅读 · 0 评论 -
SQL Server 查询处理中的各个阶段(SQL执行顺序)
<br />SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 <br /> 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。下面是对应用于SQL server 2000和SQL Serv原创 2011-05-09 13:13:00 · 704 阅读 · 0 评论 -
数据库面试题集合
在整理准备数据库面试的过程中,先是在网上一顿海搜,找到历史面试题,然后一个骨头一个骨头的啃完,现在基本上这些问题(或者说叫做实践)都没有问题了。遇到的困难是:PL/SQL居多,T-SQL太少,所以需要筛选,修改答案,甚至有一些在T-SQL里面还没有支持。下一步再把数据库T-SQL经典教程在翻看一遍,基本上对数据库就算告一段落了,前前后后共整整1个多月的时间(去年10.1是二周,下载是三周),学习的还行吧。下面的就是全部内容,大段摘录的,或者是抄的,我都写了出处;有一些实在忘记了,请见谅:向大家共享知识,想必原创 2011-05-10 13:27:00 · 1492 阅读 · 0 评论 -
两表(多表)关联update
<br />两表(多表)关联update -- 仅在where字句中的连接<br /> --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别<br /> update customers a -- 使用别名<br /> set customer_type='01' --01 为vip,00为普通<br /> where exists (select 1<br /> from tmp原创 2011-05-10 14:21:00 · 1301 阅读 · 0 评论 -
oracle 存储过程的基本语法
<br />1.基本结构 <br />CREATE OR REPLACE PROCEDURE 存储过程名字 <br />( <br /> 参数1 IN NUMBER, <br /> 参数2 IN NUMBER <br />) IS <br />变量1 INTEGER :=0; <br />变量2 DATE; <br />BEGIN <br /><br />END 存储过程名字 <br /><br />2.SELECT INTO STATEMENT <br /> 将select查询的结果存入到变原创 2011-01-19 09:58:00 · 514 阅读 · 0 评论 -
sql常见面试题
我有一个表,有两个字段:收费项目(唯一值),收费金额。 我想用SQL按收费项目不同生成不同的字段,对应值是金额。如: 房租 100 水电费 50 杂费 50 生成后的格式是: 房租 水电费 杂费 100 50 50 请问,如何写这个SQL语句?select sum(case when 收费项目= '房租 ' then 收费金额 else 0原创 2011-05-09 11:05:00 · 2938 阅读 · 0 评论