KDB对象
2018-12-07 09:49:33 0 举报
AI智能生成
Inspur K-DB数据库对象
作者其他创作
大纲/内容
视图(View)
序列(Sequence)
表(Table)<br>普通表/堆表、<br>分区表/外部表/临时表<br>
表构成
行(Row)<br>存储其他类型的数据<br>
列(Column)<br>定义数据的特征<br>
列类型
字符型
CHAR (n)<br>固定长度字符数据<br>最大可定义2000byte
VARCHAR(n)<br>可变长度字符数据<br>最长可声明 65532byte
NCHAR (n)<br>UNICODE 字符串<br>固定字符数据<br>最大可定义 2000byte
NVARCHAR (n)<br>UNICODE 字符串<br>可变长度字符数据<br>最长可声明 65532byte
RAW<br>保存任意二进制数据的类型<br>最大可定义2000byte
LONG<br>存储普通字符串<br><b>同一表内只可存在一列该类型数据</b><br>将VARCHAR类型最大长度增加至2G<br>
LONG RAW<br>存储二进制数据<br><b>不可建立索引</b><br><b>同一表内只可存在一列该类型数据</b><br>将RAW类型最大长度增加至2G<br>
数值型
NUMBER (p,s)<br>可变长度数字数据<br>P 定义精度<br>s 定义小数位数
日期型
DATE<br>定义日期和时间
TIME<br>定义时间(时分秒)<br>小数点后面最长至9位
TIMESTAMP<br>定义日期和时间(时分秒)<br>小数点后面最长至9位
大对象
CLOB<br>普通字符串<br>最大 4G <br>
BLOB<br>二进制保存<br>最大 4G<br>LONG/LONG RAW的扩展数据类型<br>
XMLTYPE<br>W3C国际标准格式<br>保存 XML 数据<br>内部保存为 CLOB 格式
ANYDATA
BFILE<br>只读的<br>二进制文件<br>不参与事务/不支持RollBack/Commit<br>存储在数据库外的操作系统文件<br>
表管理<br>DBA_TABLES UPDB 内所有表的信息<br>USER_TABLES 当前用户下的表的信息<br>ALL_TABLES 用户可访问的表的信息<br>DBA_TBL_COLUMNS DB 内所有表、视图中的字段信息<br>USER_TBL_COLUMNS 当前用户下表、视图的字段信息<br>ALL_TBL_COLUMNS 用户可访问的表、视图中的字段信息<br>
基本表
创建(Create)
<b>CREATE TABLE</b> PRODUCT (<br> PROD_ID NUMBER(6),<br> PROD_NAME VARCHAR2(50),<br> PROD_COST VARCHAR2(30),<br> PROD_PID NUMBER(6),<br> PROD_DATE DATE<br> )<br><b> TABLESPACE</b> MY_SPACE<br><b> PCTFREE</b> 5<br><b> INITRANS</b> 3;<br><br>- TABLESPACE : 创建表时,指定表数据保存的地方<br>- PCTFREE : 每个数据块中的空间比重。为了更新行而预约的空间比重 (%)<br>- INITRANS :可以并发访问数据块的事务初始值<br>
修改(Update)
修改定义<br><b>ALTER TABLE</b> PRODUCT <b>MODIFY</b> (ord_amount default 1 not null);<br>
修改列名<br><b>ALTER TABLE</b> PRODUCT <b>RENAME</b> <b>COLUMN</b> ord_amount <b>TO</b> order_amt;<br>
修改数据块参数<br><b>ALTER TABLE</b> PRODUCT <b>PCTFREE</b> 10;<br>
删除(Delete)
删除表数据<br><b>DROP TABLE</b> PRODUCT;
删除表数据及相关约束<br><b>DROP TABLE</b> PRODUCT <b>CASCADE</b> CONSTRATIONS;
临时表<br>(Temporary Tables)<br>存储于临时表空间<br>只在 Transaction or Session 期间维护数据;<br>Data 只在 Session 上显示;<br>执行 DML 时,不生成 Redo;<br>执行 DML 时,不生成 ROLLBACK; <br>dba_tables.(table_name, temporary, duration)<br>
<b>CREATE GLOBAL TEMPORARY TABLE</b> emp_temp<br> (<br>eno NUMBER, <br>ename VARCHAR2(20), <br>sal NUMBER)<br><b>ON COMMIT DELETE ROWS</b>;<br>事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE)<br>临时表的表结构和元数据需手动删除<br>
<b>CREATE GLOBAL TEMPORARY TABLE</b> emp_temp<br> (<br>eno NUMBER, <br>ename VARCHAR2(20), <br>sal NUMBER)<br><b>ON COMMIT RESERVE ROWS</b>;<br>会话结束(Session Close)后,临时表的数据将被丢弃(TRUNCATE+DROP)<br>临时表的表结构和元数据需手动删除<br>
索引组织表<br>(Index-Organized Tables IOT)
分区表<br>(Partition Table)<br>各分区表储存在不同的段中,可以分别管理<br>Backup and Restore 可依照分区执行<br>缩小数据的访问范围,提高性能<br>通过分割物理存储来管理,降低数据破坏可能性<br>通过独立管理各个物理区域,方便对于大容量数据的管理<br>
HASH分区<br><b>CREATE TABLE</b> P_LINEITEM_HASH<br>(<br>L_ORDERKEY INTEGER NOT NULL, <br>L_PARTKEY INTEGER NOT NULL, <br>L_SUPPKEY INTEGER NOT NULL, <br>L_SHIPMODE CHAR(10) NOT NULL,<br>L_COMMENT VARCHAR(44) NOT NULL<br>)NOLOGGING <br><b>PARTITION BY HASH</b>(L_ORDERKEY) <br>(<br><b> PARTITION</b> L_ORDERKEY_1,<br><b> PARTITION</b> L_ORDERKEY_2,<br><b> PARTITION</b> L_ORDERKEY_3<br>); <br>
LIST分区<br><b>CREATE TABLE</b> P_LINEITEM_HASH<br>(<br>L_ORDERKEY INTEGER NOT NULL, <br>L_PARTKEY INTEGER NOT NULL, <br>L_SUPPKEY INTEGER NOT NULL, <br>L_SHIPMODE CHAR(10) NOT NULL,<br>L_COMMENT VARCHAR(44) NOT NULL<br>)NOLOGGING <br><b>PARTITION BY LIST</b>(L_SHIPMODE) <br>(<br><b>PARTITION</b> L_SHIPMODE_AIR <b>VALUES</b>('AIR') ,<br><b>PARTITION </b>L_SHIPMODE_FOB <b>VALUES</b>('FOB') ,<br><b>PARTITION</b> L_SHIPMODE_MAIL <b>VALUES</b>('MAIL')<br>); <br>
RANG分区<br><b>CREATE TABLE</b> ORDERED <br>(<br>ORD_DATE VARCHAR(8),<br>ORD_ID CHAR(4),<br>PROD_ID NUMBER(6),<br>CUST_ID CHAR(5),<br>EMP_ID CHAR(4),<br>ORD_AMOUNT NUMBER(4)<br> )<br><b> PARTITION BY RANGE</b> (ORD_DATE)<br> (<br><b> PARTITION</b> PART1 <b>VALUES</b> LESS THAN ('20090501') <b>TABLESPACE</b> MY_SPACE1,<br><b> PARTITION</b> PART2 <b>VALUES</b> LESS THAN ('20090701') <b>TABLESPACE</b> MY_SPACE2,<br><b> PARTITION</b> PART3 <b>VALUES</b> LESS THAN ('20091001') <b>TABLESPACE</b> MY_SPACE3<br>);<br>
追加分区<br><b>ALTER TABLE</b> ORDERED <br><b> ADD PARTITION</b> PART5 <b>VALUES </b>LESS THAN ('20100401'); <br>
删除分区<br><b>ALTER TABLE</b> ORDERED <br> <b>DROP</b> <b>PARTITION</b> PART1; <br>
间隔分区(RANG分区自动化)<br><b>create table</b> t1<br>( <br>a number, <br>b varchar2(10)<br>) <br><b>partition by range</b> (a) <br><b>interval</b>(1)<br>(<b>partition</b> p1 <b>values</b> less than(1) ) ;<br>
复合分区(<b>数据量10G以上</b>)<br> <b>CREATE TABLE</b> P_LINEITEM_COMPOSITE_RNG_HASH (<br> L_ORDERKEY INTEGER NOT NULL,<br> L_RETURNFLAG CHAR(1) NOT NULL,<br> L_LINESTATUS CHAR(1) NOT NULL,<br> L_SHIPDATE DATE NOT NULL,<br> L_COMMITDATE DATE NOT NULL,<br> L_RECEIPTDATE DATE NOT NULL,<br> L_SHIPINSTRUCT CHAR(25) NOT NULL,<br> L_SHIPMODE CHAR(10) NOT NULL,<br> L_COMMENT VARCHAR(44) NOT NULL<br>)<br><b>PARTITION BY RANGE</b>(L_SHIPDATE) <br><b>SUBPARTITION BY HASH</b>(L_ORDERKEY)<br> <b>SUBPARTITION</b> TEMPLATE<br> (<br> <b>SUBPARTITION</b> SUB_RH_1,<br> <b>SUBPARTITION</b> SUB_RH_2,<br> <b>SUBPARTITION</b> SUB_RH_3<br> )<br>(<br><b>PARTITION</b> RH_YEAR_1992 <b>VALUES</b> LESS THAN(TO_DATE('1993-01-01', 'YYYY-MM-DD')),<br><b> PARTITION</b> RH_YEAR_1993 <b>VALUES</b> LESS THAN(TO_DATE('1994-01-01', 'YYYY-MM-DD')),<br><b> PARTITION</b> RH_YEAR_1994 <b>VALUES</b> LESS THAN(TO_DATE('1995-01-01', 'YYYY-MM-DD')),<br><b> PARTITION</b> RH_YEAR_1995 <b>VALUES</b> LESS THAN(TO_DATE('1996-01-01', 'YYYY-MM-DD')),<br><b> PARTITION</b> RH_YEAR_1996 <b>VALUES</b> LESS THAN(TO_DATE('1997-01-01', 'YYYY-MM-DD'))<br>); <br>
外部表<br>表数据是在系统文件里,只能读不能改<br>是对现有的SQL*Loader功能的补充<br>访问外部源中的数据<br>导入导出不支持加密列<br>不能描述存储在数据库中的任何数据<br>不能将数据加载到long列中<br>列不能指定为not null<br>不能执行DML操作<br>不能创建索引<br>
<b>CREATE DIRECTORY</b> ext_tab_dir <b>AS</b> '/home/kdb/kddata';<br><b>CREATE TABLE</b> external_tab<br> (<br> id varchar2(4 char),<br> name varchar2(12 char),<br> birthday VARCHAR(20)<br> )<br><b> ORGANIZATION EXTERNAL</b><br> ( <br><b> DEFAULT DIRECTORY</b> ext_dat_dir<br><b> ACCESS PARAMETERS<br></b> (<br><b> LOAD DATA INTO TABLE</b> EXTERNAL_TAB<br><b> FIELDS TERMINATED BY </b>','<br><b> LINES TERMINATED BY</b> '\n'<br> (id,name, birthday)<br> )<br><b> LOCATION</b>('1.dat')<br> ); <br><br>$ more 1.dat <br><br>1,wqq,622<br>2,wy,119<br><br>select * from external_tab;<br><br>ID NAME BIRTHDAY <br>-------- ------------------------ --------------------<br>1 wqq 622<br>2 wy 119 <br>
索引(Index)
同义词(Synonym)
0 条评论
下一页