1、SQL 经常使用到的对象包括:表、视图、同义词、索引和视图
表(table)以行和列形式存储数据。
视图(view)是存储的SELECT语句,可以像表一样引用它。
同义词(synonym)是表(或视图)的别名。
索引(index)提供一个指向表中某行的确切位置的指针,可以减少对表中行的访问次数。
序列(sequence)是一种生成唯一数字的结构。
2、模式对象命名规则
(1)不能超过30个字符。字符可以是字母、数字、下划线、美元符和井字符号。(database link 可以为128个字符长)
(2)必须以A~Z的字母开头,且小写字母将自动转换成大写字母。
(3)保留字不能作为对象的名称。
(4)将名称括在""(双引号)内,所有以上规则(除了长度外)都可以被打破。
SQL> show user
USER is"PEENBOO"
SQL> create tablelower(c1 date);
Table created.
SQL> create table"lower" (col1 varchar2(4));
Table created.
SQL> selecttable_name from user_tables where lower(table_name) = ‘lower‘;
TABLE_NAME
------------------------------
lower
LOWER
3、对象名称空间
共享相同名称空间的对象
表 |
视图 |
序列 |
私有同义词 |
独立的过程 |
独立的存储过程 |
程序包 |
物化视图 |
用户定义类型 |
拥有自己名称空间的对象类型
索引 |
约束 |
集群 |
数据库触发器 |
私有数据库链接 |
维度 |
注:在同一个模式中,表、同义词和视图不能同名。
DDL_P1:确定会话可以访问那些对象
SQL> set pagesize50
SQL> set linesize200
SQL> selectobject_type,count(object_type) from dba_objects
2 group by object_type order by object_type;
OBJECT_TYPE COUNT(OBJECT_TYPE)
-------------------------------------
CLUSTER 10
CONSUMER GROUP 25
CONTEXT 7
DESTINATION 2
DIRECTORY 4
EDITION 1
EVALUATIONCONTEXT 12
FUNCTION 309
INDEX 4895
INDEX PARTITION 118
INDEXTYPE 9
JAVA CLASS 28968
JAVA DATA 309
JAVA RESOURCE 940
JAVA SOURCE 2
JOB 14
JOB CLASS 14
LIBRARY 193
LOB 1012
LOB PARTITION 1
MATERIALIZEDVIEW 1
OPERATOR 55
PACKAGE 1333
PACKAGE BODY 1272
PROCEDURE 171
PROGRAM 19
QUEUE 35
RESOURCE PLAN 10
RULE 1
RULE SET 19
SCHEDULE 3
SCHEDULER GROUP 4
SEQUENCE 223
SYNONYM 33977
TABLE 2885
TABLE PARTITION 97
TABLESUBPARTITION 32
TRIGGER 626
TYPE 2909
TYPE BODY 243
UNDEFINED 11
VIEW 5206
WINDOW 9
XML SCHEMA 53
44 rows selected.
SQL> selectobject_type,count(*) from user_objects group by object_type;
no rows selected
SQL> selectobject_type, count(*) from all_objects group by object_type;
OBJECT_TYPE COUNT(*)
-----------------------------
EDITION 1
CONSUMER GROUP 2
SEQUENCE 13
SCHEDULE 3
PROCEDURE 38
OPERATOR 55
DESTINATION 2
WINDOW 9
SCHEDULER GROUP 4
PACKAGE 401
PROGRAM 11
JAVA RESOURCE 938
XML SCHEMA 53
JOB CLASS 2
TABLE 122
SYNONYM 33888
VIEW 1936
FUNCTION 211
JAVA CLASS 28851
INDEXTYPE 9
TYPE 1543
EVALUATIONCONTEXT 1
22 rows selected.
SQL> selectdistinct owner from all_objects;
OWNER
------------------------------
MDSYS
PUBLIC
CTXSYS
OLAPSYS
SYSTEM
EXFSYS
APEX_030200
ORDSYS
ORDPLUGINS
DBSNMP
XDB
ORDDATA
SYS
WMSYS
14 rows selected.
4、数据类型
4.1适用于字母数字数据
数据类型 |
含义 |
大小 |
VARCHAR2 |
可变长度字符数据 |
1B到4KB |
NVARCHAR2 |
可变长度字符数据(保存国家语言字符集中(Unicode字符集之一)) |
1B到4KB |
CHAR |
固定长度字符数据 |
1B到2KB |
4.2 适用数字数据
数据类型 |
含义 |
大小 |
NUMBER |
可以指定精度和小数位 |
精度1~38,小数-84~127 |
FLOAT |
浮点数 |
精度126位二进制,38位十进制 |
INTEGER |
整数型 |
相对于NUMBER 小数位为零 |
4.3 日期和时间类型
数据类型 |
含义 |
大小(备注) |
DATE |
包含世纪年月日时分秒 |
长度为0 or 7个字节 |
TIMESTAMP |
与date类似,但是对秒而言,其精度为9位,默认为6位 |
长度为0 or 11个字节 |
TIMESTAMP WITH TIMEZONE |
与TIMESTAMP一样,但指定时区 |
长度能达到13个字节 |
TIMESTAMP WITH LOCAL TIMEZONE |
与TIMESTAMP一样,保存被规范为数据库时区 |
|
INTERVAL YEAR TO MONTH |
记录两个TIMESTAMP或者DATE间的时间间隔 |
以年和月为单位 |
INTERVAL DAY TO SECOND |
记录两个TIMESTAMP或者DATE间的时间间隔 |
以天和秒为单位 |
4.4 大对象数据类型
数据类型 |
含义 |
大小 |
CLOB |
大小没有限制 |
4GB*block数 |
NCLOB |
与CLOB一样,保存国家字符集中(Unicode字符集之一) |
4GB*block数 |
BFILE |
定位器,指向DB所在OS文件 |
4GB |
LONG |
DB中字符集的字符数据 |
2GB |
LONG RAW |
和LONG一样(oracle Net不会转二进制,都应该转BLOB) |
2GB |
BLOB |
和CLOB一样,但Oracle Net不能执行字符集转换 |
4GB*block数 |
4.5 RAW和ROWINSs数据类型
数据类型 |
含义 |
大小(备注) |
RAW |
可变长度二进制数据 |
1B到4KB |
ROWID |
64为基数编码值,它是一个指向表中行的位置指针 |
里面是物理地址 |
注:1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节