欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 計劃總結(jié) > 工作總結(jié) > oracle建表總結(jié)

oracle建表總結(jié)

網(wǎng)站:公文素材庫 | 時間:2019-05-29 22:25:40 | 移動端:oracle建表總結(jié)

oracle建表總結(jié)

Oracle建表總結(jié)

(一)

對象命名原則:

必須由字母開始,長度在130個字符之間。

名字中只能包含AZ,az,09,_(下劃線),$和#(但盡量不要使用$和#)。

同一個Oracle服務(wù)器用戶所擁有的對象名字不能重復(fù)。名字不能為Oracle的保留字。

1、2、3、4、

5、名字是大小寫不敏感。

(二)

數(shù)據(jù)類型:(10種,主要varchar2,date,number3種)

說明:

(1)(2)

date的使用盡量用到to_date(‘1990-01-01’,’YYYY-MM-DD’);blob一般用來存放聲音,視頻等

to_date,如:

(三)

約束條件(6種)

default設(shè)置默認值說明:(1)列級約束:只能作用于一個列上;定義時跟在列后面(只有not

null,default純列級約束,其它都即可表級約束,又可列級約束);表級約束:可作用于多個列上,也可只約束一個列;要單獨定義。

(2)可以為其他4種約束起名,而不能給NOTNULL和DEFAULT約束起名;別

名起法,如:constraintpk_tidprimarykey;(3)各種列級約束的寫法(以學生表為例);

Createtablestudent(

S_idvarchar(12)constraintpk_tidprimarykey,--起別名pk_tid

S_namevarchar(12)notnull,

S_sexchar(2)default‘男’check(s_sex=’男’ors_sex=’女’),--注意default應(yīng)放在其它約束前面S_phonevarchar(11)unique,

classidvarchar(12)referencesclassinfo(classid)

--為表classinfo相對classid的外鍵(名稱可不一致));

(4)表級約束簡單舉例(主要注意外鍵)

Createtablestudent(S_idvarchar(12),

classidvarchar(12)referencesclassinfo(classid),primarykey(s_id),

--或取別名constraintpk_tidprimarykey(s_id)--聯(lián)合主鍵只能用表級約束如:primarykey(1,2)

constraintstu_cla_fkforeignkey(classid)referencesclassinfo(classid)--不用別名foreignkey(classid)referencesclassinfo(classid)--兩個外鍵,分開寫,寫法同上);

(四)約束的操作

增加約束

altertable表名稱addconstraint約束名稱約束類型(字段);刪除約束

altertabledeptdropunique(dname,loc)--指定約束的定義內(nèi)容altertabledeptdropconstraintdept_dname_loc_uk--指定約束名查詢約束條件

Select*fromuser_constraints;查詢被約束的列

Select*fromuser_cons_columns;

(五)表的修改,刪除,重命名表

增加

altertable表名add列名類型修改

altertable表名modify列名【(新)類型(新)約束】刪除

altertable表名drop列名重命名

renameold_nametonew_name;

(六)

創(chuàng)建序列

可單獨修改里面的改

擴展閱讀:oracle數(shù)據(jù)庫創(chuàng)建表設(shè)計與修改(個人總結(jié)超有用)

CREATETABLEcd_study_detail(

row_idVARCHAR2(20)UNIQUE,

id_cardVARCHAR2(20)PRIMARYKEY,

study_dateDATECHECK(study_dateLIKE"%-%-%"),study_descVARCHAR2(50),study_scoNUMBER(10,1),

CONSTRAINTdtudy_role_fkFOREIGNKEY(id_card)REFERENCESneu_study(id_card));

CREATETABLEneu_study(

row_idVARCHAR2(20)UNIQUE,

id_cardVARCHAR2(20)PRIMARYKEY,

birth_dayDATECHECK(birth_dayLIKE"%-%-%"),role_idVARCHAR2(20),per_remarkVARCHAR2(255),

base_salryNUMBER(10,4)CHECK(base_salryBETWEEN500AND201*),fact_salryNUMBER(10,4),

create_dateDATEDEFAULTSYSDATECHECK(create_dateLIKE"%-%-%"),last_up_dateDATECHECK(last_up_dateLIKE"%-%-%"),

CONSTRAINTdtudy_role_fkFOREIGNKEY(字段)REFERENCES表名(字段)//字段后直接加references表名(字段名)創(chuàng)建外鍵更好)

DROPTABLEneu_study;

CREATETABLEROLE(

cd_roleVARCHAR2(20)PRIMARYKEY,role_nameVARCHAR2(20)UNIQUE)

SELECT*FROMneu_studySELECT*FROMROLE

INSERTINTOROLEVALUES("&請輸入部門編號","&請輸入部門姓名");

CREATESEQUENCEseq_studySTARTWITH1INCREMENTBY1;DROPSEQUENCEseq_study;

INSERTINTOneu_study

VALUES(seq_study.NEXTVAL,"&請輸入身份證號",

to_date("&請輸入生日","yyyy-mm-dd"),"&請輸入部門編號","&備注",&請輸入基本工資,&請輸入當前實際工資,

to_date("&請輸入創(chuàng)建工資的日期","yyyy-mm-dd"),

to_date("&請輸入最后更新工資的日期","yyyy-mm-dd"));

INSERTINTOneu_study

VALUES(seq_study.NEXTVAL,"2100902930",

to_date("1986-02-03","yyyy-mm-dd"),"1102","無",201*,600,

to_date("201*/11/10","yyyy-mm-dd"),to_date("201*/11/16","yyyy-mm-dd"));COMMIT;

SELECT*FROMneu_study;

//Oracle的基本操作+Oracle字段類型(zz)在Oracle關(guān)于時間屬性的建表

Example:

createtablecourses(

cidvarchar(20)notnullprimarykey,

cnamevarchar(20)notnull,

ctypeinteger,

ctimedateDEFAULTSYSDATE,

cscorefloatnotnull)

insertintocoursesvalues("ss01","java",0,TO_DATE("201*-8-28","yyyy-mm-dd"),94)

insertintocoursesvalues("ss02","music",1,TO_DATE("201*-8-27","yyyy-mm-dd"),88)

insertintocoursesvalues("ss03","c++",0,TO_DATE("201*-8-29","yyyy-mm-dd"),78)

在PL/SQL建表以后,記得commit,才能在pl/sql上查詢到數(shù)據(jù)。對于日期類型

將字符串轉(zhuǎn)換成日期:

InsertIntotable(col_date)Values(to_date(‘201*-01-16’,’yyyy-mm-dd’));將日期轉(zhuǎn)換成字符串:

InsertIntotable(col_char)Values(to_char(Date,’format’));

select*fromcourseswherectime>to_date("201*-8-28","yyyy-mm-dd")

創(chuàng)建表

1.ORACLE常用的字段類型ORACLE常用的字段類型有

VARCHAR2(size)可變長度的字符串,必須規(guī)定長度CHAR(size)固定長度的字符串,不規(guī)定長度默認值為1

NUMBER(p,s)數(shù)字型p是位數(shù)總長度,s是小數(shù)的長度,可存負數(shù)最長38位.不夠位時會四舍五入.DATE日期和時間類型

LOB超長字符,最大可達4GCLOB超長文本字符串BLOB超長二進制字符串

BFILE超長二進制字符串,保存在數(shù)據(jù)庫外的文件里是只讀的.

數(shù)字字段類型位數(shù)及其四舍五入的結(jié)果原始數(shù)值1234567.89

數(shù)字字段類型位數(shù)存儲的值Number1234567.89Number(8)12345678Number(6)錯

Number(9,1)1234567.9Number(9,3)錯Number(7,2)錯

Number(5,-2)1234600Number(5,-4)1230000Number(*,1)1234567.9

2.創(chuàng)建表時給字段加默認值和約束條件創(chuàng)建表時可以給字段加上默認值

例如:日期字段DEFAULTSYSDATE

這樣每次插入和修改時,不用程序操作這個字段都能得到動作的時間

創(chuàng)建表時可以給字段加上約束條件例如:非空NOTNULL不允許重復(fù)UNIQUE關(guān)鍵字PRIMARYKEY按條件檢查CHECK(條件)

外鍵REFERENCES表名(字段名)

3.創(chuàng)建表的例子

CREATETABLEDEPT(

EPTNONUMBER(2)CONSTRAINTPK_DEPTPRIMARYKEY,DNAMEVARCHAR2(14),LOCVARCHAR2(13));

CREATETABLEregion(

IDnumber(2)NOTNULLPRIMARYKEY,postcodenumber(6)default"0"NOTNULL,areanamevarchar2(30)default""NOTNULL);

4.創(chuàng)建表時的命名規(guī)則和注意事項

1)表名和字段名的命名規(guī)則:必須以字母開頭,可以含符號A-Z,a-z,0-9,_,$,#2)大小寫不區(qū)分

3)不用SQL里的保留字,一定要用時可用雙引號把字符串括起來.4)用和實體或?qū)傩韵嚓P(guān)的英文符號長度有一定的限制

注意事項:

1)建表時可以用中文的字段名,但最好還是用英文的字段名

2)創(chuàng)建表時要把較小的不為空的字段放在前面,可能為空的字段放在后面3)建表時如果有唯一關(guān)鍵字或者唯一的約束條件,建表時自動建了索引4)一個表的最多字段個數(shù)也是有限制的,254個.

5.約束名的命名規(guī)則和語法

約束名的命名規(guī)則約束名如果在建表的時候沒有指明,系統(tǒng)命名規(guī)則是SYS_Cn(n是數(shù)字)約束名字符串的命名規(guī)則同于表和字段名的命名規(guī)則

6.使用約束時的注意事項

約束里不能用系統(tǒng)函數(shù),如SYSDATE和別的表的字段比較可以用本表內(nèi)字段的比較

想在事務(wù)處理后,做約束的檢查

SQL>altersessionsetconstraintsdeferred.

7.由實體關(guān)系圖到創(chuàng)建表的例子s_dept

前提條件:已有region表且含唯一關(guān)鍵字的字段idSQL>CREATETABLEs_dept(idNUMBER(7)

CONSTRAINTs_dept_id_pkPRIMARYKEY,nameVARCHAR2(25)

CONSTRAINTs_dept_name_nnNOTNULL,region_idNUMBER(7)

CONSTRAINTs_dept_region_id_fkREFERENCESregion(id),

CONSTRAINTs_dept_name_region_id_ukUNIQUE(name,region_id));

8.較復(fù)雜的創(chuàng)建表例子

SQL>CREATETABLEs_emp(idNUMBER(7)

CONSTRAINTs_emp_id_pkPRIMARYKEY,last_nameVARCHAR2(25)

CONSTRAINTs_emp_last_name_nnNOTNULL,first_nameVARCHAR2(25),useridVARCHAR2(8)

CONSTRAINTs_emp_userid_nnNOTNULLCONSTRAINTs_emp_userid_ukUNIQUE,start_dateDATEDEFAULTSYSDATE,commentsVARCHAR2(25),manager_idNUMBER(7),titleVARCHAR2(25),dept_idNUMBER(7)

CONSTRAINTs_emp_dept_id_fkREFERENCESs_dept(id),salaryNUMBER(11,2),

commission_pctNUMBER(4,2)

CONSTRAINTs_emp_commission_pct_ckCHECK(commission_pctIN(10,12.5,15,17.5,20)));

8.通過子查詢建表通過子查詢建表的例子

SQL>CREATETABLEemp_41ASSELECTid,last_name,userid,start_dateFROMs_empWHEREdept_id=41;

SQL>CREATETABLEAasselect*fromBwhere1=2;只要表的結(jié)構(gòu).

10.用子查詢建表的注意事項

1)可以關(guān)連多個表及用集合函數(shù)生成新表,注意選擇出來的字段必須有合法的字段名稱,且不能重復(fù)。

2)用子查詢方式建立的表,只有非空NOTNULL的約束條件能繼承過來,其它的約束條件和默認值都沒有繼承過來.3)根據(jù)需要,可以用altertableaddconstraint……再建立其它的約束條件,如primarykey等.

11.ForeignKey的可選參數(shù)ONDELETECASCADE在創(chuàng)建ForeignKey時可以加可選參數(shù):ONDELETECASCADE它的含義是如果刪除外鍵主表里的內(nèi)容,子表里相關(guān)的內(nèi)容將一起被刪除.

如果沒有ONDELETECASCADE參數(shù),子表里有內(nèi)容,父表里的主關(guān)鍵字記錄不能被刪除掉.

12.如果數(shù)據(jù)庫表里有不滿足的記錄存在,建立約束條件將不會成功.

13.給表創(chuàng)建和刪除同義詞的例子SQL>CREATESYNONYMd_sum2FORdept_sum_vu;

SQL>CREATEPUBLICSYNONYMs_dept2FORalice.s_dept;

SQL>DROPSYNONYMs_dept;

Oracle添加修改刪除表字段

1、添加字段altertabletable_nameaddcolumn1typeaddcolumn2type

addcolumn3type...;

2、刪除字段altertabletable_namedropcolumncolumn_name;3、修改字段altertabletable_namemodify(column_nametype);

14.修改字段名方法:ALTERTABLE表名

MODIFY(字段名notnull)

15.請問如何修改一張表的主鍵?altertableaaa

dropconstraintaaa_key;altertableaaa

addconstraintaaa_keyprimarykey(a1,b1);

16.如果該字段不是外鍵中的字段,你可以通過:altertabletab_namedropCOLUMNcol_name;刪除

1.修改主鍵

ALTERTABLEtable_nameDROPPRIMARYKEYCASCADE;

ALTERTABLEtable_nameADDPRIMARYKEY(column_names);2.

ALTERTABLEtable_nameDROPCOLUMN(col1,col2,col3);---fororacle8iorlaterALTERTABLEtable_nameADD(col1datatype,clo2datatype);

友情提示:本文中關(guān)于《oracle建表總結(jié)》給出的范例僅供您參考拓展思維使用,oracle建表總結(jié):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


oracle建表總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/747166.html