如何修改oracle資料庫中表的結構(欄位的名稱、長、型別、是否為空)?
改型別、長度、是否為空:
alter table mytable modify (mycol varchar2(20) not null);
要修改型別,字段必須是空的;
要修改長度,如果欄位是空的,完全可以改,如果欄位不空,則只能增加長度,不能減小;
要修改是否為空,字段必須符合constraint的要求
沒有辦法改欄位名稱
關於列名,沒有直接的方法改變。但是可以通過其他方法達到改變列名的目的。
例如:
表a結構如下:
id(number) name(varchar2(20)
------------------------------------
1 tom
2 mike
3 jhon
將列名name改變為name1
方法1.列複製法
1.增加乙個與name相同結構的字段name1
alter table a add(name1 varchar2(20));
2.將name中的資料複製到name1中
update a set name1=name;
3.刪除name列
alter table a drop column name;
4.修改完成
方法2.表複製法
1.將表a改名
alter table a rename to a1
2.建立新錶並複製資料
create table a(id,name1) as select * from a1
3.刪除表a1
4.修改完成
通過上面兩種方法,
重新檢索表a結果如下:
id(number) name1(varchar2(20)
------------------------------------
1 tom
2 mike
3 jhon
新增表字段:
alter table yourtable add newcolumn varchar(20) null
--刪除
alter table yourtable drop column columnname
--修改
alter table sales_provoder_info modify (buyer varchar() )
SQLyog中表和字段編碼方式修改
sqlyog在建立表時預設的表的編碼方式為latin1,但通常我們在插入和修改資料時會用到中文,所以通常會修改表的編碼格式,編碼格式的修改方式有兩種,一種是在建立表的同時修改表的編碼格式,另一種時建立後再修改編碼格式。方式一 建立表的同時修改編碼格式 create table if not exis...
oralce的TIMESTAMP型字段作為關聯條件
兩個表,表a的內容是乙個列表,表b的內容是其明細。a表,表名 head b表,表名 detail head表主鍵 字段 型 店鋪 varchar2 10 番號1 number 2 營業日 timestamp 6 番號2 number 6 detail表主鍵 字段 型 店鋪 varchar2 10 番...
oralce修改使用者密碼
1.win r開啟執行視窗,輸入cmd進入命令列 輸入sqlplus 輸入使用者名稱,輸入口令 如果是超級管理員sys的話需在口令之後加上as sysdba 進入sql命令列 2.連線成功後,輸入 select username from dba users 檢視使用者列表。3.若修改某乙個使用者密...