﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-wufang5-文章分类-Oracle</title><link>http://www.blogjava.net/wufang5/category/36161.html</link><description>认识自己，降伏自己，改变自己，才能改变别人。</description><language>zh-cn</language><lastBuildDate>Mon, 24 Nov 2008 09:17:29 GMT</lastBuildDate><pubDate>Mon, 24 Nov 2008 09:17:29 GMT</pubDate><ttl>60</ttl><item><title>oracle的基本概念</title><link>http://www.blogjava.net/wufang5/articles/242193.html</link><dc:creator>懒虫</dc:creator><author>懒虫</author><pubDate>Mon, 24 Nov 2008 01:38:00 GMT</pubDate><guid>http://www.blogjava.net/wufang5/articles/242193.html</guid><wfw:comment>http://www.blogjava.net/wufang5/comments/242193.html</wfw:comment><comments>http://www.blogjava.net/wufang5/articles/242193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufang5/comments/commentRss/242193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufang5/services/trackbacks/242193.html</trackback:ping><description><![CDATA[<div>SQL语句：</div>
<div>1、数据查询语句 &#160; &#160; SELECT</div>
<div>2、数据定义语句 &#160; &#160; DDL &#160; &#160; 定义表、视图、索引</div>
<div>3、数据操纵语句 &#160; &#160; DML &#160; &#160; INSERT、UPDATE、DELETE</div>
<div>4、数据控制语句 &#160; &#160; DCL&#160;</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
<div>基本的数据类型：</div>
<div>number(p,s) --> p个数字，s是p中小数点后的数字位数</div>
<div>smallint &#160; &#160;--> 表示16位的整数</div>
<div>integer &#160; &#160; --> 32位的整数</div>
<div>varchar(n) &#160;--> 可变长度的字符串，最长为n</div>
<div>char(n) &#160; &#160; --> 固定长度为n的字符串</div>
<div><br />
</div>
<div>一、基本查询语句</div>
<div>1）DESC 表名 &#160; --> &#160;查看表的关键字、类型</div>
<div>2）dual是虚表 &#160; --> &#160;只有一个字段X，是空表</div>
<div>3）SELECT 字段名(原) 字段名(改) FORM表名 &#160; &#160; --> &#160;修改字段名称</div>
<div>如果修改后的字段名称里有空格，那么整个修改后的名称用双引号括起来，不仅是空格，中文等特殊字符也要用双引号，用双引号的字段名不会变成大写</div>
<div><br />
</div>
<div>注意：字段里的空值与0是不同的概念，任何含有空值的表达式与其他表达式运算后其结果还是空值</div>
<div><br />
</div>
<div><br />
</div>
<div>4）distinct</div>
<div>&#160;&#160; SELECT DISTINCT 字段 FORM 表名 --> &#160;把字段中值不重复的列出来</div>
<div>&#160;&#160; SELECT DISTINCT 字段1，字段2 FORM 表名 --> &#160;把两个字段组合中不重复的列出来</div>
<div><br />
</div>
<div><br />
</div>
<div>5）条件表达式</div>
<div>&#160;&#160; &#160;WHERE sal IN &lt;800, 1000, 1500></div>
<div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;BETWEEN 800 AND 1500(包括两个界限)</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;IS (NOT) NULL</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
<div>&#160;&#160; &#160;WHERE &#160; &#160; birthday &#160;> '20-2月-1988' (对日期的处理) 后面的字符串要和日期的格式相同</div>
<div><br />
</div>
<div>&#160;&#160; &#160;WHERE name LIKE + "."一个字母， "*"0个或多个字母 &#160;"?"0个或一个</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;"+"一个或多个 &#160;"%"0个或多个 &#160; &#160;"_"一个字母</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
<div>二、单行函数（只要有一条数据就产生一个输出）</div>
<div>&#160;&#160; &#160;nvl(i,j) 专门用来处理空值，当i为空值时就把他的只当成j的值&#160;</div>
<div><br />
</div>
<div>三、聚合函数（组函数）</div>
<div>&#160;&#160; &#160;min()、max()、</div>
<div>&#160;&#160; &#160;avg() 只能对数值型的字段使用</div>
<div>&#160;&#160; &#160;sum()、count()</div>
<div>&#160;&#160; &#160;count(*)就是求这个表里有多少记录</div>
<div>注意：聚合函数不能用在WHERE子句中</div>
<div>&#160;&#160; &#160; &#160;在使用聚合函数是一定小心，如果在SELECT查询语句的条件表达式中出现聚合函数时不要用WHERE语句，要使用HAVING条件句</div>
<div><br />
</div>
<div><br />
</div>
<div>四、逻辑运算符</div>
<div>NOT > AND > OR</div>
<div><br />
</div>
<div><br />
</div>
<div>&#160;&#160; &#160; &#160; &#160;DDL&#160;</div>
<div>&#160;&#160; &#160; &#160; &#160;</div>
<div>&#160;&#160; &#160; &#160; &#160;</div>
<div>1、创建一个表</div>
<div>&#160;&#160; &#160;CREATE &#160;TABLE 表名(列名1 列约束，列名2 &#160;列约束) &#160; &#160;&#160;</div>
<div>&#160;&#160; 列约束：NOTNULL , UNIQUE</div>
<div>注意：1）把较小的不为空的字段放在前面，可能为空的字段放在后面</div>
<div>&#160;&#160; &#160; &#160;2）创建表时可以使用中文的字段名，但最好使用英文字段名</div>
<div>&#160;&#160; &#160; &#160;3）创建表时加上默认值，如DEFAULT SYSDATE</div>
<div>&#160;&#160; &#160; &#160;4）可以给字段加上约束条件</div>
<div><br />
</div>
<div><br />
</div>
<div>2、删除语句 DROP</div>
<div>&#160;&#160; 可以删除表、索引</div>
<div>&#160;&#160;&#160;</div>
<div>&#160;&#160;&#160;</div>
<div>3、修改语句 ALTER</div>
<div>&#160;&#160;1）在表的后面添加一个字段</div>
<div>&#160;&#160;ALTER TABLE 表名 ADD 列名 类型； 或 ALTER TABLE 表名 ADD （列名1 类型1[,列名2 类型2 ...]）；</div>
<div>&#160;&#160;</div>
<div>&#160;&#160;2)设置一个主键</div>
<div>&#160;&#160;ALTER TABLE 表名 ADD PRIARY KEY (列名)；</div>
<div>&#160;&#160;</div>
<div>&#160;&#160;3）删除一个主键</div>
<div>&#160;&#160;ALTER TABLE 表名 DROP PRIMARY KEY(列名)；</div>
<div>&#160;&#160;</div>
<div>&#160;&#160;4）修改表的名称</div>
<div>&#160;&#160;RENAME 旧表名 TO 新表名</div>
<div>&#160;&#160;</div>
<div>&#160;&#160;5）改变表里字段的定义描述</div>
<div>&#160;&#160;ALTER TABLE 表名 MODIFY 字段描述；</div>
<div>&#160;&#160;</div>
<div>&#160;&#160;6)给表里的字段加上唯一约束</div>
<div>&#160;&#160;ALTER TABLE 表名 ADD CONSTRAINT cons_name UNIQUE(列名);</div>
<div>&#160;&#160;cons_name 是给约束起的名称</div>
<div>&#160;&#160;</div>
<div>-->ALTER TABLE ABC ADD CONSTRAINT ONLY &#160;UNIQUE(A1);</div>
<div><br />
</div>
<div><br />
</div>
<div>4、数据删除语句 TRUNCATE</div>
<div>&#160;&#160; TRUNCATE TABLE 表名；</div>
<div>&#160;&#160; (只删除表的记录，而不删除表的结构)</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160;DML（数据操纵语句）</div>
<div>1、INSERT:</div>
<div>&#160;&#160; &#160; &#160; 在插入日期的时候，可以直接使用字符串，内部直接转换成日期格式。默认格式是&#8216;D-M-YY&#8217;、</div>
<div>&#160;&#160; &#160; &#160; TO_DATE('2008-09-09','YYYY-MM-DD')按照指定的格式显示</div>
<div>&#160;&#160; &#160; INSERT INTO 表名（字段列表） SELECT (字段名列表) FORM 表名；</div>
<div>&#160;&#160; &#160;&#160;</div>
<div>2、UPDATE：</div>
<div>&#160;&#160; &#160; &#160; &#160; UPDATE table_name SET column1 = 'XXX' WHERE conditions;</div>
<div>&#160;&#160; &#160; &#160; &#160; UPDATE table_name SET(col1,col2..) = (SELECT ...) WHERE ..</div>
<div><br />
</div>
<div>3、DELETE:</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160;DELETE [FROM] 表名 WHERE 条件；</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160;</div>
<div>&#160;&#160; &#160; &#160; &#160;&#160;</div>
<div>4、事务处理语句</div>
<div>&#160;&#160; &#160; 1) 显示提交 COMMIT;</div>
<div>&#160;&#160; &#160; 2）隐式提交 DDL(CREATE DROP ALTER TRUNCATE GRANT REVOKE) 她们都不用再提交</div>
<div>&#160;&#160; &#160; 3) 自动提交 SET AUTOCOMMIT ON;</div>
<div>&#160;&#160; &#160;&#160;</div>
<div>&#160;&#160; &#160; 事务回滚语句 ROLLBACK</div>
<div><br />
</div>
<div>&#160;&#160; &#160; &#160; &#160;&#160;</div>
<div>&#160;&#160; &#160; &#160; &#160; &#160;触发器： &#160; &#160; &#160; &#160;&#160;</div>
<div>&#160;&#160; CREATE [OR REPLACE] TRIGGER</div>
<div>&#160;&#160; ON 表名</div>
<div>&#160;&#160; [FOR EACH ROW]</div>
<div>&#160;&#160; PL/SQL</div>
<div>&#160;&#160;&#160;</div>
<div>&#160;&#160; 触发事件：DML：INSERT UPDATE DELETE</div>
<div>&#160;&#160; 触发条件：条件为true</div>
<div>&#160;&#160; 触发器动作：PL\SQL</div>
<div>&#160;&#160; &#160; &#160;</div>
<img src ="http://www.blogjava.net/wufang5/aggbug/242193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufang5/" target="_blank">懒虫</a> 2008-11-24 09:38 <a href="http://www.blogjava.net/wufang5/articles/242193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>