Oracle_創表,改表,增刪改,序列,scott用戶使用(3)

目錄

 

一主要數據類型,創建表格

二.修改表結構

三.數據的增刪改

四.序列的使用(主鍵賦值)

五.scott用戶介紹與激活 


一主要數據類型,創建表格

  • varchar -- 存放定長的字符數據,最長2000個字符;
  • varchar2 -- 存放可變長字符數據,最大長度爲4000字符。
  • CLOB文本類型的數據
  • BLOB一般用來存放除文本類型的數據
  • 創建表格
    • -- 創建表格
      create table person(
             pid number(20),
             pname varchar(10)
      );

       

二.修改表結構

  • 1.添加一列
    •  
      -- 增加一列
      alter table person add gender number(1);

       

  • 2.修改列類型
    • -- 修改表字段類型,char表示固定長度類型
      alter table person modify gender char(1);
  • 3.修改列名稱
    •  
      -- 修改列名稱
      alter table person rename column gender to sex;

       

  • 4.刪除一列 
    • -- 刪除一列
      alter table person drop column sex;

       

  • 5.注意:如果要修改多列需使用括號

    • -- 修改多列類型
      alter table person modify (pid number(12),PNAME VARCHAR2(11)); 
      
      --添加多列 
      alter table test add (pid int, PNAME int); 
      
      --刪除多列
      alter table test drop (pid,PNAME);

       

三.數據的增刪改

注意:髒數據產生情況

  • 1.添加一條記錄
    •  
      -- 添加一條數據
      insert into person(pid,pname) values(2,'張三');
      -- 在java中connection事務是自動提交,此時並沒有工具爲我們自動提交
      -- 如果不寫提交,此時爲髒數據
      commit;
      
      
      -- 一般來說主鍵字段都是由序列自動生成的,不需要我們制定
      -- 文章下方有序列的基本介紹

       

  • 2.修改一條記錄
    •  
      -- 修改一條數據
      update person set pname = '李四' where pid=1;
      commit;

       

  • 3.刪除操作
    • A.刪除全部記錄
      •  
        -- 刪除表中全部記錄,這表語句等同於一條一條記錄刪除
        delete table person;

         

    • B.刪除表結構
      •  
        -- 刪除表結構
        drop table person;

         

    • C.先刪除表結構,在創建表結構
      • -- 等同於刪除表中全部記錄
        -- 數據量大的情況下,並且在表中帶有索引的情況下,該操作效率其高。
        -- 根據索引的特性,查詢快,刪除慢。 
        truncate table PERSON;
        
        -- 以上是正常情況
        -- 不正常情況報錯:ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效
        
        -- 解決方法如下:
        select session_id from v$locked_object;
        
        -- 根據查詢到的session_id獲取sid
        SELECT sid, serial#, username, osuser FROM v$session where sid = 142;
        
        -- 根據查詢到的sid和serial殺死服務
         ALTER SYSTEM KILL SESSION '142,38';
        
        --問題解決

         

四.序列的使用(主鍵賦值)

  • 1.序列的基本介紹
    • -- 序列的基本使用和介紹
      -- 序列主要用於id字段的自增長使用
      
      -- 創建序列,該序列與數據表格無緊密的關係,只有邏輯關係
      -- 所以只要看得出是該表格的序列即可 
      create sequence s_person;
      
      -- 以下爲創建序列後產生的文件
  • 2.查看序列方式
    •  
      -- 序列不屬於任何表格,但是可以和表格邦定。
      -- 序列默認是從1開始,然後遞增。
      -- 可以通過以下方式查看序列
      select s_person.nextval from dual;
      select s_person.currval from dual;
      
      --上面的使用順序必須要正確,因爲currval表示返回當前值,但是不使用nextval是沒有值的
      -- nextval從1開始遞增
      
      -- dual:虛表,只是爲了補全語法而存在,比如上方語法根本沒有要查詢的表格,但是form字段必須要有。

       

      •  如果先使用currval就會報錯(我這是plsql亂碼原因
  • 3.完整的使用方式
    • -- 創建序列
      create sequence s_person;
      -- 使用序列插入數據
      insert into person(pid,pname) values(s_person.nextval,'王武');
      -- 提交
      commit;

       

  • 4.創建序列其他擴展屬性介紹

    • ‘[]’中括號表示可選可不選

    • INCREMENT BY n:每次遞增的數量,默認1

    • START WITH n:從哪個數量開始

    • MAXVALUE/MINVALUE n|NOMAXVALUE:最大值和最小值

    • CYCLE|NOCYCLE:表示遞歸的數據循環(這個基本不會用的,id就是爲了保證唯一,不可以循環)

    • CACHE n|NOCACHE:緩存,設置的n表示會在遞歸到之前先緩存多少數值

五.scott用戶介紹 

  • scott用戶中數據不是很多也不是很複雜,但是可以模擬各種情況
  • 1.解鎖scott用戶
    • -- 解鎖scott用戶
      alter user scott account unlock;
      -- 修改scott用戶密碼(其他用戶也可以使用該語句修改密碼,但是權限要足夠)
      alter user scott identified by tiger;
      -- 登陸scott用戶

       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章