Oracle-數據庫增刪改查基本操作


一、創建數據表
1).創建不存在的新表:
 create table tname(
  Data_Name Date_Type [default][默認值]
 );
2).創建已存在表的副本
 create table emp1 as select * from emp;

二、插入數據
1).為部分字段批量插入數據
    insert into emp1(empno,ename,job) select empno,ename,job from emp;
2).為部分字段插入單行數據
    insert into emp1(ename,empno) values('QY','1610676710');
3.數據操作
增:insert into table_name(屬性名) values(對應的值);
       insert into table_name as select * from emp;
刪:drop--->針對表級,表框架結構的刪除
       drop table table_name;
       delete--->刪除數據
       delete table_name where condition;
改:alter   ---->更改表框架結構
       alter table table_name rename column sal to person_sal;
       alter table table_name rename new_table_name;
       alter table table_name modify sal varchar(10);----修改屬性的數據類型(注意更改該屬性時)
       alter table
       update  --->更新表中數據
       update table_name set ename='yuyu' where empno=7900;
查:select
       select * from emp;

三、約束
約束:primary key,foreign key,not null,unique,check;
1).主鍵Primary key和Unique區別:
  主鍵(在表中只有一個)和唯一性約束(表中允許存在多個)
  主鍵(不允許有空值)和唯一性約束(表中允許存在多個空值)
2).帶有約束名的約束條件
  A.創建主鍵約束(四種方式)
     ---1----
    create table table_name(
      ename varchar2(20) primary key
    );
     ---2----
    create table table_name(
      ename varchar2(20),
      primary key(ename)
    );
     ---3----
    create table table_name(
      ename varchar2(20) constraint ename_cons primary key
    );
    ---4----
    create table table_name(
      ename varchar2(20) ,
      constraint ename_cons primary key(ename)
    );
  B.添加約束名
   alter table emp add constraint  ename_cons primary key(ename);
  C.刪除約束名
   alter table emp drop constraint  ename_cons;
  D.查看約束名(根據user_constraints這個表)、
    select constraint_name,table_name,constraint_type|column_name|column_type from user_constraints where table_name=一定要大寫;

四、游標補充
1).ref cursor
當需要將游標與不同的查詢語句建立關聯時,類似於指針,輸入動態游標,即只有運行時才知道這條查詢;
--格式:
type cursor_name is ref cursor [return return_type];--創建游標
cursor_variable cursor_name;--聲明游標
open cursor_variable for select_statement;--打開游標
close cursor_variable;--關閉游標
注:1).游標類型本身可以在包中定義,但是游標變量不能在包中定義
    2).游標變量可以在客戶端與服務器之間傳遞,但不能在兩個服務器之間傳遞
    3).不能通過動態sql使用游標變量
    4).PL/SQL的index-by表,嵌套表和可變數組不能存儲游標變量,表和視圖不能存儲ref cursor引用類型的列
    5).能用靜態游標,不用動態
2).sys_refcursor
主要用於在過程中返回結果集
舉例、
create ir replace procedure mypro(cur out sys_refcursor) as
begin
open cur for select * from emp;
end mypro;
/
客戶端:
var cur refcursor;
exec mypro(:cur);
 


免責聲明!

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



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