Oracle建立表語句(Create table)語法詳解及示例

<h1>
    <span class="link_title"><a href="/haiross/article/details/11772847">
    Oracle建立表語句(Create table)語法詳解及示例            
    </a></span>
</h1>
<div class="article_manage clearfix">
    <div class="article_r">
        <span class="link_postdate">2013-09-17 15:12</span>
        <span class="link_view" title="閱讀次數">133154人閱讀</span>
        <span class="link_comments" title="評論次數"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">評論</a>(0)</span>
        <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('Oracle%e5%88%9b%e5%bb%ba%e8%a1%a8%e8%af%ad%e5%8f%a5(Create+table)%e8%af%ad%e6%b3%95%e8%af%a6%e8%a7%a3%e5%8f%8a%e7%a4%ba%e4%be%8b','11772847');return false;" title="收藏">收藏</a></span>
         <span class="link_report"> <a href="#report" onclick="javascript:report(11772847,2);return false;" title="舉報">舉報</a></span>

    </div>
</div>
<div class="embody" style="display:none" id="embody">
    <span class="embody_t">本文章已收錄於:</span>
    <div class="embody_c" id="lib" value="{&quot;err&quot;:0,&quot;msg&quot;:&quot;ok&quot;,&quot;data&quot;:[]}"></div>
</div>
<style type="text/css">        
        .embody{
            padding:10px 10px 10px;
            margin:0 -20px;
            border-bottom:solid 1px #ededed;                
        }
        .embody_b{
            margin:0 ;
            padding:10px 0;
        }
        .embody .embody_t,.embody .embody_c{
            display: inline-block;
            margin-right:10px;
        }
        .embody_t{
            font-size: 12px;
            color:#999;
        }
        .embody_c{
            font-size: 12px;
        }
        .embody_c img,.embody_c em{
            display: inline-block;
            vertical-align: middle;               
        }
         .embody_c img{               
            width:30px;
            height:30px;
        }
        .embody_c em{
            margin: 0 20px 0 10px;
            color:#333;
            font-style: normal;
        }
</style>
<script type="text/javascript">
    $(function () {
        try
        {
            var lib = eval("("+$("#lib").attr("value")+")");
            var html = "";
            if (lib.err == 0) {
                $.each(lib.data, function (i) {
                    var obj = lib.data[i];
                    //html += '<img src="' + obj.logo + '"/>' + obj.name + "&nbsp;&nbsp;";
                    html += ' <a href="' + obj.url + '" target="_blank">';
                    html += ' <img src="' + obj.logo + '">';
                    html += ' <em><b>' + obj.name + '</b></em>';
                    html += ' </a>';
                });
                if (html != "") {
                    setTimeout(function () {
                        $("#lib").html(html);                      
                        $("#embody").show();
                    }, 100);
                }
            }      
        } catch (err)
        { }
        
    });
</script>
  <div class="category clearfix">
    <div class="category_l">
       <img src="http://static.blog.csdn.net/images/category_icon.jpg">
        <span>分類:</span>
    </div>
    <div class="category_r">
                <label onclick="GetCategoryArticles('1600815','haiross','top','11772847');">
                    <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">oracle開發SQL語句<em>(273)</em></span>
                  <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
                  <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
                    <div class="subItem">
                        <div class="subItem_t"><a href="http://blog.csdn.net/haiross/article/category/1600815" target="_blank">做者同類文章</a><i class="J_close">X</i></div>
                        <ul class="subItem_l" id="top_1600815">                            
                        </ul>
                    </div>
                </label>                    
    </div>
</div>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>

Oracle建立表語句(Create table)語法詳解及示例  
javascript

 

建立表(Create table)語法詳解
1. ORACLE經常使用的字段類型
ORACLE經常使用的字段類型有
VARCHAR2 (size) 可變長度的字符串, 必須規定長度
CHAR(size) 固定長度的字符串, 不規定長度默認值爲1
NUMBER(p,s) 數字型p是位數總長度, s是小數的長度, 可存負數
最長38位. 不夠位時會四捨五入.
DATE 日期和時間類型
LOB 超長字符, 最大可達4G
CLOB 超長文本字符串
BLOB 超長二進制字符串
BFILE 超長二進制字符串, 保存在數據庫外的文件裏是隻讀的.
數字字段類型位數及其四捨五入的結果
原始數值1234567.89
數字字段類型位數 存儲的值
Number 1234567.89
Number(8) 12345678
Number(6) 錯
Number(9,1) 1234567.9
Number(9,3) 錯
Number(7,2) 錯
Number(5,-2) 1234600
Number(5,-4) 1230000
Number(*,1) 1234567.9
2. 建立表時給字段加默認值 和約束條件
建立表時能夠給字段加上默認值
例如 : 日期字段 DEFAULT SYSDATE
這樣每次插入和修改時, 不用程序操做這個字段都能獲得動做的時間
建立表時能夠給字段加上約束條件
例如: 非空 NOT NULL
不容許重複 UNIQUE
關鍵字 PRIMARY KEY
按條件檢查 CHECK (條件)
外鍵 REFERENCES 表名(字段名)
3. 建立表的例子
CREATE TABLE DEPT(
EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)) ;
CREATE TABLE region(
ID number(2) NOT NULL PRIMARY KEY,
postcode number(6) default '0' NOT NULL,
areaname varchar2(30) default ' ' NOT NULL);
4. 建立表時的命名規則和注意事項
1)表名和字段名的命名規則:必須以字母開頭,能夠含符號A-Z,a-z,0-9,_,$,#
2)大小寫不區分
3)不用SQL裏的保留字, 必定要用時可用雙引號把字符串括起來.
4)用和實體或屬性相關的英文符號長度有必定的限制
注意事項:
1)建表時能夠用中文的字段名, 但最好仍是用英文的字段名
2)建立表時要把較小的不爲空的字段放在前面, 可能爲空的字段放在後面
3)建表時若是有惟一關鍵字或者惟一的約束條件,建表時自動建了索引
4)一個表的最多字段個數也是有限制的,254個.
5. 約束名的命名規則和語法
約束名的命名規則約束名若是在建表的時候沒有指明,系統命名規則是SYS_Cn(n是數字)
約束名字符串的命名規則同於表和字段名的命名規則
6. 使用約束時的注意事項
約束裏不能用系統函數,如SYSDATE和別的表的字段比較
能夠用本表內字段的比較
想在事務處理後, 作約束的css

檢查
SQL> alter session set constraints deferred.
7. 由實體關係圖到建立表的例子 s_dept
前提條件:已有region表且含惟一關鍵字的字段id
SQL> CREATE TABLE s_dept
(id NUMBER(7)
CONSTRAINT s_dept_id_pk PRIMARY KEY,
name VARCHAR2(25)
CONSTRAINT s_dept_name_nn NOT NULL,
region_id NUMBER(7)
CONSTRAINT s_dept_region_id_fk REFERENCES region (id),
CONSTRAINT s_dept_name_region_id_uk UNIQUE(name, region_id));
8. 較複雜的建立表例子
SQL> CREATE TABLE s_emp
(id NUMBER(7)
CONSTRAINT s_emp_id_pk PRIMARY KEY,
last_name VARCHAR2(25)
CONSTRAINT s_emp_last_name_nn NOT NULL,
first_name VARCHAR2(25),
userid VARCHAR2(8)
CONSTRAINT s_emp_userid_nn NOT NULL
CONSTRAINT s_emp_userid_uk UNIQUE,
start_date DATE DEFAULT SYSDATE,
comments VARCHAR2(25),
manager_id NUMBER(7),
title VARCHAR2(25),
dept_id NUMBER(7)
CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),
salary NUMBER(11,2),
commission_pct NUMBER(4,2)
CONSTRAINT s_emp_commission_pct_ck CHECK
(commission_pct IN(10,12.5,15,17.5,20)));
8. 經過子查詢建表
經過子查詢建表的例子
SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date
FROM s_emp WHERE dept_id = 41;
SQL> CREATE TABLE A as select * from B where 1=2;
只要表的結構.
10. 用子查詢建表的注意事項
1)能夠關連多個表及用集合函數生成新表,注意選擇出來的字段必須有合法的字段名稱,且不能重複。
2)用子查詢方式創建的表,只有非空NOT NULL的約束條件能繼承過來, 其它的約束條件和默認值都沒有繼承過來.
3)根據須要,能夠用alter table add constraint ……再創建其它的約束條件,如primary key等.
11. Foreign Key的可選參數ON DELETE CASCADE
在建立Foreign Key時能夠加可選參數:
ON DELETE CASCADE它的含義是若是刪除外鍵主表裏的內容,子表裏相關的內容將一塊兒被刪除.
若是沒有ON DELETE CASCADE參數,子表裏有內容,父表裏的主關鍵字記錄不能被刪除掉.
12. 若是數據庫表裏有不知足的記錄存在,創建約束條件將不會成功.
13. 給表建立和刪除同義詞的例子
SQL> CREATE SYNONYM d_sum
2 FOR dept_sum_vu;
SQL> CREATE PUBLIC SYNONYM s_dept
2 FOR alice.s_dept;
SQL> DROP SYNONYM s_dept;html

<div id="digg" articleid="11772847">
        <dl id="btnDigg" class="digg digg_disable" onclick="btndigga();">
           
             <dt>頂</dt>
            <dd>2</dd>
        </dl>
       
          
        <dl id="btnBury" class="digg digg_disable" onclick="btnburya();">
          
              <dt>踩</dt>
            <dd>2</dd>               
        </dl>
        
    </div>
 <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);">&nbsp;</a>   </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);">&nbsp;</a></div>
<script type="text/javascript">
            function btndigga() {
                $(".tracking-ad[data-mod='popu_222'] a").click();
            }
            function btnburya() {
                $(".tracking-ad[data-mod='popu_223'] a").click();
            }
        </script>
<div style="clear:both; height:10px;"></div>


    <div class="similar_article" style="">
            <h4>個人同類文章</h4>
            <div class="similar_c" style="margin:20px 0px 0px 0px">
                <div class="similar_c_t">
                            <label class="similar_cur">
                                <span style="cursor:pointer" onclick="GetCategoryArticles('1600815','haiross','foot','11772847');">oracle開發SQL語句<em>(273)</em></span>
                            </label>
                </div>
               
                <div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;">
                    <a href="http://blog.csdn.net" style="display:none">http://blog.csdn.net</a>
                    <ul class="similar_list fl"><li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/52703419" id="foot_aritcle_52703419undefined33619855720227454" target="_blank" title="ORACLE關於鎖和V$LOCK的分析">ORACLE關於鎖和V$LOCK的分析</a><span>2016-09-29</span><label><i>閱讀</i><b>340</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/51718854" id="foot_aritcle_51718854undefined8587605434629908" target="_blank" title="Oracle級聯操做詳解">Oracle級聯操做詳解</a><span>2016-06-20</span><label><i>閱讀</i><b>659</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/51579198" id="foot_aritcle_51579198undefined1450549555324061" target="_blank" title="execute、executeUpdate、executeQuery三者的區別(及返回值)">execute、executeUpdate、executeQuery三者的區別(及返回值)</a><span>2016-06-03</span><label><i>閱讀</i><b>692</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/51003405" id="foot_aritcle_51003405undefined0689852308608816" target="_blank" title="oracle :time_t 轉換timestamp">oracle :time_t 轉換timestamp</a><span>2016-03-29</span><label><i>閱讀</i><b>226</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/50456134" id="foot_aritcle_50456134undefined5809299940348529" target="_blank" title="MySQL模擬Oracle的Sequence兩種方法">MySQL模擬Oracle的Sequence兩種方法</a><span>2016-01-04</span><label><i>閱讀</i><b>2246</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/50456069" id="foot_aritcle_50456069undefined7677838571957865" target="_blank" title="MySQL 序列使用AUTO_INCREMENT">MySQL 序列使用AUTO_INCREMENT</a><span>2016-01-04</span><label><i>閱讀</i><b>176</b></label></li> </ul>

                    <ul class="similar_list fr"><li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/52596119" id="foot_aritcle_52596119undefined278910500777386" target="_blank" title="外鍵列上是否須要索引">外鍵列上是否須要索引</a><span>2016-09-20</span><label><i>閱讀</i><b>125</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/51579943" id="foot_aritcle_51579943undefined4296876878561904" target="_blank" title="SQL異常">SQL異常</a><span>2016-06-03</span><label><i>閱讀</i><b>143</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/51003696" id="foot_aritcle_51003696undefined11747858359336516" target="_blank" title="Oracle中的TIMESTAMP類型解讀(TIMESTAMP存儲格式)">Oracle中的TIMESTAMP類型解讀(TIMESTAMP存儲格式)</a><span>2016-03-29</span><label><i>閱讀</i><b>1417</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/50946302" id="foot_aritcle_50946302undefined7358513483056048" target="_blank" title="oracle 查看錶被哪一個使用(oracle 查看錶被鎖)百度">oracle 查看錶被哪一個使用(oracle 查看錶被鎖)百度</a><span>2016-03-21</span><label><i>閱讀</i><b>910</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/haiross/article/details/50456112" id="foot_aritcle_50456112undefined3471039754233334" target="_blank" title="MYSQL獲取自增ID的四種方法">MYSQL獲取自增ID的四種方法</a><span>2016-01-04</span><label><i>閱讀</i><b>2143</b></label></li> </ul>
                <a href="http://blog.csdn.net/haiross/article/category/1600815" class="MoreArticle">更多文章</a></div>
            </div>
        </div>    
<script type="text/javascript">
    $(function () {
        GetCategoryArticles('1600815', 'haiross','foot','11772847');
    });
</script>
相關文章
相關標籤/搜索