oracle設(shè)置字段不可為空語(yǔ)句 如何用SQL設(shè)置一張表中所有的字段允許為空值?
如何用SQL設(shè)置一張表中所有的字段允許為空值?方法一、alter table goods_tmp ALTER COLUMN a DROP NOT NULL; --將字段a取消非空限制,字段少時(shí)可這樣做
如何用SQL設(shè)置一張表中所有的字段允許為空值?
方法一、alter table goods_tmp ALTER COLUMN a DROP NOT NULL;
--將字段a取消非空限制,字段少時(shí)可這樣做
方法二、在PLSQL里左邊樹型結(jié)構(gòu)里找到my table,在里面找到對(duì)應(yīng)的表,通過(guò)手動(dòng)操作更改相應(yīng)字段的約束。
方法三、如果你只是想原樣復(fù)制一下goods表的話
oracle下時(shí):
刪掉你現(xiàn)在數(shù)據(jù)庫(kù)里的goods_tmp表,然后執(zhí)行一下這個(gè)SQL:
create table goods_tmp as select * from goods; 這樣就把goods表完全一樣地復(fù)制成goods_tmp了。
oracle沒用的字段會(huì)占用空間嗎?
在oracle中字段沒用需要分情況:
1、當(dāng)為null的字段在一條記錄的最后,就是說(shuō)其后邊沒有非null的字段值時(shí),是不占空間的 ;
2、但當(dāng)為null的字段在一條記錄的中間,就是說(shuō)其后邊還有非null的字段值時(shí),將占一個(gè)字節(jié) 。
所以oracle建議在設(shè)計(jì)表結(jié)構(gòu)時(shí)盡量把可空的字段放到最后!
Oracle怎么些去重的語(yǔ)句,能不能來(lái)個(gè)范例?
給你舉個(gè)例子: 比如a表有這樣幾條數(shù)據(jù) id name
1 5
2 4
3 5
4 3那么你要查詢名字不同的 語(yǔ)句應(yīng)該是select distinc() from a 那么查詢到的結(jié)果應(yīng)該是 name
5 4 3 但是實(shí)際情況并不僅僅是這么簡(jiǎn)單 比如我想查詢name 不重復(fù)的所有數(shù)據(jù) 你就應(yīng)該用到 group by 分組 select distinct(), from a group by distinct 必須放在開頭 而且在查詢多個(gè)字段的時(shí)候需要跟上 group by 這樣才能得到你想要的結(jié)果
oracle已經(jīng)建好的表怎么修改字段大???
對(duì)二樓進(jìn)行補(bǔ)充字段類型為如果想改小,沒有數(shù)據(jù)可能直接用altertabletable_namemodifycolumndatatype;如果有數(shù)據(jù),改小的話可以會(huì)丟失數(shù)據(jù)。比如:表:
stu(namevarchar2(20))要將字段name的長(zhǎng)度改為10表中有一條數(shù)據(jù):name(華西村刀光劍影)長(zhǎng)度超過(guò)10,截取的時(shí)候必然要丟失數(shù)據(jù)。當(dāng)然如果表中的數(shù)據(jù)長(zhǎng)度都小于10,則可以用sql語(yǔ)句段來(lái)直接搞定。
beginaltertablestuadd(name2varchar2(10))
增加新字段updatestusetname2substr(trim(name),1,10)賦值給新字段altertablestudrop(name)
刪除原字段altertablesturenamecolumnname2toname將新字段改名end