一、創建數據表
1).創建不存在的新表:
create table tname(
Data_Name Date_Type [default][默認值]
);
2).創建已存在表的副本
create table emp1 as select * from emp;
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--->針對表級,表框架結構的刪除
增:insert into table_name(屬性名) values(對應的值);
insert into table_name as select * from emp;
刪:drop--->針對表級,表框架結構的刪除
drop table table_name;
delete--->刪除數據
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 --->更新表中數據
改: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
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);