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个字节