开始学习啦...........

发布新日志

  • MYSQL基础

    2010-01-04 17:43:21

    mysql 数据库的基本操作

     

    创建数据库

     

    Mysql>create database temp;

     

    注意:在“mysql>”提示符下语句结束要用“;”或者“\g”。

     

    l        删除数据库

    Mysql>drop database temp;

     

    l        选择数据库

    Mysql>use temp;

     

    l        创建数据表

    Create [temporary] table [if not exits] tablename [(createdefine,…)] [tableoptions] [selectstatemente]

    例如:

    Mysql>use temp;

     

    Musql>create table studentinfo

          ->(

          ->name char(10),

          ->id int(6)

          ->);

     

    注意:在创建数据表之前要用use语句选择数据库,否则会出错。

     

    l        删除数据表

    Mysql>drop table studentinfo;

     

    l        更改数据表

    该语句可以修改一个现有表的结构。

     

    alter [ignor] table tablename alterspec [, alterspec…]

     

    l        优化数据表

    在数据表反复修改后,可以用optimize table语句来进行优化和碎片整理工作

    Mysql>optimize table info;

     

    l        添加记录

     

    insert [low_priority|delayed] [ignore] [into] tablename [(col_name,…)] values (expression,…),(….),…

     

    或者

    insert [low_priority|delayed] [ignore] [into] tablename [(col_name,…)] select…

     

    或者

    insert [low_priority|delayed] [ignore] [into] tablename set col_name=expression, col_name=expression,…

     

    例如:

    Mysql>insert into info(name, id) values(‘aaa’,001,);

     

    l        删除记录

     

    delete [low_priority] from tablename [where where_define] [limit rows]

    该语句将从tablename数据表中删除满足where语句条件的记录,并返回删除记录的个数。如果没有where子句,该表中所有的记录都将被删除。

     

    Mysql>delete from info;

     

     

    l        查询语句

     

    select语句的语法:

    select [straight_join] [sql_small_result] [sql_big_result] [high_priority] [distinct | distinctrow | all] select_expression… [into {outfile | dumpfile} ‘file_name’ export_options] [from table_ref] [where where_define] [group by col_name] [having where_define] [order by {unsigned_integer | col_name |formula} [asc | desc],…] [limit [offset,] row] [procedure procedure_name]

  • 常见名词—Mssql ;Mysql ;SQL: pl/sql

    2009-05-22 16:59:14

     
      对于数据库的知识,一直停留在 陌生而熟悉的阶段,今天把最常见的  数据库以及名词  小小的总结下。。呵呵
        1.MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司.
        2.Mssql 全称:Microsoft SQL Server是使用客户机/服务器(C/S)体系结构的关系型数据库管理系统(RDBMS)
        3.SQL(STructured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
        4.PL/SQL是ORACLE对标准数据库语言的扩展, PL/SQL语言在将SQL语言的灵活性及功能与第三代语言的可配置能力相结合方面是独一无二的.
    一.MYSQL:
     MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
     
    MySQL的特性:

    使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

    支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

    为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

    支持多线程,充分利用CPU资源

    优化的SQL查询算法,有效地提高查询速度

    既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中

    提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

    提供TCP/IP、ODBC和JDBC等多种数据库连接途径

    提供用于管理、检查、优化数据库操作的管理工具

    可以处理拥有上千万条记录的大型数据库

    MySQL的应用:

    与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

    目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。

    MySQL管理:

    可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。

    phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web介面管理MySQL资料库。

    phpMyBackupPro也是由PHP写成的,可以透过Web介面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。

    Mysql存储引擎:
    MyISAM Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务
    InnoDB 事务型数据库的首选引擎,支持ACID事务,支持行级锁定
    BDB 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
    Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
    Merge 将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
    Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差
    Federated 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Cluster/NDB 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
    CSV 逻辑上由逗号分割数据的存储引擎
    BlackHole 黑洞引擎,写入的任何数据都会消失

    另外,Mysql的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。

    Mysql最常见的应用架构:
    单点(Single),适合小规模应用
    复制(Replication),适合中小规模应用
    集群(Cluster),适合大规模应用


    Mysql6.0的alpha版于2007年初发布,新版增加了对falcon存储引擎的支持。Falcon是Mysql社区自主开发的引擎,支持ACID特性事务,支持行锁,拥有高性能的并发性。Mysql AB公司想用Falcon替代已经非常流行的InnoDB引擎,因为拥有后者技术的InnoBase已经被竞争对手Oracle所收购。
     
    二.MSSQL

    Mssql 全称:Microsoft SQL Server是使用客户机/服务器(C/S)体系结构的关系型数据库管理系统(RDBMS)。
    1988年推出了第一个OS/2版本。
    1992年,SQL Server移植到NT上后,Microsoft成了这个项目的主导者。
    1994年以后,Microsoft专注于开发、推广SQL Server的Windows NT版本
    1996年,Microsoft公司推出了SQL Server 6.5版本
    1998年,推出了SQL Server 7.0版本
    2000年推出了SQL Server 2000。 
    目前最新版本为:SQL Server 2005,但使用SQL Server 2000的多。


    开发人员版:是一个适用于应用程序开发的版本 。
    1.SQL Server的主要特点

    真正的客户机/服务器体系结构。
    图形化用户界面。
    丰富的编程接口工具。
    SQL Server与Windows NT完全集成。
    具有很好的伸缩性。
    对Web技术的支持。
    SQL Server提供数据仓库功能。

    三.SQL

    SQL全称是“结构化查询语言(Structured Query Language)”
      SQL(STructured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
      SQL同时也是数据库脚本文件的扩展名。


    四.PL/SQL

     PL/SQL是一种高级数据库程序设计语言,PL/SQL语言在将SQL语言的灵活性及功能与第三代语言的可配置能力相结合方面是独一无二的。该语言集成了面向过程语言的过程结构和强大的数据库操作,为设计复杂的数据库应用提供了功能强大、健壮可靠的程序设计语言。该语言专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。

     

     

  • 经典的SQL语句大全

    2009-05-22 16:49:11

    转载 经典SQL语句大全收藏

    function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}

      SQL分类:

      DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
      DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
      DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

      首先,简要介绍基础语句:

      1、说明:创建数据库

    CREATE DATABASE database-name

      2、说明:删除数据库

    drop database dbname

      3、说明:备份sql server

      --- 创建 备份数据的 device

    USE master
    EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

      --- 开始 备份

    BACKUP DATABASE pubs TO testBack

      4、说明:创建新表

    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

      根据已有的表创建新表:

    A:create table tab_new like tab_old (使用旧表创建新表)
    B:create table tab_new as select col1,col2… from tab_old definition only

      5、说明:

      删除新表:drop table tabname

      6、说明:

      增加一个列:Alter table tabname add column col type

      注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

      7、说明:

      添加主键:Alter table tabname add primary key(col)

      说明:

      删除主键:Alter table tabname drop primary key(col)

      8、说明:

      创建索引:create [unique] index idxname on tabname(col….)

      删除索引:drop index idxname

      注:索引是不可更改的,想更改必须删除重新建。

      9、说明:

      创建视图:create view viewname as select statement

      删除视图:drop view viewname

    10、说明:几个简单的基本的sql语句

      选择:select * from table1 where 范围

      插入:insert into table1(field1,field2) values(value1,value2)

      删除:delete from table1 where 范围

      更新:update table1 set field1=value1 where 范围

      查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

      排序:select * from table1 order by field1,field2 [desc]

      总数:select count * as totalcount from table1

      求和:select sum(field1) as sumvalue from table1

      平均:select avg(field1) as avgvalue from table1

      最大:select max(field1) as maxvalue from table1

      最小:select min(field1) as minvalue from table1

      11、说明:几个高级查询运算词

      A: UNION 运算符

      UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

      B: EXCEPT 运算符

      EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

      C: INTERSECT 运算符

      INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

      注:使用运算词的几个查询结果行必须是一致的。

      12、说明:使用外连接

      A、left outer join:

      左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

      B:right outer join:

      右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

      C:full outer join:

      全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

      其次,大家来看一些不错的sql语句

      1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

      法一:select * into b from a where 1<>1

      法二:select top 0 * into b from a

      2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)

    insert into b(a, b, c) select d,e,f from b;

      3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

    insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

      例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

      4、说明:子查询(表名1:a 表名2:b)

    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

      5、说明:显示文章、提交人和最后回复时间

    select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

    6、说明:外连接查询(表名1:a 表名2:b)

    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

      7、说明:在线视图查询(表名1:a )

    select * from (SELECT a,b,c FROM a) T where t.a > 1;

      8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括

    select * from table1 where time between time1 and time2

    select a,b,c, from table1 where a not between 数值1 and 数值2

      9、说明:in 的使用方法

    select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

      10、说明:两张关联表,删除主表中已经在副表中没有的信息

    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

      11、说明:四表联查问题:

    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

      12、说明:日程安排提前五分钟提醒

    SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

      13、说明:一条sql 语句搞定数据库分页

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

      14、说明:前10条记录

    select top 10 * form. table1 where 范围

      15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

      16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

    (select a from tableA ) except (select a from tableB) except (select a from tableC)

      17、说明:随机取出10条数据

    select top 10 * from tablename order by newid()

      18、说明:随机选择记录

    select newid()

      19、说明:删除重复记录

    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

      20、说明:列出数据库里所有的表名

    select name from sysobjects where type='U'

    21、说明:列出表里的所有的

    select name from syscolumns where id=object_id('TableName')

      22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type

      显示结果:

    type     vender pcs
    电脑 A 1
    电脑 A 1
    光盘 B 2
    光盘 A 2
    手机 B 3
    手机 C 3

      23、说明:初始化表table1

    TRUNCATE TABLE table1

      24、说明:选择从10到15的记录

    select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

    随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)

      对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:

    Randomize
    RNumber = Int(Rnd*499) +1
     
    While Not objRec.EOF
    If objRec("ID") = RNumber THEN
    ... 这里是执行脚本 ...
    end if
    objRec.MoveNext
    Wend

      这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?

      采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:

    Randomize
    RNumber = Int(Rnd*499) + 1
     
    SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
     
    set bjRec = ObjConn.Execute(SQL)
    Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")

      不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。

    再谈随机数

      现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。

      为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:

      SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3

      假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码):
    SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"

      注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。

      随机读取若干条记录,测试过

    Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
    Sql server:select top n * from 表名 order by newid()
    mysql select * From 表名 Order By rand() Limit n

      Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)

      语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...

      使用SQL语句 用...代替过长的字符串显示

      语法:

      SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
      Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

      Conn.Execute说明

      Execute方法

      该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:

      1.执行SQL查询语句时,将返回查询得到的记录集。用法为:

      Set 对象变量名=连接对象.Execute("SQL 查询语言")

      Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。

      2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:

      连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]

      ·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。

      ·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。

      ·BeginTrans、RollbackTrans、CommitTrans方法

      这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。

      事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。

      BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。

    SQL语句大全精要
    2006/10/26 13:46
    DELETE语句

    DELETE语句:用于创建一个删除查询,可从列在 FROM 子句之中的一个或多个表中删除记录,且该子句满足 WHERE 子句中的条件,可以使用DELETE删除多个记录。

    语法:DELETE [table.*] FROM table WHERE criteria

    语法:DELETE * FROM table WHERE criteria='查询的字'

    说明:table参数用于指定从其中删除记录的表的名称。
    criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。
    可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。

    UPDATE
    有关UPDATE,急!!!!!!!!!!!
    在ORACLE数据库中
    表 A ( ID ,FIRSTNAME,LASTNAME )
    表 B( ID,LASTNAME)

    表 A 中原来ID,FIRSTNAME两个字段的数据是完整的
    表 B中原来ID,LASTNAME两个字段的数据是完整的
    现在要把表 B中的LASTNAME字段的相应的数据填入到A表中LASTNAME相应的位置。两个表中的ID字段是相互关联的。
    先谢谢了!!!!

    update a set a.lastname=(select b.lastname from b where a.id=b.id)


      掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。

       练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。

      在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。

      SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。

      INSERT语句

      用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:

      INSERT INTO EMPLOYEES VALUES

       ('Smith','John','1980-06-10',

       'Los Angles',16,45000);

      通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

      我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。

      如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。

       回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。

      同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。

      对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。

      既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分:

      INSERT INTO EMPLOYEES VALUES

       ('Bunyan','Paul','1970-07-04',

       'Boston',12,70000);

      INSERT INTO EMPLOYEES VALUES

       ('John','Adams','1992-01-21',

       'Boston',20,100000);

      INSERT INTO EMPLOYEES VALUES

       ('Smith','Pocahontas','1976-04-06',

       'Los Angles',12,100000);

      INSERT INTO EMPLOYEES VALUES

       ('Smith','Bessie','1940-05-02',

       'Boston',5,200000);

      INSERT INTO EMPLOYEES VALUES

       ('Jones','Davy','1970-10-10',

       'Boston',8,45000);

      INSERT INTO EMPLOYEES VALUES

       ('Jones','Indiana','1992-02-01',

       'Chicago',NULL,NULL);

      在最后一项中,我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不要引号)。NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。现在我们只需认为NULL表示一种未知的值。

      有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。除了对要省略的列输入NULL外,还可以采用另外一种INSERT语句,如下:

      INSERT INTO EMPLOYEES(

       FIRST_NAME, LAST_NAME,

       HIRE_DATE, BRANCH_OFFICE)

      VALUE(

       'Indiana','Jones',

       '1992-02-01','Indianapolis');

      这样,我们先在表名之后列出一系列列名。未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。请注意我们改变了列的顺序,而值的顺序要对应新的列的顺序。如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL操作将失败。

      让我们来看一看上述INSERT语句的语法图:

      INSERT INTO table

       [(column { ,column})]

      VALUES

       (columnvalue [{,columnvalue}]);

      和前一篇文章中一样,我们用方括号来表示可选项,大括号表示可以重复任意次数的项(不能在实际的SQL语句中使用这些特殊字符)。VALUE子句和可选的列名列表中必须使用圆括号。

      SELECT语句

      SELECT语句可以从一个或多个表中选取特定的行和列。因为查询和检索数据是数据库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。实际上,仅仅是访问数据库来分析数据并生成报表的人可以对其他SQL语句一窍不通。

      SELECT语句的结果通常是生成另外一个表。在执行过程中系统根据用户的标准从数据库中选出匹配的行和列,并将结果放到临时的表中。在直接 SQL(direct SQL)中,它将结果显示在终端的显示屏上,或者将结果送到打印机或文件中。也可以结合其他SQL语句来将结果放到一个已知名称的表中。

      SELECT语句功能强大。虽然表面上看来它只用来完成本文第一部分中提到的关系代数运算“选择”(或称“限制”),但实际上它也可以完成其他两种关系运算—“投影”和“连接”,SELECT语句还可以完成聚合计算并对数据进行排序。

      SELECT语句最简单的语法如下:

      SELECT columns FROM tables;

      当我们以这种形式执行一条SELECT语句时,系统返回由所选择的列以及用户选择的表中所有指定的行组成的一个结果表。这就是实现关系投影运算的一个形式。

      让我们看一下使用图1中EMPLOYEES表的一些例子(这个表是我们以后所有SELECT语句实例都要使用的。而我们在图2和图3中给出了查询的实际结果。我们将在其他的例子中使用这些结果)。

      假设你想查看雇员工作部门的列表。那下面就是你所需要编写的SQL查询:

      SELECT BRANCH_OFFICE FROM EMPLOYEES;

      以上SELECT语句的执行将产生如图2中表2所示的结果。

      由于我们在SELECT语句中只指定了一个列,所以我们的结果表中也只有一个列。注意结果表中具有重复的行,这是因为有多个雇员在同一部门工作(记住SQL从所选的所有行中将值返回)。要消除结果中的重复行,只要在SELECT语句中加上DISTINCT子句:

      SELECT DISTINCT BRANCH_OFFICE

      FROM EMPLOYEES;

      这次查询的结果如表3所示。

      现在已经消除了重复的行,但结果并不是按照顺序排列的。如果你希望以字母表顺序将结果列出又该怎么做呢?只要使用ORDER BY子句就可以按照升序或降序来排列结果:

      SELECT DISTINCT BRANCH_OFFICE

      FROM EMPLOYEES

      ORDER BY BRANCH_OFFICE ASC;

      这一查询的结果如表4所示。请注意在ORDER BY之后是如何放置列名BRANCH _OFFICE的,这就是我们想要对其进行排序的列。为什么即使是结果表中只有一个列时我们也必须指出列名呢?这是因为我们还能够按照表中其他列进行排序,即使它们并不显示出来。列名BRANCH_ OFFICE之后的关键字ASC表示按照升序排列。如果你希望以降序排列,那么可以用关键字DESC。

      同样我们应该指出ORDER BY子句只将临时表中的结果进行排序;并不影响原来的表。

      假设我们希望得到按部门排序并从工资最高的雇员到工资最低的雇员排列的列表。除了工资括号中的内容,我们还希望看到按照聘用时间从最近聘用的雇员开始列出的列表。以下是你将要用到的语句:

      SELECT BRANCH_OFFICE,FIRST_NAME,

       LAST_NAME,SALARY,HIRE_DATE

      FROM EMPLOYEES

      ORDER BY SALARY DESC,

       HIRE_DATE DESC;

      这里我们进行了多列的选择和排序。排序的优先级由语句中的列名顺序所决定。SQL将先对列出的第一个列进行排序。如果在第一个列中出现了重复的行时,这些行将被按照第二列进行排序,如果在第二列中又出现了重复的行时,这些行又将被按照第三列进行排序……如此类推。这次查询的结果如表5所示。

      将一个很长的表中的所有列名写出来是一件相当麻烦的事,所以SQL允许在选择表中所有的列时使用*号:

      SELECT * FROM EMPLOYEES;

      这次查询返回整个EMPLOYEES表,如表1所示。

       下面我们对开始时给出的SELECT语句的语法进行一下更新(竖直线表示一个可选项,允许在其中选择一项。):

      SELECT [DISTINCT]

       (column [{, columns}])| *

      FROM table [ {, table}]

      [ORDER BY column [ASC] | DESC

       [ {, column [ASC] | DESC }]];

      定义选择标准

      在我们目前所介绍的SELECT语句中,我们对结果表中的列作出了选择但返回的是表中所有的行。让我们看一下如何对SELECT语句进行限制使得它只返回希望得到的行:

      SELECT columns FROM tables [WHERE predicates];

      WHERE子句对条件进行了设置,只有满足条件的行才被包括到结果表中。这些条件由断言(predicate)进行指定(断言指出了关于某件事情的一种可能的事实)。如果该断言对于某个给定的行成立,该行将被包括到结果表中,否则该行被忽略。在SQL语句中断言通常通过比较来表示。例如,假如你需要查询所有姓为Jones的职员,则可以使用以下SELECT语句:

      SELECT * FROM EMPLOYEES

      WHERE LAST_NAME = 'Jones';

      LAST_NAME = 'Jones'部分就是断言。在执行该语句时,SQL将每一行的LAST_NAME列与“Jones”进行比较。如果某一职员的姓为“Jones”,即断言成立,该职员的信息将被包括到结果表中(见表6)。

      使用最多的六种比较

      我们上例中的断言包括一种基于“等值”的比较(LAST_NAME = 'Jones'),但是SQL断言还可以包含其他几种类型的比较。其中最常用的为:

      等于 =

      不等于 <>

      小于 <

      大于 >

      小于或等于 <=

      大于或等于 >=

      下面给出了不是基于等值比较的一个例子:

      SELECT * FROM EMPLOYEES

      WHERE SALARY > 50000;

      这一查询将返回年薪高于$50,000.00的职员(参见表7)。

      逻辑连接符

      有时我们需要定义一条不止一种断言的SELECT语句。举例来说,如果你仅仅想查看Davy Jones的信息的话,表6中的结果将是不正确的。为了进一步定义一个WHERE子句,用户可以使用逻辑连接符AND,OR和NOT。为了只得到职员 Davy Jones的记录,用户可以输入如下语句:

      SELECT * FROM EMPLOYEES

      WHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';

      在本例中,我们通过逻辑连接符AND将两个断言连接起来。只有两个断言都满足时整个表达式才会满足。如果用户需要定义一个SELECT语句来使得当其中任何一项成立就满足条件时,可以使用OR连接符:

      SELECT * FROM EMPLOYEES

      WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';

      有时定义一个断言的最好方法是通过相反的描述来说明。如果你想要查看除了Boston办事处的职员以外的其他所有职员的信息时,你可以进行如下的查询:

      SELECT * FROM EMPLOYEES

      WHERE NOT(BRANCH_OFFICE = 'Boston');

      关键字NOT后面跟着用圆括号括起来的比较表达式。其结果是对结果取否定。如果某一职员所在部门的办事处在Boston,括号内的表达式返回true,但是NOT操作符将该值取反,所以该行将不被选中。

      断言可以与其他的断言嵌套使用。为了保证它们以正确的顺序进行求值,可以用括号将它们括起来:

      SELECT * FROM EMPLOYEES

      WHERE (LAST_NAME = 'Jones'

      AND FIRST_NAME = 'Indiana')

      OR (LAST_NAME = 'Smith'

      AND FIRST_NAME = 'Bessie');

      SQL沿用数学上标准的表达式求值的约定—圆括号内的表达式将最先进行求值,其他表达式将从左到右进行求值。

      以上对逻辑连接符进行了说明,在对下面的内容进行说明之前,我们再一次对SELECT语句的语法进行更新:

      SELECT [DISTINCT]

       (column [{, column } ] )| *

      FROM table [ { , table} ]

      [ORDER BY column [ASC] | [DESC

      [{ , column [ASC] | [DESC } ] ]

      WHERE predicate [ { logical-connector predicate } ];

      NULL和三值逻辑

      在SQL中NULL是一个复杂的话题,关于NULL的详细描述更适合于在SQL的高级教程而不是现在的入门教程中进行介绍。但由于NULL需要进行特殊处理,并且你也很可能会遇到它,所以我们还是简略地进行一下说明。

      首先,在断言中进行NULL判断时需要特殊的语法。例如,如果用户需要显示所有年薪未知的职员的全部信息,用户可以使用如下SELECT语句:

      SELECT * FROM EMPLOYEES

      WHERE SALARY IS NULL;

      相反,如果用户需要所有已知年薪数据的职员的信息,你可以使用以下语句:

      SELECT * FROM EMPLOYEES

      WHERE SALARY IS NOT NULL;

      请注意我们在列名之后使用了关键字IS NULL或IS NOT NULL,而不是标准的比较形式:COLUMN = NULL、COLUMN <> NULL或是逻辑操作符NOT(NULL)。

      这种形式相当简单。但当你不明确地测试NULL(而它们确实存在)时,事情会变得很混乱。

      例如,回过头来看我们图1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等级或年薪值都是未知的。这两个列都包含NULL。可以想象运行如下的查询:

      SELECT * FROM EMPLOYEES

      WHERE GRADE <= SALARY;

      此时,Indiana Jones应该出现在结果表中。因为NULL都是相等的,所以可以想象它们是能够通过GRADE小于等于SALARY的检查的。这其实是一个毫无疑义的查询,但是并没有关系。SQL允许进行这样的比较,只要两个列都是数字类型的。然而,Indiana Jones并没有出现在查询的结果中,为什么?

      正如我们早先提到过的,NULL表示未知的值(而不是象某些人所想象的那样表示一个为NULL的值)。对于SQL来说意味着这个值是未知的,而只要这个值为未知,就不能将其与其他值比较(即使其他值也是NULL)。所以SQL允许除了在true 和false之外还有第三种类型的真值,称之为“非确定”(unknown)值。

      如果比较的两边都是NULL,整个断言就被认为是非确定的。将一个非确定断言取反或使用AND或OR与其他断言进行合并之后,其结果仍是非确定的。由于结果表中只包括断言值为“真”的行,所以NULL不可能满足该检查。从而需要使用特殊的操作符IS NULL和IS NOT NULL。

      UPDATE语句

      UPDATE语句允许用户在已知的表中对现有的行进行修改。

      例如,我们刚刚发现Indiana Jones的等级为16,工资为$40,000.00,我们可以通过下面的SQL语句对数据库进行更新(并清除那些烦人的NULL)。

      UPDATE EMPLOYEES

      SET GRADE = 16, SALARY = 40000

      WHERE FIRST_NAME = 'Indiana'

       AND LAST_NAME = 'Jones';

      上面的例子说明了一个单行更新,但是UPDATE语句可以对多行进行操作。满足WHERE条件的所有行都将被更新。如果,你想让Boston办事处中的所有职员搬到New York,你可以使用如下语句:

      UPDATE EMPLOYEES

      SET BRANCH_OFFICE = 'New York'

      WHERE BRANCH_OFFICE = 'Boston';

      如果忽略WHERE子句,表中所有行中的部门值都将被更新为'New York'。

      UPDATE语句的语法流图如下面所示:

      UPDATE table

      SET column = value [{, column = value}]

      [ WHERE predicate [ { logical-connector predicate}]];

      DELETE语句

      DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句中条件的行都将被删除。由于SQL中没有UNDO语句或是 “你确认删除吗?”之类的警告,在执行这条语句时千万要小心。如果决定取消Los Angeles办事处并解雇办事处的所有职员,这一卑鄙的工作可以由以下这条语句来实现:

      DELETE FROM EMPLOYEES

      WHERE BRANCH_OFFICE = 'Los Angeles';

      如同UPDATE语句中一样,省略WHERE子句将使得操作施加到表中所有的行。

      DELETE语句的语法流图如下面所示:

      DELETE FROM table

      [WHERE predicate [ { logical-connector predicate} ] ];

  • ORACLE常用傻瓜问题1000问

    2009-05-22 15:38:05

     

    1~626 .see:

    http://www.cnblogs.com/lizw/articles/779857.html

    --------------------------------------------------------------------------------
    627. DBA_TABLES
    数据库中所有关系表的描述。
    628. DBA_TABLESPACES
    所有表空间的描述。
    629. DBA_TEMP_FILES
    数据库临时文件信息。
    630. DBA_TRANSFORMATIONS
    数据库中所有消息传递信息。
    631. DBA_TRIGGER_COLS
    所有触发器列的用法。
    632. DBA_TRIGGERS
    数据库中所有的触发器。
    633. DBA_TS_QUOTAS
    所有用户的表空间的限额。
    634. DBA_TYPE_ATTRS
    数据库类型的属性。
    635. DBA_TYPE_METHODS
    描述数据库中所有类型的方法。
    636. DBA_TYPES
    数据库中所有的抽象数据类型。
    637. DBA_UNDO_EXTENTS
    在撤消表空间的每个范围的提交时间。
    638. DBA_UNUSED_COL_TABS
    对所有未使用列的描述。
    639. DBA_UPDATABLE_COLUMNS
    对可在一个连接视图中,由数据库管理员更新的列的描述。
    640. DBA_USERS
    数据库所有用户信息。
    641. DBA_USTATS
    当前用户信息。
    642. DBA_VARRAYS
    用户可以访问的视图的文本。
    643. DBA_VIEWS
    数据库中所有视图的文本。
    644. DBA_WAITERS
    列出所有正在等待一个锁的会话,以及列出正在阻止它们获得该锁的会话。
    9I管理的数据字典USER视图
    645. USER_ALL_TABLES
    包含对用户可用的表的描述。
    646. USER_ARGUMENTS
    列出对用户可存取的对象中的参数。
    647. USER_ASSOCIATIONS
    当前用户所拥有的相关对象的用户定义的统计。
    648. USER_AUDIT_OBJECT
    关于对象的语句审计跟踪记录。
    649. USER_AUDIT_SESSION
    关于用户连接或断开的全部审计跟踪记录。
    650. USER_AUDIT_STATEMENT
    列出用户发出的GRANT,REVOKE,AUDIT,NOAUDIT,ALTER SYSTEM语句的审计跟踪条目。
    651. USER_AUDIT_TRAIL
    与用户有关的审计跟踪条目。
    652. USER_BASE_TABLE_MVIEWS
    当前用户拥有的所有使用物化视图日志的物化视图。
    653. USER_CATALOG
    用户拥有的表,视图,同义词和序列。
    654. USER_CLU_COLUMNS
    用户表的列到聚集列的映射。
    655. USER_CLUSTER_HASH_EXPRESSIONS
    用户可存取的所有聚集及哈希函数。
    656. USER_CLUSTERS
    用户拥有的聚集的说明。
    657. USER_COL_COMMENTS
    列出用户表或视图的列上的注释。
    658. USER_COL_PRIVS
    列出列上的授权,用户是所有者,授予者或被授予者。
    659. USER_COL_PRIVS_MADE
    列出用户拥有对象的列上的全部授权。
    660. USER_COL_PRIVS_RECD
    列出列上的授权,用户是被授予者。
    661. USER_COLL_TYPES
    用户的命名集合类型。
    662. USER_CONS_COLUMNS
    用户拥有的约束定义中的列信息。
    663. USER_CONSTRAINTS
    用户表上的约束定义。
    664. USER_DB_LINKS
    数据库链信息。
    665. USER_DEPENDENCIES
    用户的对象之间的依赖关系。
    666. USER_DIM_ATTRIBUTES
    当前用户模式下维级别和功能依赖之间的关系。
    667. USER_DIM_CHILD_OF
    当前用户拥有的1到N维水平的层次关系。
    668. USER_DIM_HIERARCHIES
    当前用户拥有的维的层次。
    669. USER_DIM_JOIN_KEY
    当前用户拥有的维之间的连接。
    670. USER_DIM_LEVEL_KEY
    当前用户拥有的一个维级的列。
    671. USER_DIM_LEVELS
    当前用户拥有的一个维列。
    672. USER_DIMENSIONS
    当前用户模式下维对象。
    673. USER_ERRORS
    用户的所有存储对象上的当前错误。
    674. USER_EXTENTS
    属于用户对象的段的范围。
    675. USER_EXTERNAL_TABLES
    当前用户拥有的所有的外部对象。
    676. USER_FREE_SPACE
    用户可存取表空间中的空闲范围。
    678. USER_HISTOGRAMS
    该视图是USER_HISTOGRAMS的同义词。
    679. USER_IND_COLUMNS
    用户索引和表上的列。
    680. USER_IND_EXPRESSIONS
    当前用户拥有的表上基于函数的索引的表达式。
    681. USER_IND_SUBPARTITIONS
    当前用户拥有的每个字分区的属性,分区级别的分区信息,子分区的存储参数,ANALYZE决定的各种分区统计。
    682. USER_INDEXES
    当前用户拥有的索引的说明。
    683. USER_INDEXTYPE_COMMENTS
    当前用户拥有的用户定义的索引类型的所有注释。
    684. USER_INDEXTYPE_OPERATORS
    当前用户拥有的索引类型的所有操作。
    685. USER_INDEXTYPES
    当前用户拥有的所有索引类型。
    686. USER_INTERNAL_TRIGGERS
    当前用户拥有的所有表上的内部触发器。
    687. USER_JOBS
    用户拥有的所有作业。
    688. USER_JOIN_IND_COLUMNS
    当前用户拥有的数据库中所有的连接条件。
    689. USER_LIBRARIES
    列出用户拥有的所有库。
    690. USER_LOB_PARTITIONS
    当前用户拥有的LOB数据子分区中的分区级属性。
    691. USER_LOBS
    显示用户表中包含的LOB。
    692. USER_LOG_GROUP_COLUMNS
    当前用户拥有的在日志中指定的列。
    693. USER_LOG_GROUPS
    数据库中当前用户拥有的所有表的日志组定义。
    694. USER_METHOD_PARAMS
    当前用户拥有的用户类型的方法参数。
    695. USER_MVIEW_AGGREGATES
    当前用户拥有的在聚集实例化视图的SELECT列表中出现的分组函数。
    696. USER_MVIEW_ANALYSIS
    当前用户拥有的所有的物化视图用来潜在地支持查询重写并有可用于应用程序分析的附加信息。
    697. USER_MVIEW_DETAIL_RELATIONS
    代表命名细节关系。
    698. USER_MVIEW_JOINS
    描述在一个实例化视图的WHERE子句中,两个列之间的连接。
    699. USER_MVIEW_KEYS
    物化视图基于当前用户模式的在SELECT列表中的列或表达式。
    700. USER_MVIEW_REFRESH_TIMES
    数据库中当前用户拥有的所有的物化视图的刷新时间.
    701. USER_MVIEWS
    数据库中当前用户拥有的所有的物化视图。
    702. USER_NESTED_TABLES
    当前用户拥有的表中的嵌套表。
    703. USER_OBJ_AUDIT_OPTS
    用户拥有的表和视图的审计选项。
    704. USER_OBJECT_SIZE
    用户拥有的PL/SQL对象的大小。
    705. USER_OBJECT_TABLES
    用户拥有的对象表.
    706. USER_OBJECT
    用户拥有的对象。
    707. USER_OPANCILLARY
    当前用户拥有的操作的辅助信息。
    708. USER_OPARGUMENTS
    当前用户拥有的操作的论据信息。
    709. USER_OPBINDINGS
    当前用户拥有的操作的绑定。
    710. USER_OPERATOR_COMMENTS
    当前用户拥有的用户自定义的操作的所有注释。
    711. USER_OPERATORS
    当前用户拥有的所有操作。
    712. USER_OUTLINE_HINTS
    当前用户拥有的组成概要的暗示的设置。
    713. USER_OUTLINES
    当前用户拥有的所有概要。
    714. USER_PART_COL_STATISTICS
    当前用户拥有的表分区的列统计和柱状图数据.
    715. USER_PART_HISTOGRAMS
    当前用户可存取的表分区上柱状图数据。
    716. USER_PART_KEY_COLUMNS
    当前用户拥有的分区对象的分区键列。
    717. USER_PART_INDEXES
    当前用户拥有的所有分区所有的对象级分区信息。
    718. USER_PART_LOBS
    当前用户拥有的分区大型对象的表级信息。
    719. USER_PART_TABLES
    当前用户拥有的分区表的对象级分区信息。
    720. USER_PARTIAL_DROP_TABS
    当前用户模式下有部分删除表操作的所有表。
    721. USER_PASSWORD_LIMITS
    分配给用户的口令参数文件。
    722. USER_POLICIES
    当前用户拥有的所有对象的安全策略。
    723. USER_PROCEDURES
    当前用户拥有的所有的函数和过错以及它们的相关属性。
    724. USER_PROXIES
    当前用户被允许代理的连接信息。
    725. USER_PUBLISHED_COLUMNS
    描述有特权的所有存在的源表列。
    726. USER_QUEUE_SCHEDULES
    关于队列时间表的信息。
    727. USER_QUEUE_TABLES
    只描述用户模式中创建的队列表中的队列。
    728. USER_QUEUES
    用户模式中的每个队列的所有刷新组。
    729. USER_REFRESH
    当前用户拥有的所有刷新组。
    730. USER_REFRESH_CHILDREN
    列出刷新组中的所有对象。
    731. USER_REFS
    用户表的对象类型列中的REF列和REF属性。
    732. USER_REGISTERED_MVIEWS
    当前用户拥有的所有注册的物化视图.
    733. USER_REGISTERED_SNAPSHOTS
    当前用户拥有的所有注册的快照。
    734. USER_RESOURCE_LIMITS
    当前用户的资源限制。
    735. USER_RESUMABLE
    列出当前用户执行的可恢复语句。
    736. USER_ROLS_PRIVS
    列出授予用户的角色。
    737. USER_RSRC_CONSUMER_GROUP_PRIVS
    列出授予用户的所有的资源消耗组。
    738. USER_RSRC_MANAGER_SYSTEM_PRIVS
    列出所有被授予了DBMS_RESOURCE_MANAGER包的系统特权的用户。
    739. USER_SEGMENTS
    列出属于用户对象的数据库段的存储分配信息。
    740. USER_SEQUENCES
    用户序列的说明。
    741. USER_SNAPSHOT_LOGS
    用户拥有的所有快照日志。
    742. USER_SNAPSHOT_REFRESH_TIMES
    快照刷新的次数。
    743. USER_SNAPSHOTS
    用户可查看的快照。
    744. USER_SOURCE
    属于用户的所有存储对象的文本来源。
    745. USER_SORCE_TABLES
    允许你查看所有有预定特权的现有的源表。
    746. USER_SQLJ_TYPE_ATTRS
    当前用户拥有的关于SQLJ对象的所有属性.
    747. USER_SQLJ_TYPE_METHODS
    当前用户拥有的类型方法.
    748. USER_SQLJ_TYPES
    当前用户拥有的关于SQLJ对象类型信息.
    749. USER_STORED_SETTINGS
    当前用户拥有的存储的PL/SQL单元的永久参数设置。
    750. USER_SUBPART_COL_STATISTICS
    显示当前用户拥有的子分区对象的子分区的列统计和柱状图信息.
    751. USER_SUBPART_HISTOGRAMS
    显示当前用户拥有的表子分区中柱状图的实际柱状图数据.
    752. USER_SUBPART_KEY_COLUMNS
    显示当前用户拥有的子分区对象的子分区的列统计和柱状图信息。
    753. USER_SUBSCRIBED_COLUMNS
    允许发行者查看所有的预定的所有发行的列.
    754. USER_SUBSCRIBED_TABLES
    允许发行者查看所有的预定的所有发行的表。
    755. USER_SUBSCRIPTIONS
    允许发行者查看所有的预定。
    756. USER_SYSNONYMS
    当前用户拥有的私人同义词。
    7 57. USER_SYS_PRIVS
    授予用户的系统特权。
    758. USER_TAB_COL_STATISTICS
    包含USER_TAB_COLUMNS视图中的列统计和柱状图信息。
    759. USER_TAB_COLUMNS
    用户表或视图或聚集上的列的信息。
    760. USER_TAB_COMMENTS
    用户拥有表或视图上的注释。
    761. USER_TAB_HISTOGRAMS
    用户表的列上的柱状图。
    762. USER_TAB_MODIFICATIONS
    用户拥有了的所有上次统计后被修改了的表。
    763. USER_TAB_PARTITIONS
    用户拥有的每个表子分区的名称,存储属性,其所属表和分区名。
    764. USER_TAB_PRIVS
    对象上的特权。
    765. USER_TAB_PRIVS_MADE
    用户拥有对象上的全部特权。
    766. USER_TAB_PRIVS_RECD
    包含对象上的特权,用户为被授予者。
    767. USER_TAB_SUBPARTITIONS
    用户拥有的每个子分区的名称,存储属性,其所属表和分区名。
    768. USER_TABLES
    用户拥有的关系表的描述。
    769. USER_TABLESPACES
    可存取的表空间的描述。
    770. USER_TRANSFORMATIONS
    特定用户拥有的转变信息。
    771. USER_TRIGGER_COLS
    用户触发器中列的用法。
    772. USER_TRIGGERS
    用户触发器的说明。
    773. USER_TYPES
    表中用户的类型。
    774. USER_TYPE_ATTRS
    用户的类型的属性。
    775. USER_TS_QUOTAS
    用户的表空间限额。
    776. USER_METHODS
    用户的方法类型。
    777. USER_UNUSED_COL_TABS
    包含了未用列的所有表。
    778. USER_UPDATABLE_COLUMNS
    在连接视图中对用户可修改的列的描述。
    779. USER_USERS
    当前用户的信息。
    780. USER_USTATS
    用户拥有的用户定义统计。
    781. USER_VARRAYS
    用户拥有的所有数组。
    782. USER_VIEWS
    用户拥有的视图的文本。
    9I管理的数据字典ALL视图
    783. ALL_ALL_TABLES
    用户可存取的所有表。
    784. ALL_ARGUMENTS
    用户可存取的对象的所有参数。
    785. ALL_ASSOCIATIONS
    用户定义的统计信息。
    786. ALL_BASE_TABLE_MVIEWS
    用户可存取的所有物化视图信息。
    787. ALL_CATALOG
    用户可存取的全部表,同义词,视土和序列。
    788. ALL_CLUSTER_HASH_EXPRESSIONS
    用户可存取的聚集的HASH函数。
    789. ALL_CLUSTERS
    用户可存取的所有聚集。
    790. ALL_COL_COMMENTS
    用户可存取的表或视图上注释。
    791. ALL_COL_PRIVS
    列出列上的授权,用户或PUBLIC是授予者。
    792. ALL_COL_PRIVS_MADE
    列出列上的授权,用户是属主或授权者.
    793. ALL_COL_PRIVS_RECD
    列出列上的授权,用户或PUBLIC是授权者.
    794. ALL_COLL_TYPES
    用户可存取的命名的集合类型。
    795. ALL_CONS_COLUMNS
    包含在约束定义中可存取列的信息。
    796. ALL_CONSTRAINTS
    列出可存取表上的约束定义。
    797. ALL_CONTEXT
    显示活动的上下问信息。
    798. ALL_DB_LINKS
    用户可存取的数据链。
    799. ALL_DEF_AUDIT_OPTS
    包含在对象建立时所应用的缺省对象审计选项。
    800. ALL_DEPENDENCIES
    用户可存取的的对象之间的依赖关系。
    801. ALL_DIM_HIERARCHIES
    显示维的层次。
    802. ALL_DIM_JOIN_KEY
    描述两个维之间的连接。
    803. ALL_DIM_LEVEL_KEY
    描述维级的列。
    804. ALL_DIM_LEVELS
    描述维级别。
    805. ALL_DIMENSIONS
    包含维对象的信息。
    806. ALL_DIRECTORIES
    用户可存取的所有目录描述。
    807. ALL_ERRORS
    用户可存取的所有对象上的当前错误。
    808. ALL_EXTERNAL_TABLES
    用户可存取的外部表。
    809. ALL_HISTOGRAMS
    等于ALL_TAB_HISTOGRAMS别名。
    810. ALL_IND_COLUMNS
    用户可存取的索引列。
    811. ALL_IND_EXPRESSIONS
    用户可存取的表上的功能索引表达式。
    812. ALL_IND_PARTITIONS
    为索引分区,描述分区级的分区信息。
    813. ALL_IND_SUBPARTITONS
    为索引子分区,描述子分区级的分区信息。
    814. ALL_INDEXES
    用户可存取的表上的索引描述。
    815. ALL_INDEXTYPE_COMMNETS
    用户可存取的用户定义的索引类型。
    816. ALL_INDEXTYPE_OPERATORS
    显示索引类型支持的所有操作符。
    817. ALL_INDEXTYPES
    显示所有的索引类型。
    818. ALL_INTERNAL_TRIGGERS
    用户可存取的内部触发器。
    819. ALL_JOBS
    数据库中的所有作业。
    820. ALL_JOIN_IND_COLUMNS
    描述你存取的位映像连接索引的连接条件。
    821. ALL_LIBRARIES
    用户可存取的所有库。
    822. ALL_LOB_PARTITIONS
    用户可存取的表中包含LOB。
    823. ALL_LOB_SUBPARTITIONS
    显示LOB数据子分区的分区级别。
    824. ALL_LOBS
    用户可存取的表中包含LOB。
    825. ALL_LOG_GROUP_COLUMNS
    用户可存取的定义在日志组中的列。
    826. ALL_LOG_GROUPS
    用户可存取的表上的日志组定义。
    827. ALL_METHOD_PARAMS
    用户可存取的类型的方法参数。
    828. ALL_METHOD_RESULTS
    用户可存取的类型的方法结果。
    829. ALL_MVIEW_AGGREGATES
    合计类的物化视图的SELECT列表中出现的分组函数。
    830. ALL_MVIEW_ANALYSIS
    描述可能支持查询重写和有可用于应用程序分析的额外信息的物化视图,但不包含远程和非静态的。
    831. ALL_MVIEW_DETAIL_RELATIONS
    描述物化视图FROM列表中的,或间接被FROM列表中视图引用的命名细节关系。
    832. ALL_MVIEW_JOINS
    描述物化视图WHERE子句中两列间的连接。
    833. ALL_MVIEW_KEYS
    描述物化视图FROM列表中的,或间接被FROM列表中视图引用的命名细节关系.
    834. ALL_MVIEW_REFRESH_TIMES
    用户可存取的物化视图的刷新时间。
    835. ALL_MVIEWS
    用户可存取的所有的物化视图。
    836. ALL_NESTED_TABLES
    用户可存取的表中的嵌套表。
    837. ALL_OBJECT_TABLES
    用户可存取的对象表的描述。
    838. ALL_OPANCILLARY
    显示操作符的辅助信息。
    839. ALL_OPARGUMENTS
    显示操作符捆绑的变元信息。
    840. ALL_OPBINDINGS
    显示操作符捆绑。
    841. ALL_OPERATOR_COMMENTS
    用户可存取的用户定义操作的所有注释。
    842. ALL_OPERATORS
    用户可存取的操作符。
    843. ALL_OUTLINE_HINTS
    用户可存取的概要的提示。
    844. ALL_OUTLINES
    用户可存取的所有概要。
    845. ALL_PART_COL_STATISTICS
    用户可存取的表分区的列统计和柱状图信息。
    846. ALL_PART_HISTOGRAMS
    用户可存取的表分区的柱状数据.
    847. ALL_PART_INDEXES
    当前用户可存取的所有分区索引的对象级分区信息。
    848. ALL_PART_KEY_COLUMNS
    当前用户可存取的分区对象的分区键值。
    849. ALL_PART_LOBS
    当前用户可存取的分区LOB的表级信息。
    850. ALL_PART_TABLES
    当前用户可存取的分区表的对象级分区信息。
    851. ALL_PARTIAL_DROP_TABS
    当前用户可存取的有局部删除表的表。
    852. ALL_POLICIES
    当前用户可存取的所有表和视图上的所有策略。
    853. ALL_PROCEDURES
    列出所有的函数和过程及相关属性。
    854. ALL_PUBLISHED_COLUMNS
    描述用户有特权的存在的源表列。
    855. ALL_QUEUE_TABLES
    当前用户可存取的队列表的所有队列。
    856. ALL_QUEUES
    显示用户有入队或出队特权的队列信息。
    857. ALL_REFRESH
    当前用户可存取的所有刷新组。
    858. ALL_REFRESH_CHILDREN
    列出刷新组中的所有对象。
    859. ALL_REFRESH_DEPENDENCIES
    显示当前模式中所有概要或快照的依赖细节或容器表名称。
    860. ALL_REFS
    当前用户可存取的对象类型列中的REF列和REF属性。
    861. ALL_REGISTERED_MVIEWS
    当前用户可存取的所有物化视图。
    862. ALL_REGISTERED_SNAPSHOTS
    列出所有注册的快照。
    863. ALL_SEQUENCES
    当前用户可存取的所有序列。
    864. ALL_SNAPSHOT_LOGS
    当前用户可存取的物化视图日志。
    865. ALL_SNAPSHOT_REFRESH_TIMES
    快照刷新次数。
    866. ALL_SOURCE
    当前用户可存取的所有存储对象的文本源。
    867. ALL_SOURCE_TABLES
    允许发行者查看所有存在的源表。
    868. ALL_SQLJ_TYPE_ATTRS
    当前用户可存取的关于SQLJ对象的所有属性。
    869. ALL_SQLJ_TYPE_METHODS
    当前用户可存取的类型方法。
    870. ALL_SQLJ_TYPES
    当前用户可存取的关于SQLJ对象类型信息。
    871. ALL_STORED_SETTINGS
    当前用户有其执行特权的存储PL/SQL单元的永久参数设置。
    872. ALL_SUBPART_COL_STATISTICS
    包含USER_TAB_COLUMNS的列统计和柱状信息。
    873. ALL_SUBPART_HISTOGRAMS
    显示表子分区中柱状图的实际柱状图信息。
    874. ALL_SUBPART_KEY_COLUMNS
    显示使用复合范围/HASH方法分区的表的子分区键值。
    875. ALL_SUBSCRIBED_COLUMNS
    允许发行者查看他们预定的所有发行的列。
    876. ALL_SUBSCRIBED_TABLES
    允许发行者查看他们预定的所有发行的表.
    877. ALL_SUBSCRIPTIONS
    允许发行者查看他们所有的预定.
    878. ALL_SUMDELIA
    用户可存取的直接路径装载条目。
    879. ALL_SYNONYMS
    用户可存取的所有同义词。
    880. ALL_TAB_COL_STATISTICS
    包含ALL_TAB_COLUMNS的列统计和柱状信息。
    881. ALL_TAB_COLUMNS
    用户可存取的所有表,视图和聚集的列。
    882. ALL_TAB_COMMENTS
    用户可存取的表和视图中的注释。
    883. ALL_TAB_HISTOGRAMS
    用户可存取的表和视图中的柱状信息.
    884. ALL_TAB_MODIFICATIONS
    用户可存取的上次统计后被修改了的表。
    885. ALL_TAB_PRIVS
    列出对象上的授权,用户或PUBLIC用户是被授予者。
    886. ALL_TAB_PRIVS_MADE
    列出用户的授权和用户对象上的授权。
    887. ALL_TAB_PRIVS_RECD
    列出对象上的授权,用户和PUBLIC是被授予者。
    888. ALL_TAB_SUBPARTITIONS
    用户可存取的每个表子分区的名称,存储属性,其所属的表和分区名。
    889. ALL_TABLES
    用户可存取的关系表的描述。
    890. ALL_TRIGGERS
    用户拥有的触发器。
    891. ALL_TRIGGER_COLS
    用户拥有的触发器的列及用法.
    892. ALL_TYPE_ATTRS
    用户可存取的类型的属性。
    893. ALL_TYPE_METHODS
    用户可存取的类型的方法。
    894. ALL_TYPES
    用户可存取的类型。
    895. ALL_UNUSED_COL_TABS
    包含未使用列的所有表。
    896. ALL_UPDATABLE_COLUMNS
    包含莫连接视图中可以修改的所有列的描述。
    897. ALL_USERS
    数据库中所有用户的信息。
    898. ALL_USTATS
    用户可存取的用户定义统计。
    899. ALL_VARRAYS
    用户可存取的所有数组。
    900. ALL_VIEWS
    用户可存取的视图的文本。
    ORACLE9I的数据字典
    901. CHAINED_ROWS
    存储带LIST CHAINED ROWS子句的ANALYZE命令的输出。
    902. CHAINGE_SOURCES
    允许发行者查看现有的变化资源。
    903. CHANGE_SETS
    允许发行者查看现有的变化设置。
    904. CHANGE_TABLES
    允许发行者查看现有的变化表。
    905. CODE_PIECES
    ORACLE存取这个视图用于创建关于对象大小的视图。
    906. CODE_SIZE
    ORACLE存取这个视图用于创建关于对象大小的视图.
    907. COLS
    USER_TAB_COLUMNS同义词。
    908. COLUMN_PRIVILEGES
    列出列上的授权状况。
    909. DATABASE_PROPERTIES
    列出当前缺省的临时表空间的名称。
    910. DBMS_ALERT_INFO
    描述注册了的警告。
    911. DBMS_LOCK_ALLOCATED
    描述用户分配了的锁。
    912. DEPTREE
    有UTLDTREE.SQL创建,包好对象依赖树的信息。
    913. DICT_COLUMNS
    包含数据字典表和视图列的描述。
    914. DICTIONARY
    包含数据字典表和视图列的描述.
    915. ERROR_SIZE
    ORACLE存取这个视图用于创建关于对象大小的视图。
    916. EXCEPTIONS
    包含完整约束的违反信息。
    917. FILE_LOCKS
    实时应用集群视图,显示到GC_FILES_TO_LOCKS中指定数据文件的PCM锁映象。
    918. FILE_PING
    实时应用集群视图,显示每个数据文件连接的块数。
    919. GLOBAL_NAME
    当前数据库的全局名。
    920. HS_ALL_CAPS
    包含关于非ORACLE(FDS)数据存储有关的所有兼容性信息。
    921. HS_ALL_DD
    包含关于非ORACLE(FDS)数据存储的数据字典信息。
    922. HS_ALL_INITS
    包含关于非ORACLE(FDS)数据存储的初始化参数信息。
    923. HS_BASE_CAPS
    包含关于非ORACLE(FDS)数据存储的基本性能信息。
    924. HS_BASE_DD
    显示基本数据字典翻译表的信息。
    925. HS_CLASS_CAPS
    包含属于非ORACLE(FDS)数据存储的类指定性能信息。
    926. HS_CLASS_INIT
    包含关于非ORACLE(FDS)类指定初始化参数信息。
    927. HS_EXTERNAL_OBJECT_PRIVILEGES
    包含授予用户的对象上的特权的信息。
    928. HS_EXTERNAL_OBJECTS
    包含ORACLE服务器可存取的所有分布式外部对象的信息。
    929. HS_FDS_CLASS
    包含合法的非ORACLE(FDS)类的信息。
    930. HS_FDS_INST
    包含合法的非ORACLE(FDS)实例的信息.
    931. HS_INST_CAPS
    包含实例指定的性能信息。
    932. HS_INST_DD
    显示非ORACLE(FDS)实例特定的数据字典翻译的信息。
    933. HS_INST_INIT
    显示非ORACLE(FDS)实例指定的初始化参数的信息。
    934. IDEPTREE
    列出依赖树。
    935. INDEX_HISTOGRAM
    包含THE ANALYZE INDEX ... VALIDATE STRUCTURE命令的信息。
    936. INDEX_STATS
    包含ANALYZE INDEX ... VALIDATE STRUCTURE命令的信息.
    937. NLS_DATABASE_PRAMETERS
    列出数据库中永久的NLS参数信息。
    938. NLS_INSTANCE_PARAMETERS
    列出实例中永久的NLS参数信息。
    939. NLS_SESSION_PARAMETERS
    列出会话中永久的NLS参数信息.
    940. PARSED_PIECES
    ORACLE存取这个视图用于创建关于对象大小的视图。
    941. PARSED_SIZE
    ORACLE存取这个视图用于创建关于对象大小的视图。
    942. PLAN_TABLE
    EXPLAN PLAN语句的结果表。
    943. PLUGGABLE_SET_CHECK
    包含可插入的设置检查。
    944. PRODUCT_COMPONENT_VERSION
    包含组成产品的版本和状态信息。
    945. PROXY_USERS
    描述那些能假设其它用户身份的用户。
    946. PSTUBTBL
    包含PSTUB程序生成的根上的信息,以便ORACLE FORM3.0客户可以调用ORACLE数据库中的存储过程。
    947. PUBLIC_DEPTENDENCY
    列出对象的依赖。
    948. PUBUCSYN
    包含公共同义词上的信息。
    949. QUEUE_PRIVILEGES
    显示那些特权授予给了会话的高级查询对象。
    950. RESOURCE_COST
    列出每个资源的开销。
    951. RESOURCE_MAP
    包含资源的描述。
    952. ROLE_ROLE_PRIVS
    包含授予其它角色的角色信息。
    953. ROLE_SYS_PRIVS
    包含授予角色的系统特权的信息。
    954. ROLE_TAB_PRIVS
    包含授予角色的表特权的信息.
    955. SESSION_CONTEXT
    列出当前会话的属性和值设置。
    956. SESSION_PRIVS
    列出当前对用户可用的特权。
    957. SESSION_ROLES
    列出当前对用户启用的角色.
    958. SOURCE_SIZE
    ORACLE存取这个视图用于创建关于对象大小的视图。
    959. STMT_AUDIT_OPTION_MAP
    包含审计选项类型代码的信息。
    960. SYSCATALOG
    该视图用于与ORACLE5版本保持兼容,建议不使用之。
    961. SYSFILES
    该视图用于与ORACLE5版本保持兼容,建议不使用之。
    962. SYSSEGOBJ
    该视图用于与ORACLE5版本保持兼容,建议不使用之。
    963. SYSTEM_PRIVILEGE_MAP
    包含系统特权代码的信息。
    964. SYS_OBJECTS
    将对象ID映射到对象类型和段数据块地址。
    965. TABLE_PRIVILEGE_MAP
    包含关于存取特权代码的信息。
    966. TABLE_PRIVILEGES
    包含对象上的特权信息。
    967. TABQUOTAS
    该视图用于与ORACLE5版本保持兼容,建议不使用之。
    968. TRUSTED_SERVERS
    显示服务器是信任的还是不信任的。
    969. TS_PITR_CHECK
    提供可能禁止表空间及时点恢复继续的依赖或约束信息。
    970. TS_PITR_OBJECTS_TO_BE_DROPPED
    列出作为执行表空间及时点恢复的结果而丢失的所有对象。
    971. UNI_PLUGGABLE_SET_CHECK
    保护可插的检查信息。

Open Toolbar