oracle某列插入,修改表的列 oracle 添加列到指定位置 | 学步园
1.oracle中创建一张表,写法与sql server中的一样。SQL> create table Course2 ( cno char(8),3 cname varchar2(20),4 ccredit int,5 cpno char(8)6 );表已创建。但是,在写的过程中,发现cno这列的属性少写了一个not null。于是试着用原来sql server中的修改列属性的写法试了下,发
1.oracle中创建一张表,写法与sql server中的一样。
SQL> create table Course
2 ( cno char(8),
3 cname varchar2(20),
4 ccredit int,
5 cpno char(8)
6 );
表已创建。
但是,在写的过程中,发现cno这列的属性少写了一个not null。于是试着用原来sql server中的修改列属性的写法试了下,发现不行。
SQL> alter table Course alter cno char(8) not null;
alter table Course alter cno char(8) not null
*
第 1 行出现错误:
ORA-01735: 无效的 ALTER TABLE 选项
网上找了下,oracle中,修改列的属性的写法有点不同。
SQL>alter table Course MODIFY(cno char(8) not null)
SQL> /
表已更改。
SQL> desc course
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
CNO NOT NULL CHAR(8)
CNAME VARCHAR2(20)
CCREDIT NUMBER(38)
CPNO CHAR(8)
2.如果要添加一列怎么写呢?
sql server中的写法是:
Alter table course cdept char(8);
在oralce中写的试了下,能够运行成功,如下:
SQL> alter table course
2 add cdept char(8);
表已更改。
查看下此时的表的结构,如下:
SQL> desc course;
名称 是否为空? 类型
----------------------------------------- -------- ---------------------
CNO NOT NULL CHAR(8)
CNAME VARCHAR2(20)
CCREDIT NUMBER(38)
CPNO CHAR(8)
CDEPT CHAR(8)
3.如果要删除一列要怎么写呢?
sql server中的写法大家应该挺熟悉的,如下:
Alter table Course drop cpno;
在oracle中试了下,有错误,说缺少关键字:
SQL> alter table course
2 drop cdept;
drop cdept
*
第 2 行出现错误:
ORA-00905: 缺失关键字
那么缺少的是什么关键字呢?网上找了下原因,好像是column。这个关键字,添加进去再试了下,发现就可以了:
SQL> alter table course
2 drop column cdept;
表已更改。
此时再看下表的结构,cdept列真的删除了。
以下几个也是在创建表后,修改表结构是比较常用的,这边不一个个试过了,给大家参考:
1.想修改表Course中的属性cname VARCHAR2(20),长度修改为100
(只能从小到大,100-->20就不可以了)。
ALTER table course MODIFY(cname VARCHAR2(100));
2。如需要修改属性col1的名称为col2。
ALTER TABLE Course MODIFY(col1 VARHCAR2(50), col2 VARCHAR2(100));
3.仅修改字段名:
ALTER TABLE liwh_620 RENAME COLUMN device_number TO serial_number;
问题:使用scott登录Oracle以后,创建视图,提示“权限不够”,怎么解决?
回答:
这是因为scott这个帐户目前没有创建视图的权限。
解决方法为:
首先使用system帐户进行登录,其中“tigertiger”为安装Oracle时所指定的密码(可修改):
sqlplus system/tigertiger
然后执行:
grant create any view to scott
提示:授权成功。
执行:
exit
退出当前system帐户。
再使用sqlplus登录就可以创建视图了,如:
sqlplus scott/tigert
下面创建一个最简单视图:
create or replace view v1
as
select * from t1;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)