马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在Oracle数据库中,对表字段的增编削查是数据库操纵的底子。以下是关于Oracle中怎样增长、删除、修改和查询字段的详细表明:
1. 增长字段(Add)
增长字段的语法为:- [/code][table][tr][td][/td][td]ALTER TABLE 表名 ADD (字段名 数据范例 [DEFAULT 默认值] [NOT NULL], ...);[/td][/tr][/table][b]示例[/b]:
- [code]
复制代码 | ALTER TABLE students ADD (age NUMBER(3) DEFAULT 18 NOT NULL, gender CHAR(1)); | 这个例子中,我们在students表中增长了两个字段:age和gender。age字段的数据范例为NUMBER(3),默认值为18,且不允许为空;gender字段的数据范例为CHAR(1)。
如果必要为新增的字段添加解释,可以使用以下下令:- [/code][table][tr][td][/td][td]COMMENT ON COLUMN 表名.字段名 IS '解释内容';[/td][/tr][/table][size=3]2. 删除字段(Drop)[/size]
- 删除字段的语法为:
- [code]
复制代码 | ALTER TABLE 表名 DROP COLUMN 字段名; | 如果必要删除多个字段,可以在DROP COLUMN背面使用括号列出全部要删除的字段名,但请注意,并非全部版本的Oracle都支持一次删除多个字段,这取决于详细的数据库版本。
示例:- [/code][table][tr][td][/td][td]ALTER TABLE students DROP COLUMN gender;[/td][/tr][/table]这个例子中,我们从students表中删除了gender字段。
- [size=3]3. 修改字段(Modify)[/size]
- 修改字段的语法通常用于更改字段的数据范例、默认值或空值束缚等。语法为:
- [code]
复制代码 | ALTER TABLE 表名 MODIFY (字段名 新数据范例 [DEFAULT 新默认值] [NULL/NOT NULL], ...); | 但是,如果字段中已经有数据,而且新的数据范例与旧的数据范例不兼容,则不能直接修改。这时,必要采取间接的方法,如重定名原字段、添加新字段、复制数据、删除原字段等步调来完成修改。
示例(直接修改数据范例,假设兼容):- [/code][table][tr][td][/td][td]ALTER TABLE students MODIFY age NUMBER(4);[/td][/tr][/table]如果数据范例不兼容且字段中有数据,必要先举行间接修改,比方:
- [list=1]
- [*] 重定名原字段:
- [code]
复制代码 | ALTER TABLE students RENAME COLUMN age TO age_old; |
添加新字段:
- [/code] [table][tr][td][/td][td]ALTER TABLE students ADD age NUMBER(4);[/td][/tr][/table]
- [*] 复制数据:
- [code]
复制代码 | UPDATE students SET age = age_old; |
删除原字段:
- [/code] [table][tr][td][/td][td]ALTER TABLE students DROP COLUMN age_old;[/td][/tr][/table]
- [/list][size=3]4. 查询字段(Select)[/size]
- 查询字段现实上是查询表中的数据,但在这里我们可以明白为怎样查询表的结构或特定字段的信息。
- [list]
- [*] 查询表结构(包罗字段信息):
- [code]
复制代码 sql复制代码
大概
- [/code] [table][tr][td][/td][td]SELECT column_name, data_type, data_length FROM all_tab_columns WHERE table_name = '表名大写';[/td][/tr][/table]
- [*] 查询表中的数据(针对特定字段):
- [code]
复制代码 | SELECT 字段名1, 字段名2 FROM 表名 WHERE 条件; | 如果不指定条件,将查询表中全部行的指定字段。
请注意,上述SQL语句中的表名和字段名在现实使用时必要更换为详细的名称,而且Oracle中的表名和字段名在大多数情况下是大写的(只管Oracle在创建时不区分巨细写,但发起使用大写以增长可读性)。同时,根据详细的数据库版本和设置,某些下令和选项大概有所差异。
|