Oracle 基本的SQL 操作

來源:互聯網
上載者:User

通過用戶端串連資料庫,進行相應的操作

一、訪問方式:SQL Plus ; PL Sql Developer

 以system帳戶串連資料庫,連結標識符是:orcl

1. 通過SQL Plus 串連訪問資料庫
   兩種方式:web訪問 http://localhost:5560/isqlplus/
   通過菜單直接進入命令列視窗
2.開啟PL/SQL Developer,FILE->new-->SQL Window

二、建立對象

   建立使用者及表如一個使用者名稱為school 密碼為school的使用者帳戶:
   Create user school
   Identified by school;
  為school使用者指派:串連到資料庫的許可權、在自己的模式中建立對象的許可權。               
   Grant create session,resource
   to school;
    建立表
    Oracle常用的欄位類型有
  CHAR 固定長度的字串
  VARCHAR2 可變長度的字串
  NUMBER(M,N) 數字型M是位元總長度, N是小數的長度
  DATE 日期類型
   樣本:
   CREATE TABLE "SCHOOL"."STUDENT" ( "SNO" VARCHAR2(9), "SNAME" VARCHAR2(20), "SSEX" VARCHAR2(2),    "SAGE" NUMBER, "SDEPT" VARCHAR2(20),   PRIMARY KEY ("SNO") VALIDATE )
   CREATE TABLE "SCHOOL"."COURSE" ( "CNO" VARCHAR2(4), "CNAME" VARCHAR2(40), "CPNO" VARCHAR2(4), "CCREDIT" NUMBER, PRIMARY KEY ("CNO") VALIDATE , FOREIGN KEY ("CPNO") REFERENCES "SCHOOL"."COURSE" ("CNO") VALIDATE )
   CREATE TABLE "SCHOOL"."SC" ( "SNO" VARCHAR2(9), "CNO" VARCHAR2(4), "GRADE" NUMBER, PRIMARY KEY ("SNO", "CNO") VALIDATE , FOREIGN KEY ("SNO") REFERENCES "SCHOOL"."STUDENT" ("SNO") VALIDATE , FOREIGN KEY ("CNO") REFERENCES "SCHOOL"."COURSE" ("CNO") VALIDATE )
  約束狀態
   enable validate:是預設,新舊資料同時滿足約束規則
   enable novalidate:舊資料可以不滿足,檢新插入的資料要滿足約束
   disable validate:不允許在表上執行任何DML操作,主要用在分區表,對於主鍵和唯一約事,會刪除相應的唯一索引,但約束狀態任可用
   disable novalidate資料可不滿足約束規則,對於主鍵和唯一約事,會刪除相應的唯一索引,

三、 查詢相關命令,以下是在SQL Plus中執行樣本
  1)使用者
  查看目前使用者的預設資料表空間
   SQL>select username,default_tablespace from user_users;
  查看目前使用者的角色
  SQL>select * from user_role_privs;
  查看目前使用者的系統許可權和表級許可權
  SQL>select * from user_sys_privs;
  SQL>select * from user_tab_privs;
  顯示當前會話所具有的許可權
  SQL>select * from session_privs;
  顯示指定使用者所具有的系統許可權
  SQL>select * from dba_sys_privs where grantee='GAME';
  2)表
  查看使用者下所有的表
  SQL>select * from user_tables;
  查看名稱包含log字元的表
  SQL>select object_name,object_id from user_objects
  where instr(object_name,'LOG')>0;
  查看某表的建立時間
  SQL>select object_name,created from user_objects where object_name=upper('&table_name');
  查看某表的大小
  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
  where segment_name=upper('&table_name');
  查看放在ORACLE的記憶體區裡的表
  SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
  3)索引
  查看索引個數和類別
  SQL>select index_name,index_type,table_name from user_indexes order by table_name;
  查看索引被索引的欄位
  SQL>select * from user_ind_columns where index_name=upper('&index_name');
  查看索引的大小
  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
  where segment_name=upper('&index_name');
  4)序號
  查看序號,last_number是當前值
  SQL>select * from user_sequences;
  5)視圖
  查看視圖的名稱
  SQL>select view_name from user_views;
  查看建立視圖的select語句
  SQL>set view_name,text_length from user_views;
  SQL>set long 2000; 說明:可以根據視圖的text_length值設定set long 的大小
  SQL>select text from user_views where view_name=upper('&view_name');
  6)同義字
  查看同義字的名稱
  SQL>select * from user_synonyms;
  7)約束條件
  查看某表的約束條件
  SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
  from user_constraints where table_name = upper('&table_name');
  SQL>select c.constraint_name,c.constraint_type,cc.column_name
  from user_constraints c,user_cons_columns cc
  where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
  and c.owner = cc.owner and c.constraint_name = cc.constraint_name
  order by cc.position;
  8)儲存函數和過程
  查看函數和過程的狀態
  SQL>select object_name,status from user_objects where object_type='FUNCTION';
  SQL>select object_name,status from user_objects where object_type='PROCEDURE';
  查看函數和過程的原始碼
  SQL>select text from all_source where owner=user and name=upper('&plsql_name');

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.