-
約束的作用
?1.定義規(guī)則;
? 2.確保數(shù)據(jù)的完整性;
oracle中5個(gè)重要的約束
? 1.非空約束
? 2.主鍵約束
? 3.外鍵約束
? 4.唯一約束
? ?5.檢查約束
查看全部 -
delete from table_name [where conditions];
1.無(wú)條件刪除
create table testdel
as
select * from userinfo;
select * from testdel;
delete from testdel;
select * from testdel;
2.有條件刪除--加上where
select username from userinfo;
delete from userinfo where username='yyy';
select username from userinfo;
查看全部 -
1.truncate和 delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義)
drop語(yǔ)句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger),索引(index); 依賴于該表的存儲(chǔ)過(guò)程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。
2.delete語(yǔ)句是dml,這個(gè)操作會(huì)放到rollback segement中,事務(wù)提交之后才生效;如果有相應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā)
truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger。
3.delete語(yǔ)句不影響表所占用的extent, 高水線(high watermark)保持原位置不動(dòng)
顯然drop語(yǔ)句將表所占用的空間全部釋放
truncate 語(yǔ)句缺省情況下見空間釋放到 minextents個(gè) extent,除非使用reuse storage; truncate會(huì)將高水線復(fù)位(回到最開始)。
4.速度,一般來(lái)說(shuō): drop> truncate > delete。
5.安全性:小心使用drop 和truncate,尤其沒(méi)有備份的時(shí)候.否則哭都來(lái)不及。
6.使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句. 回滾段要足夠大. 想刪除表,當(dāng)然用drop
想保留表而將所有數(shù)據(jù)刪除. 如果和事務(wù)無(wú)關(guān),用truncate即可. 如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete
如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入/插入數(shù)據(jù)。查看全部 -
1.無(wú)條件更新
update userinfo set userpwd = '111111';
select userpwd from userinfo;
更改2個(gè)字端
update userinfo set userpwd='111',email='111@126.com';
2.有條件更新
update userinfo set userpwd='123456' where username='xxx';
select username,userpwd from userinfo;
查看全部 -
復(fù)制表數(shù)據(jù)
1.在創(chuàng)建表時(shí)復(fù)制?
create table userinfo_new?
as
select * from userinfo;
desc userinfo_new;
把userinfo表架構(gòu)和內(nèi)容復(fù)制給userinfo_new表;
create table userinfo_new1
as?
select id,username from userinfo;
僅僅復(fù)制2個(gè)字段,包含其中值到新表;
2.在添加時(shí)復(fù)制
注意數(shù)據(jù)類型2個(gè)表需要匹配
insert info userinfo_new
select * from userinfo;
插入復(fù)制過(guò)來(lái)的所有字段數(shù)據(jù);
insert info userinfo_new(id,username)
select id,username from userinfo;
2個(gè)表字段內(nèi)容可以不同,但數(shù)據(jù)類型必須一直才可以執(zhí)行成功.
查看全部 -
1.向表中所有字段添加值
不指定字段名稱,默認(rèn)表字段排列
insert into userinfo
values (1,'xxxx','123','xxxxx@126.com',sysdate);
sysdate 獲取當(dāng)前日期
2.向表中指定字段添加值
insert info userinfo(id,username,userpwd)
values(2,'yyy','123');
select username,userpwd from userinfo;
添加數(shù)據(jù)注意表設(shè)定某些字段是否可以為空的。
create table userinfo1
(
id number(6,0),
regdate date default sysdate
);
insert info userinfo1(id)
values('1');
一定要指定字段名稱,有默認(rèn)值的會(huì)自動(dòng)填充.
alter table userinfo
modify email default '無(wú)';
修改表字段的默認(rèn)值
insert into userinfo(id)
values(3);
select id,email from userinfo;
如果email字段不想用默認(rèn)值
insert info userinfo(id,email)
values(4,'aaaa');
查看全部 -
刪除表
truncate table 比delete速度快很多
truncate 也成為截?cái)啾?,清空表?shù)據(jù),保存表結(jié)構(gòu)
drop 把表的結(jié)構(gòu)也刪除清空,數(shù)據(jù)也清除;
查看全部 -
修改表---修改表的結(jié)構(gòu)
desc userinfo;
alter table userinfo add remarks varchar2(500);
desc userinfo;
修改字段長(zhǎng)度內(nèi)容
alter table userinfo modify remarks varchar2(400);
修改數(shù)據(jù)類型
alter table userinfo modify userpwd number(6,0);
alter table userinfo drop column remarks;
該字段名字
alter talbe userinfo rename column email to new_email;
修改表名字
rename table_name to new_table_name;
rename userinfo to new_userinfo;
查看全部 -
字符型
固定長(zhǎng)度
char(n) n最大2000
nchar(n) n最大1000--存中文多
變動(dòng)長(zhǎng)度的
varchar2(n) n最大2000,支持unicode
nvarchar2(n)--n最大1000,支持unicode
數(shù)值類型
number(p,s)
number(5,2) 123.45 有效數(shù)字是5位,可以保留2位小數(shù)---用的比較多
float(n)-----相對(duì)來(lái)說(shuō)用number類型的多
日期類型
date------可以精確到s
timestamp------可以精確到小數(shù)秒,即毫秒
其他類型
blob可以存放4g的數(shù)據(jù)----二進(jìn)制形式存放的數(shù)據(jù)
clob可以存4g數(shù)據(jù)-----字符串形式存儲(chǔ)的
查看全部 -
number(p,s)
p指有效數(shù)字,總共長(zhǎng)度
查看全部 -
刪除表空間,和其數(shù)據(jù)文件
drop tablespace tablespace_name [including contents];
drop tablespace test1_tablespace including contents;
注意contents后面有s
查看全部 -
對(duì)數(shù)據(jù)文件進(jìn)行添加,刪除的操作,以及查看數(shù)據(jù)文件位置的命令
alter tablespace test1_tablespace add datafile 'test2_file.dbf' size 10m;
select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
alter tablespace tablespace_name drop datafile 'filename.dbf';
tips:不能刪除創(chuàng)建表空間第一個(gè)數(shù)據(jù)文件;
alter tablespace test1_tablespace drop datafile 'test2_file.dbf';
查看全部 -
修改表空間,都是指修改永久的表空間
設(shè)置聯(lián)機(jī)或脫機(jī)狀態(tài)的表空間
一般新建的表,都是默認(rèn)聯(lián)機(jī)的狀態(tài)
alter tablespace tablespace_name online/offline;
如果表空間設(shè)置成脫機(jī),我們就不能使用它了。
設(shè)置表空間只讀或者可讀寫的狀態(tài)
alter tablespace tablespace_name read only
alter tablespace tablespace_name read write
默認(rèn)表空間是可讀寫的狀態(tài)
但是在聯(lián)機(jī)狀態(tài)才可以讀或讀寫,脫機(jī)狀態(tài)不可以修改讀寫狀態(tài)的。
select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';
online ,read write 也展示online
read only
查看全部 -
查看用戶的表空間
dba_tablespaces 系統(tǒng)管理員的表字典--system可以查看,sys倒不能查看
user_tablespaces 普通用戶的表字典
scott 可以查看user_namespaces 不可以查看dba_namespaces;
dba_users 數(shù)據(jù)字典,只有管理員級(jí)別的可以查看
user_users 普通管理都可以查看的數(shù)據(jù)字典
設(shè)置用戶的默認(rèn)或臨時(shí)的表空間
alter user system default tablespace system;
select default_tablespace,temporary_tablespace from dba_users wehre username = 'SYSTEM';
普通用戶沒(méi)有設(shè)置表空間的權(quán)限
查看全部 -
表空間是如何分類的
數(shù)據(jù)庫(kù)都是存放在表空間里面的
1.永久表空間---永久存放的空間,表,視圖等;
2.臨時(shí)表空間---數(shù)據(jù)的中間執(zhí)行過(guò)程,執(zhí)行完了就自動(dòng)釋放,不永久保存
3.undo表空間---事務(wù)處理,修改之前數(shù)據(jù)的保存,這樣就可以進(jìn)行數(shù)據(jù)回滾操作。
查看全部 -
scott 是默認(rèn)用戶,默認(rèn)是鎖定的
alter user username account 解鎖命名?
username----用戶名
alter user username account unlock;
alter user username account lock;
example:alter user scott account unlock;
connect scott/tiger tiger 為默認(rèn)密碼
connect 是命令,不是sql語(yǔ)句,所以不用分號(hào)結(jié)尾
sql語(yǔ)句必須分號(hào)結(jié)尾
命令不需分號(hào)結(jié)尾
查看全部
舉報(bào)