日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle增加修改删除字段/主键

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle增加修改删除字段/主键 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

修改字段名稱

alter table xgj rename column old_name to new_name;

修改字段類型

alter table tablename modify (column datatype [default value][null/not null],….);

栗子

假設表xgj,有一個字段為name,數據類型char(20)。

create table xgj( id number(9) , name char(20) )

1、字段為空,則不管改為什么字段類型,可以直接執行:

SQL> select * from xgj ;ID NAME ---------- --------------------SQL> alter table xgj modify(name varchar2(20));Table alteredSQL>

2、字段有數據,若兼容,改為varchar2(20)可以直接執行:

--緊接著第一個情況操作,將name的類型改為創建時的char(20) SQL> alter table xgj modify(name char(20));Table altered --插入數據 SQL> insert into xgj(id,name) values (1,'xiaogongjiang');1 row insertedSQL> select * from xgj;ID NAME ---------- --------------------1 xiaogongjiangSQL> alter table xgj modify(name varchar2(20));Table alteredSQL> desc xgj; Name Type Nullable Default Comments ---- ------------ -------- ------- -------- ID NUMBER(9) Y NAME VARCHAR2(20) Y SQL> alter table xgj modify(name varchar2(40)); Table alteredSQL> alter table xgj modify(name char(20)); Table altered

3、字段有數據,當修改后的類型和原類型不兼容時 ,執行時會彈出:“ORA-01439:要更改數據類型,則要修改的列必須為空”

栗子:

--建表 create table xgj (col1 number, col2 number) ; --插入數據 insert into xgj(col1,col2) values (1,2); --提交 commit ; --修改col1 由number改為varchar2類型 (不兼容的類型) alter table xgj modify ( col1 varchar2(20))

解決辦法:

  • 修改原字段名col1 為col1 _tmp
alter table xgj rename column col1 to col1_tmp;
  • 增加一個和原字段名同名的字段col1
alter table xgj add col1 varchar2(20);
  • 將原字段col1_tmp數據更新到增加的字段col1
update xgj set col1=trim(col1_tmp);
  • 更新完,刪除原字段col1_tmp
alter table xgj drop column col1_tmp;

總結:
1、當字段沒有數據或者要修改的新類型和原類型兼容時,可以直接modify修改。
2、當字段有數據并用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。


添加字段

alter table tablename add (column datatype [default value][null/not null],….);

使用一個SQL語句同時添加多個字段:

alter table xgjadd (name varchar2(30) default ‘無名氏’ not null,age integer default 22 not null,salary number(9,2));

刪除字段

alter table tablename drop (column);

創建帶主鍵的表

create table student ( studentid int primary key not null, studentname varchar(8), age int);

1、創建表的同時創建主鍵約束
(1)無命名

create table student ( studentid int primary key not null, studentname varchar(8), age int);

(2)有命名

create table students ( studentid int , studentname varchar(8), age int, constraint yy primary key(studentid));

2、刪除表中已有的主鍵約束
(1)無命名
可用 SELECT * from user_cons_columns;
查找表中主鍵名稱得student表中的主鍵名為SYS_C002715

alter table student drop constraint SYS_C002715;

(2)有命名

alter table students drop constraint yy;

3、向表中添加主鍵約束

alter table student add constraint pk_student primary key(studentid);

總結

以上是生活随笔為你收集整理的Oracle增加修改删除字段/主键的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。