谁知道如何在oracle中修改表的栏位!(用sql语句)

pausing 2001-12-10 04:35:20
...全文
874 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabbit 2001-12-11
  • 打赏
  • 举报
回复
那是你在这个字段建了分区了吧?

pausing 2001-12-11
  • 打赏
  • 举报
回复
首先谢谢cft007(菜鸟一只)的解囊相助!一点份请笑纳!不过我再用你的ALTER TABLE distributors RENAME COLUMN address TO city;时出现错误:ORA-14155: PARTITION 或 SUBPARTITION 关键字丢失!请大虾帮忙到底!
cft007 2001-12-11
  • 打赏
  • 举报
回复
ALTER TABLE
名称
ALTER TABLE — 更改表属性
语法
ALTER TABLE table [ * ]
ADD [ COLUMN ] column type
ALTER TABLE table [ * ]
ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE table [ * ]
RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
RENAME TO newtable
ALTER TABLE table
ADD table constraint definition
Inputs
table
试图更改的现存表的名称.
column
现存或新的列名称.
type
新列的类型.
newcolumn
现存列的新名称.
newtable
表的新名称.
table constraint definition
表的新的约束定义.

New table constraint for the table

输出
ALTER
从被更名的列或表返回的信息.
ERROR
如果一个列或表不存在返回的信息.
描述
ALTER TABLE 变更一个现存表的定义.ADD COLUMN 形式用与 CREATE TABLE一样的语法向表中增加一个新列/字段。ALTER COLUMN 形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只对新插入的行有效。RENAME 子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。ADD table constraint definition 子句用与 CREATE TABLE一样的语法向表中增加一个新的约束。

如果要改变表的属性,你必须是表的所有者.

注意
COLUMN 关键字是多余的,可以省略.
如果"*"跟在一个表名后面,表示该命令要对该表和所有继承级别低于该表的表进行操作;缺省时,该属性(更改)不会增加到任何子表或修改任何子表的相关名称。当增加或修改一个上级表(译注:继承级别高的表)的属性时总是应该这样的。否则,象下面这样的在继承级上进行的查询

SELECT NewColumn FROM SuperClass*
将不能工作,因为子表会比上级表少一个属性。
在目前的实现里,新列/字段的缺省(值)和约束子句会被忽略。你可以随后用 ALTER TABLE 的 SET DEFAULT 形式设置缺省(值)。(你还不得不用 UPDATE 把已存在行更新为缺省值。)

在目前的实现里,只有 FOREIGN KEY 约束可以增加到表中.要创建或者删除一个唯一约束,可以创建一个唯一索引(参阅 CREATE INDEX).要想增加 check (检查)约束,你需要重建和重载该表,用的参数是 CREATE TABLE 命令的其他参数.

要修改表的结构,你必须是表的所有人。不允许更改系统表结构的任何部分。PostgreSQL 用户手册 里有关于继承的更多信息.


请参考 CREATE TABLE 部分获取更多有效参数的描述.

用法
向表中增加一个 VARCHAR 列:
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
对现存列改名:
ALTER TABLE distributors RENAME COLUMN address TO city;
对现存表改名:
ALTER TABLE distributors RENAME TO suppliers;
向表中增加一个外键约束:
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL
兼容性

SQL92ADD COLUMN 形式是兼容的,除了上面说的缺省(值)和约束外。ALTER COLUMN 形式是完全兼容的。
SQL92 对 ALTER TABLE 声明了一些附加的Postgres目前还不直接支持的功能:

ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
增加或删除表的约束(比如象检查约束,唯一约束或外键约束)。要创建或删除一个唯一约束,对应地创建或删除一个唯一索引,要修改其他类型的约束,你需要重建和重载该表,使用 CREATE TABLE  命令的其他参数.
例如,删除表 distributors 的任何约束:

CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;
ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
前,要删除一个现存的列,表必须重新创建和重新装载:
CREATE TABLE temp AS SELECT did, city FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors (
did DECIMAL(3) DEFAULT 1,
name VARCHAR(40) NOT NULL,
);
INSERT INTO distributors SELECT * FROM temp;
DROP TABLE temp;
重命名列/字段和表名是 PostgreSQL 扩展。SQL92 没有提供这些。
zxlnet 2001-12-11
  • 打赏
  • 举报
回复
oracle的column name建好后就不能修改。
oracle一个instance对应着一个DB。
pausing 2001-12-11
  • 打赏
  • 举报
回复
不好意思没说清楚!我在create table 时,把栏位名称写错了,如何在不删除表的情况下,用sql语句来修改栏位名称!
还有在oracle几个数据库(不是实例)使用用户来区分的对吗!不同的用户登入不同数据库!是这样的吗!
panther_totem 2001-12-11
  • 打赏
  • 举报
回复
什么修改栏位?学习。
zxlnet 2001-12-11
  • 打赏
  • 举报
回复
修改栏位的什么呀!
Broadsea 2001-12-11
  • 打赏
  • 举报
回复
我也很想知道
pausing 2001-12-11
  • 打赏
  • 举报
回复
help me help me
cft007 2001-12-11
  • 打赏
  • 举报
回复
因为您建的表是有分区的,那我也没有办法了。请仔细看我贴的贴子。里面有详细的解释。
pausing 2001-12-10
  • 打赏
  • 举报
回复
请大家关注!
1 序言 2 2 影响SQL PERFORMANCE的关键因素和配置: 2 2.1 关于执行计划 2 2.2 ORACLE优化器 2 2.2.1 ORACLE优化器的优化方式 2 2.2.2 优化器的优化模式(Optermizer Mode) 3 2.2.3 Optimizer mode优化模式级别的设定: 3 2.2.4 查看对象统计信息(object statistics) 3 2.3 结合BENQ ORACLE ERP 4 2.3.1 优化模式(Optermizer Mode) 4 2.3.2 关于 Gather 5 2.4 跟踪 SQL实际运行的COST 5 2.5 小结 5 3 SQL语句的TUNING经验分享: 6 3.1 绝大多数情况下NOT EXISTS比NOT IN 效率高 6 3.2 UNION ALL效率比UNION高很多 6 3.3 一些很耗资源的SQL操作,在不必要的情况下不要使用 6 3.4 通常联接查询比子查询的效率要高很多 7 3.5 用TABLE 索引(INDEX)栏位去做TABLE间的关联,可避免费时的全扫描 7 3.6 在VIEW尽量不要使用 PACKAGE/FUNCTION 来得到栏位值, 8 3.7 通过ROWID访问 9 3.8 必要时,可在ORACLE STANDARD TABLE上加索引 9 3.9 合理排列WHERE子句的连接顺序. 9 3.10 用WHERE子句替换HAVING子句 9 3.11 关于使用索引(INDEX)的一些注意点 10 3.11.1 ‘!=’,NOT操作将不使用索引. 10 3.11.2 ‘||’是字符连接函数. 就象其它函数那样, 停用了索引. 10 3.11.3 相同的索引列不能互相比较,这将会启用全扫描. 10 3.11.4 避免在索引列上使用计算. 11 3.11.5 基于成本的优化器(CBO)会对索引的选择性进行判断,来决定是否使用索引 11 3.11.6 Index信息的重新统计 11 3.12 识别 “低效运行”的SQL语句 11
目 录 (01) SELECT .................................. ............... .......................................2 查找 SELECT "栏位名" FROM "格名" (02) DISTINCT................................. ............... .....................................2 不同值 SELECT DISTINCT "栏位名" FROM "格名" (03) WHERE...................................... ............... ....................................2 条件 SELECT "栏位名" FROM "格名" WHERE "条件" (04) AND OR ...................................... ............... ..................................3 条件并和或 SELECT "栏位名" FROM "格名" WHERE "简单条件" {[AND|OR] "简单条件"} (05) IN .............................................. ............... ..................................3 包含 SELECT "栏位名" FROM "格名" WHERE "栏位名" IN ('值一', '值二 ', ...) (06) BETWEEN.............................. ............... ........................................4 范围包含 SELECT "栏位名" FROM " 格名" WHERE "栏位名" BETWEEN '值一' AND '值二' (07) LIKE....................................... ............... .......................................4 通配符包含 SELECT "栏位名" FROM "格名" WHERE "栏位名" LIKE {套 式} -- 支持通配符‘_’ 单个字符 '%' 任意字符 (08) ORDER BY............................... ............... ......................................5 排序 SELECT "栏位名" FROM "格名" [WHERE "条件"] ORDER BY "栏位 名" [ASC, DESC] -- ASC 小到大 DESC 大到小 (09) 函数........................................ ............... ......................................5 函数 AVG (平均) COUNT (计数) MAX (最大值) MIN (最小值) SUM (总合) SELECT "函数名"("栏位名") FROM "格名" (10) COUNT .................................... .............. ......................................6 计 数 SELECT COUNT(store_name) FROM Store_Information WHERE store_name is not NULL -- 统计非空 SELECT COUNT(DISTINCT store_name) FROM Store_Information -- 统计多 少个不同 (11) Group By .................................. .............. .....................................6 字段分组 SELECT "栏位 1", SUM("栏位 2") FROM "格名" GROUP BY " 栏位 1" (12) HAVING...................................... .............. ....................................7 函数条件定位 SELECT "栏位 1", SUM("栏位 2") FROM "格名" GROUP BY "栏位 1" HAVING (函数条件) (13) ALIAS........................................... .............. ..................................7 别名 SELECT "格别名"."栏位 1" "栏位别名" FROM "格名" "格别名" (14) 连接................................................ ..............................................8 SELECT A1.region_name REGION, SUM(A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.store_name = A2.store_name GROUP BY A1.region_name (15) 外部连接........................................... ............................................9 SELECT A1.store_name, SUM(A2.Sales) SALES FROM Georgraphy A1, Store_Information A2 WHERE A1.store_name = A2.store_name (+) GROUP BY A1.store_name (16) Subquery .............................. .............. .........................................9 嵌套 SELECT "栏位 1" FROM "格" WHERE "栏位 2" [比较运算素] (SELECT "栏位 1" FROM "格" WHERE (17) UNION.................................... ............... ......................................10 合并不重复结果 [SQL 语句 1] UNION [SQL 语句 2] (18) UNION ALL....................................... .............. ............................ 11 合并所有结果 [SQL 语句 1] UNION ALL [SQL 语句 2] (19) INTERSECT..................................................... ............... ............. 11 查找相同值 [SQL 语句 1] INTERSECT [SQL 语句 2] (20) MINUS............................ ............... ..............................................12 显示第一个语句不在第二个语句的项 [SQL 语句 1] MINUS [SQL 语句 2] (21) Concatenate................................... ............... ...............................12 结果相加(串联) MySQL/Oracle: SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston'; SQL Server: SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston'; (22) Substring ...................................................... ............... ...............13 取字符 SUBSTR(str,pos) SUBSTR(str,pos,len) (23) TRIM ...... .............. .....................................................................14 去空 SELECT TRIM(' Sample '); TRIM()首尾, RTRIM()首, LTRIM()尾 (24) Create Table ........... .............. .....................................................14 建立格 CREATE TABLE "格名"("栏位 1" "栏位 1 资料种类","栏位 2" "栏位 2 资料种类",... ) (25) Create View............................. .............. ......................................15 建立格视观 CREATE VIEW "VIEW_NAME" AS "SQL 语句" (26) Create Index........................................... ............... ......................16 建立索引 CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME) (27) Alter Table.. .............. ..................................................................16 修改 ALTER TABLE "table_name"[改变方式] -- ADD 增加;DROP 删 除;CHANGE 更名;MODIFY 更改类型 (28) 主键.......................... ..................................................................18 ALTER TABLE Customer ADD PRIMARY KEY (SID) (29) 外来主键....................................... ............ ..................................18 CREATE TABLE ORDERS(Order_ID integer,Order_Date date,Customer_SID integer,Amount double,Primary Key (Order_ID),Foreign Key (Customer_SID) references CUSTOMER(SID)); (30) Drop Table................................................. ............... ...................19 删除 DROP TABLE "格名" (31) Truncate Table ................. ............... ............................................20 清除内容 TRUNCATE TABLE "格名" (32) Insert Into....................................... ............... .............................20 插入内容 INSERT INTO "格名" ("栏位 1", "栏位 2", ...) VALUES ("值 1", "值 2", ...) (33) Update ........................ ................ ................................................20 修改内容 UPDATE "格名" SET "栏位 1" = [新值] WHERE {条件} (34) Delete ......................................... .............. .................................21 DELETE FROM "格名" WHERE {条件}

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧