【网学网提醒】:网学会员为您提供我的orcale数据库SQL语法知识点集锦参考,解决您在我的orcale数据库SQL语法知识点集锦学习中工作中的难题,参考学习。
我的orcale数据库SQL语法知识点集锦
一、SQL:SQL:1、创建表,且创建主键:创建表,且创建主键:
createtableprice_group(group_idnotnull,group_namenotnull);varchar2(50)number(9)
altertableprice_groupaddconstraintpk_price_groupprimarykey
(group_id,group_name);
2、增加表字段:增加表字段:altertabelSERV_ASKaddcust_idnumber(6);3、更改表名:renametpm_prodservs_rela;4、修改字段数据类型:altertabeltos_prodservs_relato
tpm_rela_type_instancemodifyrela_entitynumber(9);字段重名:字段重名:ALTERTABLE表名RENAMECOLUMN原字段名TO新字段名;新字段名;
ALTERTABLETCM_BANK_BRANCHRENAMECOLUMNADDRESS_IDTO
ADDRESS;
5、删除表:删除表:droptableTPM_TERRITORY;6、删除列:删除列:altertablepartydropcolumnexp_date;altertablepartydrop(exp_date);7、创建SEQUENCE:
createsequenceSEQ_CATALOG_ITEM_IDincrementby1startwith1cache12order;名字,(其中SEQ_CATALOG_ITEM_ID为SEQUENCE名字,不需要写表SELECTSEQ_TBM_BILL_SEQ.NEXTVALFROMDUALDROPSEQUENCESEQ_CATALOG_ITEM_ID;createsequenceSEQ_TBM_BILL_SEQincrementby1startorder;with13992cache12order;CREATESEQUENCESEQ_ARCHIVES_CODEINCREMENTBY11(CYCLE)STARTWITH1(MAXVALUE99999999CYCLE)CACHE8ORDER;8、去掉外键SQL:ALTERTABLETBM_SERV_RELA_ASKDROPCONSTRAINTFK_TBM_SERV_REFERENCE_SERV_ASK;9、ORACLE:对于时间类型函数的查询条件需要进行转换:ORACLE:对于时间类型函数的查询条件需要进行转换:对于时间类型函数的查询条件需要进行转换日期型:TO_DATE('2006-3','YYYY-MM日期型:TO_DATE('2006-4-3','YYYY-MM-DD'),,'YYYYTO_DATE('200611:01:46','YYYY-MM时间型:TO_DATE('2006-1-2611:01:46','YYYY-MM-DDHH:MI:SS')10、10、11、11、数据库看表结构语法:表名;ORACLE数据库看表结构语法:DESC表名;数据库清除表数据命令:ORACLE数据库清除表数据命令:truncate
+表名命令,table+表名,该命令比较于delete命令,有速度快而不创建日志的优点。创建日志的优点。12、12、ALTERSQL:字段设置默认值SQL:TABLETPM_SEL_NUM_FEENUMBER(12,5)DEFAULT
MODIFY(SEL_NUM_MEMORY_FEEMODIFY(SEL_NUM_MEMORY_FEE
0,SEL_NUM_FEENUMBER(12,5)DEFAULT0);13、13、创建索引SQL:CREATEINDEXPROD_BUNDLE_INST_FIR_IDXON
PRODUCT_BUNDLE_INSTANCE(PRODUCT_BUNDLE_INSTANCE_IDASC);14、SQL:14、创建主键SQL:ALTERTABLEPRODUCT_BUNDLE_DETAIL_INSTANCEADDCONSTRAINTCONSTRAINTPK_PRODUCT_BUNDLE_DETAIL_INSTAPRIMARY
KEY(BUNDLE_RELATION_GUID);15、SQL:15、创建外键SQL:ALTERTABLETBM_EACHOTHER_MEET_INSTANCEADD
CONSTRAINTFK_TBM_EACH_REFERENCE_SERVFOREIGNKEY(SERV_GUID)REFERENCESSERV(SERV_GUID);
16
、
删
除
索
引
:
DROP
INDEX
SERVICE_OFFER_PRODACTIDEST_IDX;对于索引SERVICE_OFFER_PRO
DACTIDEST_IDX;对于索引、主外键一般PRODACTIDEST_IDX;对于索引、都不怎么修改,特别是加字段之类的,要么删除重建。都不怎么修改,特别是加字段之类的,要么删除重建。17、字段改成允许为空:17、字段改成允许为空:ALTERTABLEPRODUCT_OFFERMODIFYABSTRACT_ID
NUMBER(9)NULL;改成不能为空:改成不能为空:ALTERTABLEPRODUCT_OFFERMODIFYABSTRACT_ID
NUMBER(9)NOTNULL;--不能为空要求该字段所有为空的记--不能为空要求该字段所有为空的记录均需置一个值。录均需置一个值。18、18、
ANDA.CREATE_DATE
>=
to_date('2006-06to_date('2006-06-05o_date('2006
00:00','YYYY-MM00:00','YYYY-MM-DDHH24:MI:SS')ANDto_date('2006-06A.CREATE_DATE<=to_date('2006-06-0523:59','YYYY-MM'YYYY-MM-DDHH24:MI:SS')to_date('2006-06或者:ANDA.CREATE_DATE>=to_date('2006-06-01','YYYY-MM'YYYY-MM-DD')ANDA.CREATE_DATE<=to_date('2006-06to_date('2006-06-07',
'YYYY-MM-DD');'YYYY-MM-DD');
19、19、把select某个表的字段出来放在一个临时表的SQL::createtabletem_tableasselectcol1,col2...fromyour_table;20、oraclePL/SQL取系统当前时间SQL:、:selectsysdatefromdual;--日期;--日期selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss')fromdual;--时间--时间21、当表数据量达到90多万以上,PL/SLQ不能一次性拷贝、当表数据量达到多万以上多万以上,或者导出所有信息时,可以用以下SQL分段取出信息导出。分段取出信息导出。或者导出所有信息时,select*from(selectrownumaa,a.*fromtel_typeaorderbyaa)whereaa>=4andaa<=8
二、建表及同义词语法:建表及同义词语法:
创建表用例:创建表用例:
CREATETABLECRMTBM.SERVSERV_GUIDSERV_ID
(NOTNULL,
CHAR(32)NUMBER(12),
PRODUCT_IDAREA_CODEBILLING_NOUSE_CUST_IDUSE_TYPEEXCHANGE_IDINST_STATEINST_STATE_DATESLA_IDREGION_IDSTATECREATE_DATECOMPLETE_DATELINKMAN_IDCAUTERIZE_IDUSER_NAMEPASSWDCUST_IDPRODUCT_TYPEABS_PROD_IDPHYSICS_NUMBERADDRESS_INSTANCE_IDSEL_NUM_LEVELNUM_IDPROD_INST_IDREC_UNIQUE_IDDEAL_FLAGDISPOSAL_DATEAGREEMENT_ID)TABLESPACED_10240_DAT;
NUMBER(9),VARCHAR2(7),VARCHAR2(30),NUMBER(12),NUMBER(9),VARCHAR2(10),NUMBER(9),DATE,NUMBER(9),NUMBER(9),NUMBER(9),DATE,DATE,NUMBER(15),NUMBER(12),VARCHAR2(250),VARCHAR2(20),NUMBER(12),NUMBER(9),NUMBER(9),VARCHAR2(32),NUMBER(12),NUMBER(9),VARCHAR2(20),NUMBER,NUMBER,VARCHAR2(2),DATE,NUMBER(12)
COMMENTONTABLECRMTBM.SERVIS'商品实例在描述业务时都至少存在一个唯一的产品实例,可以用于识别该业务,具体表现为计费的唯一标识,产品实例拥有唯一的接入号码,例如电话号码、ADSL帐号。一个产品实例有相应的产品资源类型。描述了客户所拥有的电信主产品的信息。';ALTERTABLECRMTBM.SERVADDCONSTRAINTPK_SER
V_SERV_GUIDPRIMARYKEY(SERV_GUID);CREATEINDEXSERV_FIR_IDXONCRMTBM.SERV(SERV_IDASC)TABLESPACED_10240_IDX;CREATEINDEXSERV_SEC_IDXONCRMTBM.SERV(AREA_CODEASC,BILLING_NOASC)TABLESPACED_10240_IDX;CREATEINDEXSERV_THI_IDXONCRMTBM.SERV(CUST_IDASC)TABLESPACED_10240_IDX;CREATEUNIQUEINDEXSERV_UNI_IDXONCRMTBM.SERV(SERV_GUIDASC)TABLESPACED_10240_IDX;CREATEINDEXSERV_FOU_IDXONCRMTBM.SERV(ADDRESS_INSTANCE_IDASC)TABLESPACED_10240_IDX;CREATEINDEXSERV_FIF_IDXONCRMTBM.SERV(PRODUCT_IDASC)TABLESPACED_10240_IDX;
CREATEINDEXSERV_SIX_IDXONCRMTBM.SERV(REGION_IDASC)TABLESPACED_10240_IDX;ALTERTABLECRMTBM.SERVADDCONSTRAINTFK_SERV_ADDRESS_INSTANCE_IDFOREIGNKEY
(ADDRESS_INSTANCE_ID)REFERENCES(ADDRESS_INSTANCE_ID);CRMTBM.TBM_ADDRESS_INSTANCE
创建视图用例:创建视图用例:CREATEORREPLACEVIEWV_PRODUCTASSELECTLOOKUPC.PRODUCT_ID,LOOKUPC.PRODUCT_NAME,LOOKUPC.PRODUCT_IDAS
PRODUCT_PKG_IDFROMPRODUCTLOOKUPCWHERENOTEXISTS(SELECT1FROMPRODUCTLOOKUPA,PUB_COLUMN_REFERENCELOOKUPBWHERELOOKUPA.PRODUCT_TYPE=LOOKUPB.REFER_IDANDLOOKUPB.TABLE_CODE='PRODUCT'ANDLOOKUPB.COL_CODE='PRODUCT_TYPE'ANDLOOKUPB.COL_VALUE='1'ANDLOOKUPA.PRODUCT_ID=LOOKUPC.PRODUCT_ID)UNIONALLSELECTLOOKUPA.PRODUCT_ID,LOOKUPA.PRODUCT_NAME,LOOKUPB.PRODUCT_PKG_IDFROMPRODUCTLOOKUPA,(SELECTA.PRODUCT_IDASPRODUCT_PKG_ID,C.RELA_TYPE_IDFROMPRODUCTA,PUB_COLUMN_REFERENCEB,PRODUCT_RELATIONCWHEREA.PRODUCT_TYPE=B.REFER_IDANDB.TABLE_CODE='PRODUCT'ANDB.COL_CODE='PRODUCT_TYPE'ANDB.COL_VALUE='1'ANDA.PRODUCT_ID=C.PROD_ID
ANDC.KEY_FLAG='1')LOOKUPB,PRODUCT_RELATIONLOOKUPCWHERELOOKUPA.PRODUCT_ID=LOOKUPC.PROD_IDANDLOOKUPB.RELA_TYPE_ID=LOOKUPC.RELA_TYPE_IDANDLOOKUPC.KEY_FLAG='0'
创建SEQUENCE用例:用例:createsequenceSEQ_ACCT_ITEM_TYPE_ID
minvalue1
maxvalue999999999startwith86incrementby1nocacheorder;创建用户用例:
createuserTBMidentifiedby;
创建同义词用例:创建同义词用例:
例1:createsynonymACCOUNT_GROUPforTCM.ACCOUNT_GROUP;
例2:createsynonymPRODUCT_OFFERforTPM.PRODUCT_OFFER;创建数据库连接用例:例1:createdatabaselinkOLD_BILL.US.ORACLE.COM
connecttoBILLidentifiedbyJFTESTusing'old_bill';
例2:createpublicdatabaselinkPHSDB.US.ORACLE.COMconnecttoWXSHXMusing'tns:znxm';
三、其他:其他:
1、什么是索引?什么是索引?
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100
倍。2、索引的类型:普通索引、唯一索引、主键索引的类型:主键一般不允许为空,如果有外键引用时需要建成主键,而不是唯一索引。多字段的联合主键:primary(字段1,字段2,字段3。。。)普通索引最多不超过4~5个。表名字段名一般不超过30字符;
3、定义:定义:元数据:描述数据库表的背景、内容、结构及其整个管理过程的数据记录静态数据:即具体静态值放置的表