Oracle學習筆記8

來源:互聯網
上載者:User

前6次筆記,都是表的查詢操作,查詢作為資料庫的一個基本操作,我們花了不少的時間。那麼本次筆記我們學習,對錶的建立和管理,建立表、刪除表、修改表、重新命名表和清空表。

常見的資料庫物件: 表,視圖,序列,索引,同義字

之前查詢所使用的表emp 、dept 都是Oracle內建的資料庫。本次就使用SQL語句來建立我們自己的表。

建立表之前,先瞭解一下資料庫的幾種資料類型和表的命名規則。

資料類型:

varchar2           表示的是一個字串。

number             number(n) :表示的是一個整數,數位長度是n 。

                           number(n,2)表示的是一個小數,小數點後可以保留兩位小數。

date                  表示日期的類型,按照標準的日期格式進行存放。

clob                   字元資料,最大可達到4G。

blob                   表示位元據,最大可以存放4G,例如,存放電影,圖片。

表名和列名的命名規則:

必須以字母開頭;

必須在1-30個字元之間;

必須只能包括含有A-Z ,a-z, 0-9,_,$和#;

不能和使用者定義的其他對象重名;

必須不能是Oracle的保留字;

建表的文法:

CREATE TABLE  table_name(

       列名稱1 資料類型 [DEFAULT 預設值] ,

       列名稱2 資料類型[DEFAULT 預設值] ,

       列名稱3 資料類型[DEFAULT 預設值] ,

       ...

)

例:建立emp1表

SQL> create table emp1(
  2         id number(10),
  3         name varchar2(20),
  4         salary number(12 ,2 ),
  5         hiredate date
  6  );
 
Table created

表emp1建立成功。

除了上面的這這種建表的方式,還有第二種方法,該方法依託於已經存在的表。

基本文法:

CREATE  TABLE  table_nameAS(子查詢) ;

在子查詢中,如果寫的是select * from emp ,或者是 select enamel , sal , hiredate ,  (具體的列名) from emp  ;除了將emp表中列的結構複製過來,連表中的資料也一起複製過來。如果我們只是想複製一個表的結構,而不複製表的內容,則要添加where 條件,即:select * from emp where  1 = 2 ; 此時,只複製表的結構,不會複製表的內容。

修改表 (ALTER TABLE)

使用alter table 語句可以完成:追加新的列,修改現有的列,為新追加的列定義預設值,刪除列,重新命名表的

列名等操作。

 

追加新的列

基本文法:

ALTER TABLE table_name

add   ( 列名 資料類型 預設值) ;

例:為表emp1 ,添加email ,20個字元 ,並設定預設值--無地址

SQL> alter table emp1
  2  add(email varchar2(20)) ;
 
Table altered
 
SQL> desc emp1 ;


Name     Type         Nullable Default Comments
-------- ------------ -------- ------- --------
ENAME    VARCHAR2(10) Y                        
SAL      NUMBER(7,2)  Y                        
HIREDATE DATE         Y                        
EMAIL    VARCHAR2(20) Y 

修改現有的列

基本文法:

ALTER TABLE emp1

MODIFY (列名 ,資料類型 ) ;

例:將表emp1 中列salary 的資料類型長度改為50

ALTER TABLE emp1

MODIFY (salary   number(50) ) ;

刪除列

基本文法

ALTER TABLE emp1

DROP cloumn  列名 ;

例:刪除上次添加的email列

ALTER TABLE emp1

DROP  cloumn email ;

重新命名列

基本文法:

ALTER TABLE table_name

RENAME column old_column_name TO new_column_name ;

例:將emp1表中的列salary重新命名為sal

ALTER TABLE emp1

RENAME cloumn salary TO sal ;

在一般的開發中,很少會對錶的結構進行修改操作,因為在開發的初期,已經對資料庫中表的結構進行了充分的設計。

 

表的刪除

基本文法:

DROP TABLE table_name ;

例:刪除emp1 表 --- DROP TABLE emp1 ;

 

表的重新命名:

基本文法:

RENAME old_table_name TO new_table_name ;

清除表

基本文法:

TRUNCATE TABLE  table_name ;

如果想保留表的結構,但是清除表中的記錄,可以使用上面的語句,該操作不可恢複。

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.