1. 程式人生 > >[Oracle命令] 表管理

[Oracle命令] 表管理

Oracle表管理

一、Oracle資料庫資料型別

二、建立表

  1.語法如下:

CREATE TABLE [ schema.]table_name (

Column_name data_type [ DEFAULT expression ] [ constraint ]

[ , column_name data_type  [ DEFAULT expression ] [ constraint ] ]

[ , column_name data_type  [ DEFAULT expression ] [ constraint ] ]

[ ,  . . . ]

);

schema  指定表所屬的使用者名稱,或者所屬的使用者模式名稱

  2.建立MYBOOK,並指定其表空間

SQL > create table MYBOOK(

  2  bookid number(10) not null,

  3  bookname varchar2(40),

  4  author varchar2(40),

  5  press varchar2(40),

  6  bookprice number(4,2),

  7  presstime date,

  8  constraint book1_pk primary key(bookid)

  9  ) tablespace temp0310;

 Table created.

 3.檢視MYBOOK表資訊

  1)檢視MYBOOK表的結構資訊

 SQL> desc mybook
 Name                                     Null?    Type
 ----------------------------------------- ------------------------------------
 BOOKID                                   NOT NULL NUMBER(10)
 BOOKNAME                                          VARCHAR2(40)
 AUTHOR                                            VARCHAR2(40)
 PRESS                                             VARCHAR2(40)
 BOOKPRICE                                         NUMBER(4,2)
 PRESSTIME                                         DATE

 2)檢視MYBOOK表中的列資訊

SQL> !

column column_name format a15;
column data_type format a10;
select column_name, data_type, data_length,data_precision,data_scale
from user_tab_columns
where table_name = 'MYBOOK';
[email protected]:~$ exit

SQL> @user_tab_col.sql

COLUMN_NAME     DATA_TYPE  DATA_LENGTHDATA_PRECISION DATA_SCALE
--------------- ---------- ----------- -------------- ----------
BOOKID         NUMBER             22            10          0
BOOKNAME       VARCHAR2            40
AUTHOR         VARCHAR2            40
PRESS          VARCHAR2            40
BOOKPRICE      NUMBER             22             4          2
PRESSTIME      DATE                7

6 rows selected.

 4.指定表的模式

schema指定表所屬的使用者名稱,或者所屬的使用者模式名稱

SQL> create table system.mybook2(

   2 bookid number(10) not null,

   3 bookname varchar2(40),

   4 constraint book2_pk primary key (bookid)

   5 );

Table created.

SQL> desc system.mybook2;

 5.查詢預設表空間

   1)建立表時沒有指定表空間,將使用預設表空間

SQL> select default_tablespace from user_users;

DEFAULT_TABLESPACE
------------------------------
SYSTEM

  2)通過USER_TABLES檢視查看錶與表空間的對應關係

SQL> select table_name, tablespace_name

   2 from user_tables;

TABLE_NAMETABLESPACE_NAME

----------     ----------------------

MYBOOKTEMP0310

MYBOOK2SYSTEM

. . .

936 rows selected.

三、修改表

對錶的修改操作主要有以下幾方面:

  • 增加或者刪除列

  • 更新列

  • 對錶進行重新命名

  • 將表移動到另外一個表空間

  • 刪除表

    1.增加和刪除列

    1) 增加列ALTER TABLE ... ADD

    SQL> alter table system.mybook2 add presstime date;

    Table altered.

    SQL> desc system.mybook2;
    NameNull?Type
    ------------------------------------------------- ----------------------------
    BOOKIDNOT NULLNUMBER(10)
    BOOKNAMEVARCHAR2(40)
    PRESSTIMEDATE

    2) 刪除列ALTER TABLE ...DROP COLUMN

    SQL> alter table system.mybook2 drop presstime;

    Table altered.

    SQL> alter table system.mybook2 drop (author, presstime); //刪除多列
    Table altered.

    3)使用ALTER TABLE ...SET UNUSED

    對一個表刪除大量列時,可以使用ALTER TABLE ...SET UNUSED將要刪除的列設定為UNUSED狀態代替刪除操作,從而降低系統的響應率。但其佔用的儲存空間並未被釋放。

    SQL> alter table system.mybook2 set unused (press, presstime);

    Table altered.

    使用資料字典ALL_UNUSED_COL_TABS檢視被標記為UNUSED狀態的列的數量。

    SQL> select * from all_unused_col_tabs;

    OWNERTABLE_NAMECOUNT
    ------------------------------ ------------------------------ ----------
    SYSTEMMYBOOK22
    如果需要刪除標記為UNUSED的列,可以使用ALTER TABLE ...DROP UNUSED COLUMN語句

    SQL> alter table system.mybook2 drop unused column;

    Table altered.

    2.更新列

    1)修改列名

    語法如下:

    ALTER TABLE table_name

    RENAME COLUMN oldcolumn_name to newcolumn_name;

    2)修改列的資料型別

    執行更新列的資料型別操作時,需注意一下兩點:

  • 一般情況下,只能將資料的長度由短改長,而不能由長改短

  • 當表中沒有資料是,可以將資料的長度由長改短,也可以更改資料型別

    修改列的資料型別(包括數字列的精度),語法如下:

    ALTER TABLE table_name

    MODIFY column_name new_datatype;

    3)修改列的預設值

    注:如果對某個列的預設值進行更新,更改後的預設值只對後面INSERT操作起作用,對先前的資料不起作用。

    語法如下:

    ALTER TABLE table_name

    MODIFY (column_name DEFAULT default_value);

    3.重命名錶ALTER TABLE ...RENAME

    注:一般來說,使用者只能夠對自己所在模式中的表進行重新命名。

    SQL> alter table system.mybook2 rename to goodbook;

    Table altered.

    對錶進行重新命名操作非常容易,但影響卻非常大。雖然Oracle可以自動更新資料字典中表的外來鍵、約束和表關係等,但是還是不能夠更新資料庫中的儲存程式碼、客戶應用已經依賴於該表的其他物件。所有對於表的重新命名操作,需要謹慎。

    4.改變表的儲存表空間

    將表移動到另外一個表空間ALTER TABLE ...MOVE

    首先要檢視資料字典USER_TABLES,瞭解資料庫中的表空間資訊:

    SQL> select tablespace_name,table_name from user_tables;

    然後選擇將GOODBOOK表從SYSTEM表空間移動到TEMP031O表空間中:

    SQL> alter table goodbook move tablespace TEMP0310;

    5.刪除表定義DROP TABLE

    刪除一個表定義是,該表及表中的資料也將被刪除。

    SQL> drop table goodbook;

相關推薦

[Oracle命令] 管理

Oracle表管理 一、Oracle資料庫資料型別 二、建立表   1.語法如下: CREATE TABLE [ schema.]table_name ( Column_name data_type [ DEFAULT expression ] [

Oracle分割槽管理

–管理分割槽 應對哪種表應用分割槽功能; 1.大於2GB的表 2.含有1000萬條記錄以上的表,表中含有的資料越多,SQL操作的執行速度就會越慢。 3.將會含有大量資料的表。 4.強行拆分後可利於並行操作的表。 5

ORACLE分割槽管理的一些筆記

分割槽表的管理筆記(僅限於對普通表,即堆表的分割槽管理,IOT跟CLUSTER TABLE不再討論範圍內) 1. 增加分割槽(add partition)語法是:alter table xxx add partition…需要注意的是如果分割槽中存在maxvalue或default分割槽add partit

Oracle創建和事務管理

有效 reat 整體 eat 解決 nec pat serializa 二進制文件 Oracle的表創建和事務管理 - CURD,根據查詢結果創建新表 - 事務管理 - 什麽是事務 ,為什麽要用事務 - SQL99事務隔離級別 - Oracle事務

oracle命令查看結構及索引

建表 函數 註意 數據 上下 dex oracle數據庫 str set --查看oracle數據庫的單個表結構 select dbms_metadata.get_ddl(‘TABLE‘,‘TABLE_NAME‘) from dual; 括號裏面有兩個參數,第一個參數是我們

Oracle【二維管理:約束】

value light 成功 字段 註意 ont sed 刪除外鍵 img 1、簡單的表創建和字段類型最簡單的方式去創建表(沒有添加主鍵之類的約束條件)【Oracle的字段類型】number:數值類型--整數類型:number(a) 總長度a--小數類型:number(a,

Oracle學習——空間管理(二)

一、使用CREATE TABLESPACE 語句建立表空間 檢視系統預設表空間的位置語句:select t1.name,t2.name  from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;   1.建立本地表空

ORACLE 臨時空間管理

 臨時表空間和臨時段   臨時表空間用於存放排序、臨時表等資料,其資訊不需要REDO,因此臨時表的DML操作往往比普通表產生的REDO少很多。臨時表資料變化不產生REDO,UNDO資料變化產生REDO。臨時段不僅僅存在於臨時表空間中,也可能存在普通表空間。比如通過CTAS建立一張表,新表的資料放在

oracle-dba-空間與資料檔案管理

表空間與資料檔案管理 ORACLE資料庫應用系統ORACLE中介軟體DBMS資料檔案 邏輯結構:一個數據庫有多個表空間,一個表空間有多個段,一個段有多個區段,一個區段有多個數據塊,一個數據塊有多個作業系統資料庫塊 物理結構:一個表空間有多個數據

oracle system空間的管理

1、空間管理(字典所在,定義資訊,不放使用者資料) 單個數據檔案即可 設定自動擴充套件,設定bigfile 2、system如何備份 必須歸檔下才能在open下完成備份 a、熱備 b、rman備 非歸檔下只能進行冷備 使用archive log

oracle 基礎和管理 如何判斷某個中是否存在某個欄位?

問題 如何判斷某個表中是否存在某個欄位? 注意:表名和欄位名一定要大寫,否則結果不正確一: 檢查表名:select count(*) from user_TABLES where table_name = 表名(大寫);檢查欄位名:select count(*) from U

ORACLE 04 的建立與管理

一、實驗目的 1、掌握使用OEM工具建立、修改和刪除表 2、掌握使用SQL語句建立、修改和刪除表 3、掌握使用SQL語句插入、修改和刪除資料 4、理解各種約束的作用,並能使用OEM和BQL命令為表建立各種約束 二、實驗內容 分別使用OEM和SQL 語

Oracle 11g常用管理命令

首先,以oracle使用者登陸。 1、啟動ORACLE資料庫: 進入sqlplus環境,nolog引數表示不登入:$sqlplus /nolog 以管理員模式登入:$sqlplus / as sysd

Oracle 11g RAC 管理常用命令

1、檢查 CRS 狀態[[email protected] ~]$ crsctl check crsCRS-4638: Oracle High Availability Services is onlineCRS-4537: Cluster Ready Servi

Oracle UNDO空間的管理

undo表空間用於存放undo資料。當用戶執行DML操作時,undo資料被放在undo段,可以回退事物。執行一個事物時,新資料放在資料段中,如果事物存在問題,也可以用undo資料來恢復資料。Oracle的Undo有兩種方式: 一是使用undo 表空間,二是使用回滾段。   

oracle-hr查詢命令練習(超完整的select命令大全)

切換到 oracle的 hr使用者下面練習 1.  查詢工資大於12000的員工姓名和工資 Select initcap(concat(last_name,first_name)) "姓名",salary from employees where salary>

Oracle:本地管理空的由來

在Oracle8I的版本中,Oracle推出了一種全新的表空間管理方式:本地化管理的表空間。所謂本地化管理,

oracle:本地管理空間,管理機制

表空間是一種為段(表,索引等)提供空間的邏輯結構,所以,當在表空間中增加,刪除段的時候,資料庫就必須跟蹤這些

chkconfig命令管理開機自啟)

com 把他 目錄 rc.local pcb 設置ip 重啟 init.d evel   提供了一個簡單的命令行工具來維護/etc/rc[0-6].d目錄層次結構通過減輕系統管理員的直接操作任務,在這些目錄中的許多符號鏈接。僅是簡單的改變了符號鏈接,而非立即啟動或禁止一個服

oracle em企業管理器的安裝、配置及相關問題

密碼 技術分享 分享 control spa alt .com 企業管理 gre 2017-05-10 一、配置ORACLE_UNQNAME環境變量 二、重建EM資料庫:emca -repos recreate 三、配置EM賬號密碼:DBSNMP、SYSMAN 四、配置EM