Oracle基礎學習四之表的定義及腳本編寫一


表的創建及管理
   對於數據庫而言實際上每一張表都表示的是一個數據庫對象,而在數據庫對象值的就是DDL定義的所有操作,例如:表、視圖、序列、約束等,都屬於對象的操作,所以表的建立就是對象的建立,而對象的操作主要分為以下三類語法:
        .創建對象:Create 對象名稱...;
  .刪除對象:Drop 對象名稱...;
  .修改對象:Alter 對象名稱...;
1、常用的數據字段
No      數據類型              描述
1      varchar(n)   其中n表示字符串所能保存的最大長度,基本上200個左右的內容
2      number(n)     表示最多為n位整數,有時候可以使用INT代替
3      number(n,m)   其中m為小數位,n-m為整數位,有時候也可以使用Float代替
4      date                 存放日期-時間
5      clob(大文本)   可以存儲海量文字(容量為4G),例如:<<三國>>、<<紅樓夢>>
6      blob(大對象)       存放二進制數據(電影、音樂、圖片、文字)
綜上:一般在開發之中使用最多的:varchar\number\date\clob,對於blob字段一般使用較少,首先blob可以存放4G的二進制數據,但是存放了,一是數據庫過於龐大,二是讀取不方便;其實可以用另一個替代。
表的創建:Create table 表名稱(
       字段1    數據類型    [default 默認值],
    字段2    數據類型    [default 默認值],
    ... ...
    字段n    數據類型    [default 默認值]
    );
范例:Create table student ( name   varchar(50)   default '無名', age    number(3), birthday  Date Default SYSDATE,
content  clob );表創建成功后,向表中增加數據:
insert into student(name,age,birthday,content) values('張三',20,TO_DATE('1990-08-12'),'一個好人');
insert into student(age,content) values(20,'一個好人');表的創建屬於數據庫對象的創建,所以使用的是Create語法。
---------------------
表的復制語法: create table 復制表 as 子查詢;
范例:create table emp2 as select * from emp;
范例:現在要求只復制表的結構,不要數據,只需寫一個滿足不了的條件即可。
  Create table empNull select * from emp where 1=2;
以上這些語法只是Oracle數據庫特有的操作,其他的數據庫有些區別。
---------------------
為表重命名
在Oracle之中,所有的數據實際上都是通過數據字典保存,而在Oracle中,提供了三種類型的數據字典,最常用的是:dba_、user_,所以下面查詢一個user_tables數據字典:select * from user_tables;
也就是說Oracle中的所有的數據都是按照文件保存的,那么所有的內容都會在數據字典中注冊,既然這樣,所謂的修改表名稱
Rename 原表名 to 新表名;
---------------------
截斷表
  曾經用過刪除表數據的操作,使用的是Delete操作,但是這種刪除操作本身有一個特點,即:可以進行事務的回滾,也就是說刪除之后並不會立刻釋放數據的資源,如果現在希望徹底釋放掉一張表所占用的全部資源(表空間、索引等)就可以使用截斷表的語法,此語法如下:Truncate table 表名;(oralce特有的語法操作)。
---------------------
表的刪除
 表的刪除操作指的是數據庫對象的刪除,既然是刪除則使用Drop語句,刪除表的語法如下:
   drop  table 表名;
---------------------
Oracle 的新特性閃回技術
  在10g之后,為了預防用戶的誤刪表操作,專門提供了回收站的功能,用戶所刪除的表默認情況下會在一個回收站之中保存,而用戶也可以通過回收站,進行表的恢復,因此稱為閃回(flashback);
范例:查看回收站
    show RECYCLEBIN;這個時候可以發現所有已經刪除的表都在回收站之中保存,那么下面就可以使用如下的語法恢復表: FlashBack table 表 to BEFORE DROP;
范例:恢復myemp表
    flashback table myemp to before drop;當然,現在也可以直接刪除掉回收站中的一些數據,語法如下:purge table 表名;
范例:刪除回收站中的student表
    purge table student;
范例:清空回收站
    purge RECYCLEBIN;
 如果現在希望刪除一張表,而又不希望其進入到回收站之中,則可以在刪除的時候增加purge。
范例:drop table 表名 purge;(10g后有的閃回技術
--------------------
修改表的結構實際上就是數據庫對象的修改操作,使用Alter指令完成:例如有一張表:
Create table member(
mid  number, name varchar(10) );
 現在要想對該表進行增加字段,有以下語法完成:
 Alter table 表名 Add(列名 數據類型 [default 默認值][, 列名 數據類型 [default 默認值],...]);
范例:為member表增加字段
    Alter table  member add( age  number(3), birthday date default SYSDATE);
如果增加的數據列沒有默認值,則所有已有的數據的列的內容都是null,而如果增加的列指定了default默認值的話,則所有已有的數據列都是沒有設置的默認值。
同時也可以修改已有的表結構,此時語法如下:
    Alter table 表名 modify(列名 數據類型 [default 默認值] [,列名 數據類型 [default 默認值],...]);
范例:將name字段的默認值定義為無名
    Alter table member modify( name varchar(10) default '無名');
對於平台受限的數據庫來說,性能最好的是Db2,而對於跨平台的數據庫來說,性能最好的是Oracle,同時在db2中是不允許修改表結構的,即:表建立完成后就不能修改了,所以在開發之中盡可能不要去修改表結構。
    提醒:關於軟件項目開發的基本流程:
     1、獲取需求--->從客戶中獲取需求(軟件銷售)
  2、需求分析--->根據客戶需求
  3、業務分析,數據庫及接口設計;-->數據表設計
  4、編碼實現-->業務梳理
  5、軟件測試
  6、軟件培訓及項目維護
----------------------------------------------
編寫數據庫腳本的格式要求如下:
    1、腳本文件名稱的后綴必須是“.sql“;
 2、先刪除相應的數據表;
    例如:drop table nation purge;
 3、編寫創建表的語句;
    例如:Create table nation( name     varchar(10));
 4、增加測試數據;
    例如:insert into nation(name) values('中國');
  insert into nation(name) values('美國');
  insert into nation(name) values('巴西');
  insert into nation(name) values('荷蘭');
 5、事務提交
    例如:commit;
----------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM