第一篇:Oracle05表操作和約束(范文模版)
一、DDL數據定義語言 1.創建表:create table 表名要求:
1.必須以字母開頭
2.必須在1-30個字符之間
3.必須只能包含A-Z,a-z,0-9,$,_,# 4.必須不能和用戶定義的其他對象重名 5.必須不能是Oracle的保留字 例如: 方式一:
create table student(stu_no number(11), name varchar(32), gender char(5), age number(3)default 19//為字段設置默認值);Create table test1(ID char(11), Name carchar2(24), Age number(3)default 19);方式二:子查詢建表
Create table user_info As
select first_name,salary,dept_id From s_emp;2.刪除表:drop table 例如,drop table studentzxf;3.修改表:alter table Create table tal(Stu_no number(11), Name varchar2(32));1.增加一列
Alter table tal add age number(3);2.增加多列
Alter table tal add(address varchar2(32),birthday date);3.刪除一列
Alter table tal drop column address(列名);4.刪除多列
Alter table tal drop(age,birthday);5.邏輯刪除列
Alter table tal set unused column name;Alter talbe tal drop unused columns;//在數據庫不繁忙的時候用 Oracle在設計的時候,沒有考慮可逆性 6.修改一列
Alter table tal modify stu_no number(20);//將原來的長度為11 修改為長度為20 修改列時注意:
考慮現有數據的安全性(包括數據的類型,長度),修改長度是 只能往大改 如果表中有數據,不可以修改類型,只有當表中沒數據了才能修改類型 修改多列
Alter tabale tal modify(stu_no number(11)not null,name char(20));7.重命名列
Alter table tal rename column stu_no to s_no;8.更改約束
Alter table tal add constraint tal_pk primary key(s_no);9.刪掉約束
Alter table test4 drop constraint tal_pk;10.重命名表名
Rename tal to 新表名 11.添加外鍵約束
ALTER TABLE tal ADD CONSTRAINT STUDENT_FK FOREIGN KEY(dept_no)REFERENCES dept(dept_no);
二、DML數據操縱語言
1.插入數據:insert 例如: insert into Student values(1,’Jack’);//按表中的自然順序逐個插入數據
insert into student(stu_no,name)values(1,’Jack’);//指定字段插入值 2.刪除數據:delete from[tablename]where… 例如: delete from testdefault where age = 19;3.修改數據:update[tablename]set a = exp1 where b = exp2 如果沒有限定條件,則會修改整張表中的數據,即修改整列。例如: update Student set age = 24 where name = ‘jack’;也可一次性寫入多條insert語句一次執行完畢。也可加載腳本(.sql文件)命令@+路徑/...sql 4.truncate截斷表
delete刪除時會產生日志信息的。
truncate刪除數據時不生成日志信息,所以效率快,但也不可逆。truncate截斷后會釋放表空間,而delete并不釋放表空間。
三、約束
考慮數據庫的完整性約束 三方面:1.實體完整性
2.參照完整性
3.用戶自定義完整性 5種約束:
Not null 非空約束
(nk)例:Create table stu_info(S_no char(11)not null, S_name varchar2(24)not null, S_age number(3));Unique 唯一約束(uk)(只保證唯一,不保證不為空,多條記錄的值都可以為空,因為Null和null是不相等的,不會提示違反了唯一性)方式一:(列級約束)例:Create table stu_info(S_no char(11)unique not null, S_name varchar2(24)not null, S_age number(3));方式二:(表級約束)例:Create table stu_info(S_no char(11)not null, S_name varchar2(24)not null, S_age number(3), Constraint stu_info_uk unique(S_no,S_name));//約束名為stu_info_uk Primary key 主鍵約束(pk)唯一且非空 方式一:(列級約束)例:create table test2(C1 number(3)constraint test2_pk primary key, C2 number(3));方式二:(表級約束)例:create table test2(C1 number(3), C2 number(3), Primary key(c1,c2));c1 , c2 組合起來是唯一的,c1,c2單獨看不一定是唯一的 Atler table tablename add constraint 主鍵名稱primay key
表級約束可以約束很多列,可以定義聯合主鍵,而列級約束是做不到的。
Foreign key 外鍵約束(fk)
要求引用另一張表中已存在的值(主鍵、唯一鍵)
例:create table parent(C1 number(3)primary key, C2 number(3));Create table child(C1 number(3)primary key, C2 number(3)references parent(c1));先建父表再建子表。
不能隨便刪除,刪除時只能先刪子表記錄再刪父表;刪除表時同理。插入數據時先給父表插,再給子表插。
Drop table parent cascade cinstraint;//刪除表時,如果想先刪除父表,子表不變 例:create table parent(C1 number(3)primary key, C2 number(3));Create table child(C1 number(3)primary key, C2 number(3)references parent(c1)on delete cascade);//刪除記錄時切斷關系,刪除了子表中的記錄再刪除父表
級聯刪除:世紀是先刪除子表的記錄,再刪除父表的記錄。表都存在。學生表:學號 姓名 性別
成績表:成績編號 學號 成績 課程編號 課程表:課程編號 課程名稱
外鍵:
成績表里面學號應該是學生表
成績表里面的課程編號應該是課程表里面的課程編號
Create table student(sno number primary key, name varchar2(10),sex varchar2(2))Create table score(scno number primary key,sno number not null,sco number(5,2),cno number not null references course(cno))Create table course(cno number primary key,name varchar2(20));Alter table score add constrain fk_stuandscore foreign key(sno)references student(sno);Check 檢查約束(ck)方式一:(列級約束)
例:create table test3(C1 number(3)check(c1<150), C2 number(3)check(c2 is not null));方式二:(表級約束)
例:Create table test3(C1 number(3), C2 number(3), Check(c1 = c2));
第二篇:oracle表空間管理及操作實用案例
Oracle
表空間管理及操作詳解(附帶案例)
一:表空間概述
表空間是數據庫的邏輯組成部分,從物理上講,數據庫數據存放在數據文件中;數據庫邏輯上講是由一個或者多個表空間組成,數據文件則是存放在表空間中,表空間有一個或者多個數據文件組成即表空間有數據文件構成的。
數據庫,表空間,段,區,塊,按大小排列依次是:數據庫---》表空間-----》段-----》區----》塊。
1.建立表空間的作用:
(1.)控制數據庫占用的磁盤空間。(2).dba可以將不同的數據類型部署到不同的位置,這樣有利于提高i/o性能,同時有利與備份和恢復等管理操作。
二:管理表空間和數據文件。
(1)建立表空間create tablespace;一般情況下建立表空間是特權用戶或者dba來執行的,如果其他用戶來創建表空間,則用戶建必須要具有create tablespace的系統權限。(2)建立數據表空間
在建立數據庫后,為便于管理表,最好建立自己的表空間。
create tablespace sp02 datafile 'd:testsp02.dbf' size 20m uniform size 128k 說明:執行完上述命令后,會建立名稱為sp02的表空間,并為該表空間建立名稱為sp02.dbf的數據文件,區的大小為128k。(3.)在表空間建表
create table tablesp02(ID number(5),name varchar2(20))tablespace sp02(4)顯示當前用戶擁有哪些表。
select * from tab;
(5).知道表空間名,顯示該表空間包括的所有表。
select * from all_tables where tablespace_name='表空間名'。
注:擁有權限不同的用戶在進行以上操作得到的結果可能不同。System可以查看得到某空間的所擁有表。(比如users表空間)(6)知道表名,查看該表屬于那個表空間。
select TABLESPACE_NAME, TABLE_NAME from user_tables where TABLE_NAME='EMP';(7)知道表名,查看該表屬于那個表空間,屬于哪個用戶。
select owner,TABLESPACE_NAME, TABLE_NAME from all_tables where TABLE_NAME='EMP';(8)改變表空間的狀態 使表空間可讀寫
alter tablespace 表空間名 read write;
刪除表空間,一般情況下由特權用戶或者dba來操作。具有drop tablespace系統權限。
drop tablespace ‘表空間’includeing contens and datafiles;
說明:includeing contens表示刪除表空間時,刪除該空間的所有數據庫對象而datafiles表示將數據庫文件也刪除。(9)改變表空間的狀態(1)使用空間脫機
alter tablespace 表空間名 offline(2)使用空間聯機
alter tablespace表空間名online(3)只讀表空間
建立表空間時,表空間可以讀寫,如果不希望在表空間上執行update,delete,insert操作。那么可以將表空間修改為只讀。alter talbespace sp01 read only;
三:移動數據文件:
(1)確定數據文件所在的表空間(知道表屬于哪個表空間)Select tablespace_name from dba_data_files where file_name='D:TEST 主站蜘蛛池模板: 中文字幕aⅴ人妻一区二区| 精品乱码一区内射人妻无码| 久久精品国产国产精品四凭| 国产午夜精品一区二区三区嫩草| 一本久道综合色婷婷五月| 国产欧美精品一区二区三区四区| 一二三四区无产乱码1000集| 亚洲婷婷开心色四房播播| 久久香蕉综合色一综合色88| 国产成人无码视频一区二区三区| 亚洲欧美va在线播放| 国产在线一区二区香蕉 在线| 亚洲中文字幕无码天堂男人| 欧美国产亚洲日韩在线二区| 东京热人妻系列无码专区| 亚洲av无码乱码国产精品| 亚洲性无码一区二区三区| 人人爽人人澡人人高潮| 欧美性受xxxx黑人猛交| 国产精品中文原创av巨作首播| 黄网站色视频免费观看| 欧美情侣性视频| 亚洲制服无码一区二区三区| 精品国产一区二区三区色欲| 日韩免费视频| 中文av岛国无码免费播放| 欧美人妻少妇精品久久黑人| 芙宁娜被?吸乳羞羞A片| 18禁在线永久免费观看| 国产精品r级最新在线观看| 国产av无码专区亚洲av麻豆| 免费无码精品黄av电影| 亚洲另类在线制服丝袜国产| 午夜无码性爽快影院6080| 国产无遮挡又黄又爽不要vip软件| 久久好在线视频| 国产精品久久久久久久久久免费| 男女吃奶做爰猛烈紧视频| 无码中文人妻在线一区二区三区| 狠狠色丁香婷婷综合久久来来去| 女女互揉吃奶揉到高潮视频|