随笔分类 -  SQL

SQL
SQL语言
摘要:SQL(Structure Query Language)语言是数据库的核心语言。 一. SQL的发展是从1974年开始的,其发展过程如下: 1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。 1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R 时改为SQL。 1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。 1982年-----IBM公司出版第一个RDBMS语言SQL/DS。 1985年-----IBM公司出版第一个RDBMS语言DB2。 1986年-----美国国家标准化组织ANSI宣布... 阅读全文

posted @ 2012-07-30 11:18 lovebeauty 阅读(216) 评论(0) 推荐(0)

oracle - 关键字
摘要:INTERSECT 和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。 UNION 是联集,而 INTERSECT 是交集INTERSECT 的语法如下: [SQL语句 1]INTERSECT[SQL语句 2] 假设我们有以下的两个表格, A表格Place Price Date Los Angeles $1500 Jan-05-1999 San Di... 阅读全文

posted @ 2012-07-05 16:32 lovebeauty 阅读(212) 评论(0) 推荐(0)

oracle - 函数
摘要:1.去掉空格,替换 replace REPLACE (’CAT CALL’, ‘C’) ==> ‘AT ALL’ REPLACE (’Zero defects in period 99 reached 99%!’, ‘99′, ‘100′) ==> ‘Zero defects in period 1 阅读全文

posted @ 2012-07-04 11:06 lovebeauty 阅读(1800) 评论(0) 推荐(0)

oracle - SQL优化
摘要:优化规则:1.CBO模式下,表从右到左查询,右边第一个为基础表选择行数的少作为基础表,三个及三个以上的表,需要选择交叉表(连接另外两个表的表)作为基础表,2.数据量大的时候,使用exists 而非 in3.where自下而上的解析where子句,过滤数据记录的条件写在where字句的尾部,以便在过滤... 阅读全文

posted @ 2012-06-26 15:54 lovebeauty 阅读(367) 评论(0) 推荐(0)

oracle - sql中很有用小知识点
摘要:在Oracle中,只有DML才会开启一个事务。也就是说Insert,Update,Delete这些都会开启一个事务,并且该事务在commit/rollback/ddl命令时会自动结束。1.获取特定数据的前几位select substr(recordid,1,2) from syscode where rownum < 5;2.获取指定条数的数据select recordid from syscode where rownum < 5;3.获取指定格式的ID function getsmssendid return varchar2 is v_getsmssendid smssend 阅读全文

posted @ 2012-06-20 23:31 lovebeauty 阅读(353) 评论(0) 推荐(0)

if then elsif与select case when
摘要:case whenView Code 1 select (case userid2 when 'CUS0000003017804' then3 '张三'4 when 'CUS0000003017805' then5 '李四'6 else7 '王五'8 end) userid from users a where loginname = 'xxx';View Code 1 select case 2 when userid ='CUS0000003017804' then 3 ' 阅读全文

posted @ 2012-06-20 11:44 lovebeauty 阅读(345) 评论(0) 推荐(0)

SQL exists与in
摘要:对于in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化 的关键),如果是exists,那么以外层表为 阅读全文

posted @ 2012-06-01 17:21 lovebeauty 阅读(233) 评论(0) 推荐(0)

connect by Nocycle Prior
摘要:select branchid from branch where parentbranchid='BRA0000000000001' order by branchid第一句只能查询出父节点是BRA0000000000001的所有子节点select br.branchid from Branch brstart with br.branchid = 'BRA0000000000001'connect by Nocycle Prior br.branchid = br.parentbranchid这一句能查出父节点是BRA0000000000001的所有子节点, 阅读全文

posted @ 2012-06-01 15:35 lovebeauty 阅读(9317) 评论(0) 推荐(0)

SQL count()函数与sum()函数
摘要:count():COUNT() 函数返回匹配指定条件的行数。SELECT COUNT(column_name) FROM table_nameCOUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)1.SELECT COUNT(Customer) AS CustomerNi... 阅读全文

posted @ 2012-06-01 10:08 lovebeauty 阅读(21219) 评论(0) 推荐(1)

oracle - function(函数)
摘要:格式:(非package里)create or replace function function_name ( argu1 [mode1] datatype1, argu2 [mode2] datatype2, ........ ) return datatype is Result varchar2(50); begin return Result ; end;调用: var v1 varchar2(100) exec :v1:=function_name;package里:(有参)function getagentbroker(p_branchid I... 阅读全文

posted @ 2012-05-25 15:44 lovebeauty 阅读(338) 评论(0) 推荐(0)

oracle - procedure
摘要:create or replace procedure procedure_name as create or replace procedureprocedure_name is以上是一样的存储过程 1CREATEORREPLACEPROCEDURE存储过程名 2IS 3BEGIN 4NULL; 5END;行1: CREATEORREPLACEPROCEDURE是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程,如果存在就覆盖它;行2: IS关键词表明后面将跟随一个PL/SQL体。行3: BEGIN关键词表明PL/SQL体的开始。行4: NULLP... 阅读全文

posted @ 2012-05-25 12:14 lovebeauty 阅读(2478) 评论(0) 推荐(0)

oracle - 循环
摘要:loop循环:create or replace procedure pro_test_loop isi number;begini:=0;loop i:=i+1; dbms_output.put_line(i); if i>5 then exit; end if;end loop;end pro_test_loop;while循环:create or replace procedure pro_test_while isi number;begini:=0;while i<5 loop i:=i+1; dbms_output.put_line(i);end loop;end... 阅读全文

posted @ 2012-05-25 11:54 lovebeauty 阅读(286) 评论(0) 推荐(0)

oracle - type
摘要:type定义:oracle中自定义数据类型oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式,如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型格式 :create or replace type type_name as object(parameter1 varchar2(20),parameter2 varchar2(30));这样子定义之后我们就能像使用基本类型一样使用自定义类型去建表:如:create or repl 阅读全文

posted @ 2012-05-25 11:27 lovebeauty 阅读(3341) 评论(0) 推荐(0)

oracle - package
摘要:包是一组相关储存过程,函数,游标,自定义类型和变量等PL/SQL程序设计元素的组合。包具有面向对象设计的特点,是对这些PL/SQL程序设计元素的封装。一个包由两个分开的部分组成:(1)包package声明或定义:包定义部分是创建包的规范说明,声明包内数据类型、变量、常量、游标等元素。这部分也是为使用者提供了透明的接口。(2)包体packpage body:包体是包定义部分的具体实现。声明或定义:View Code 1 create or replace Package FirstPage is 2 3 -- Author : MECON 4 -- Created : 2006-7... 阅读全文

posted @ 2012-05-21 12:15 lovebeauty 阅读(315) 评论(0) 推荐(0)

sql--复习
摘要:1 USE master 2 GO 3 4 EXEC xp_cmdshell 'mkdir d:\bank', NO_OUTPUT 5 6 --检验数据库是否存在,如果为真,删除此数据库-- 7 IF exists(SELECT * FROM sysdatabases WHERE name='ban 阅读全文

posted @ 2012-03-28 15:07 lovebeauty 阅读(1313) 评论(0) 推荐(0)

数据库设计的三大范式
摘要:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:1.字段不可分。2.有主键,非主键字段依赖主键。3.非主键字段不能相互依赖 1.第一范式第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属 性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属 阅读全文

posted @ 2012-01-30 09:42 lovebeauty 阅读(1656) 评论(0) 推荐(0)

ER图与UML图
摘要:ER图:实体-联系图(Entity-RelationDiagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型构成E-R图的基本要素是实体、属性和联系,其表示方法为: 实体型:用矩形表示,矩形框内写明实体名; 属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线; 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型 在E-R图中要明确表明1对多关系,1对1关系和多对多关系。 1对1关系在两个... 阅读全文

posted @ 2012-01-14 10:09 lovebeauty 阅读(50845) 评论(0) 推荐(1)

oracle - dblink
摘要:1.同一个数据库的用户(a)要用到用户(b)的表等,所需要建立的连接CCPBS_19 = --SID引用名 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.38.19)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = CCPBS) -- 数据库实例名SID ) )格式:create public database link link_name connect to username(b) ide... 阅读全文

posted @ 2012-01-10 16:16 lovebeauty 阅读(228) 评论(0) 推荐(0)

oracle - 最常用字段类型
摘要:VARCHAR2 (size) 可变长度的字符串, 必须规定长度 CHAR(size) 固定长度的字符串, 不规定长度默认值为1 NUMBER(p,s) 精度p取值范围1~38有效位s取值范围-84~127s正数,小数点右边指定位置开始四舍五入s负数,小数点左边指定位置开始四舍五入s是0或者未指定,四舍五入到最近整数 。意思就是 NUMBER(10) 精度10位,不保留小数位(四舍五入) DATE 日期和时间类型 阅读全文

posted @ 2011-12-13 17:34 lovebeauty 阅读(329) 评论(0) 推荐(0)

导航