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;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐