Oracle-08-修改表结构(对已有的表增删改查)
来源:互联网 发布:数组排序方法 编辑:程序博客网 时间:2024/05/18 20:50
一、在创建表的时候加上主键的例子:
create table stu(
id number(5)primary key,
name varchar2(20)
);
以上是一种主键约束。简单了解下。约束表中id列中的数据,要求不为空且不能重复。
二、修改表结构常用的3种操作:
1.在一个表中加入一个新的列
语法格式:
alter table 表名 add
(列名 数据类型 [default默认值] [, 列名…])
如果加一列不够,可以逗号之后再加一列。
【注意】alter是DDL语句,一旦改动就永久改动。
例:为A表加入“age”一列,该列的数据类型为“number”,且默认值为23。
alter table A add age number(2) default 23
下面具体操作:
Step1:首先用lisi登录数据库,因为原sys用户下面的表太多,查询起来麻烦,换个自定义用户lisi登录数据库,查询方便,如下图:
Step2:查询当前用户下的表数量,注意下图中的命令:
Step3:发现lisi用户下没有表,那么创建一个表,如下图:
Step4:再次用步骤2的方法查询,如下图:
接着用desc A查询A表的结构,如下图:
发现lisi用户下已有表A。
Step5:为A表增加age列,如下图:
Step6:再次用desc A查看A表结构,如下图:
2.修改在一个表中已存在的列
语法格式:
alter table 表名 modify
(列名 数据类型 [default 默认值] [,列名…])
【注意】alter语句一旦执行,就永久修改。
例:将A表中的age这列的数据类型改为varchar2(2)
alter table A modify age varchar2(2)
下面具体操作:
Step1:为了说明报错信息,首先给空的A表中添加一行数据,如下图:
查询表结构和表内容,如下图:
说明数据内容添加成功。
Step2:这时候将表age列修改为varchar2(2),如下图:
发现报错,因为被修改的age列已经存在数据,所以被修改的列必须是空的才能修改
Step3:将表A的age列清空,注意下图中的命令,如下图所示:
查询表结构和表内容:
Step4:将表A中的age列修改为varchar2(2),如下图:
【注意】修改一个表中已经存在的列要注意以下事项:
(1)可以增加字符类型的列的宽度,简单说,比如原来该列是varchar2(2)类型,在不改变类型情况下,不管该列是否为空,都可以增加长度,比如把2加到10,即varchar(10);
(2)可以增加数字类型的列的宽度和精度,数字类型比如number类型;
(3)只有当所有列的值都为空或者表中没有数据时,才可以减少列的宽度;
(4)只有当所有列的值都为空时,才可以改变某一列的数据类型,如上面示例说明;
(5)如果改变某一列的默认值,该默认值只能影响以后的操作,如以下操作,在将A表age列的默认值改为23后,原来张三数据依然为空,之后添加的张四数据age默认值为23,所以只影响以后的操作:
表中原数据查询:
修改age列的默认值为23:
再次查询A表内容,发现原来数据的age列没改:
插入新数据张四:
查询发现新数据张四的age是新设置的默认值23:
所以修改某一列的默认值,不影响原数据,只影响后数据;
(6)只有当某一列没有改变该列的大小的情况下,才可以把char类型的列改变成varchar2类型的列,或者把varchar2类型的列改变成char类型的列,因为char类型如果数据长度不够,会自动补空格,所以如果把varchar2类型改为char类型,长度会改变,不安全。
3.从一个表中删除一列
语法格式:
alter table 表名 drop column 列名
例:将A表中的age列删除
alter table A drop column age
实战操作:
Step1:先看下现在的A表,如下图:
Step2:删除age列,如下图:
Step3:查询是否删除成功,如下图:
- Oracle-08-修改表结构(对已有的表增删改查)
- Oracle基础增删改查、修改表结构
- Oracle-10-对表中数据进行增删改查
- 对oracle的临时表空间的增删查改
- 表结构的增删查改
- 线性表顺序结构增删改查
- oracle 10g中对已有的表 进行 增 、删 、改 列名
- abap 对表 增删改查
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- sql基础 (表结构的增删改查)
- 数据库操作(增删改查+升级表结构)
- MyBatis实现单表增删改查(CURD)--修改
- 一般页面(对表增删改查)
- hibernate对单表增删改查(CRUD)
- MyBatis对表执行CRUD(增删改查)操作
- 参考mjpg_streamer写视频显示客户端接收数据程序
- fzu 2086 餐厅点餐 (暴力搜索)
- LTE中的TB/codeword/layer/precoding/port
- mysql查询语句实例 复杂mysql查询
- 前端跨域技术之JSONP
- Oracle-08-修改表结构(对已有的表增删改查)
- java xml转义方法以及中文字符的处理
- DedeCms v5.7 SQL注入漏洞
- 1、Memcached学习
- c++第2次作业
- 【6】mysql数据查询语言DQL(Data Query Language)①
- FZU 2150 Fire Game (BFS)
- dedecms XSS漏洞解决办法2016年4月13日
- win10 安装oracle 出现的 出现问题解决