扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
oracle 数据库中的default的用法是:在创建数据库表时,可以指定一个 DEFAULT 值(即默认值)。对数据库字段使用默认值有助于将数据库设计问题与应用程序代码隔离。
网站设计、成都网站设计,成都做网站公司-成都创新互联公司已向超过千家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。
可以在以后某个时候通过一条 ALTER TABLE 命令改变一个字段的默认值,改变之后应用程序代码会立即开始使用新值。即 DEFAULT 值只有当一个字段没有在 INSERT 或 MERGE 中指定值,或者使用了 DEFAULT 关键字时才会使用。如果你不显式地声明一个 DEFULAT 值,Oracle 将隐式地将默认值定义为 NULL,而且 DEFAULT 关键字也是这样。从 Oracle 9i开始,可以在 DEFAULT 子句中使用诸如 SYSDATE 或 CURRENT_TIMESTAMPE 之类的伪字段。例如:
create table t1
(
id$ integer not null,
charcol char default 'Y',
datecol date default sysdate,
strcol varchar2(30) default user,
intcol integer default 12
);
如果表已经存在,用如下方法设置默认值:
alter table 表名 modify 字段名 default 默认值;
如test表中设置age字段为30,可用如下语句:
alter table test modify age default 30;
扩展资料:
Oracle关于默认值的其他用法
添加、修改默认值:alter table table_name modify column_name default 具体内容;
删除默认值:alter table table_name modify column_name default null;
增加列(约束、默认值)
语法:alter table tb_name add column datatype [default val] constraint .....
如果添加not null(primary key约束要求值也不能为null)约束,需要保证当前表中没有数据存在。
新添加的列,相当于表定义中最后一个定义的列。
事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。
两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:
1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。
2、不可重复读取:事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。
3、脏读:事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行回滚操作,取消刚才的修改,所以T2所读取的行就无效,也就是脏数据。
为了处理这些问题,SQL标准定义了以下几种事务隔离级别
READ UNCOMMITTED 幻想读、不可重复读和脏读都允许。
READ COMMITTED 允许幻想读、不可重复读,不允许脏读
REPEATABLE READ 允许幻想读,不允许不可重复读和脏读
SERIALIZABLE 幻想读、不可重复读和脏读都不允许
Oracle数据库支持READ COMMITTED 和 SERIALIZABLE这两种事务隔离级别。所以Oracle不支持脏读
SQL标准所定义的默认事务隔离级别是SERIALIZABLE,但是Oracle 默认使用的是READ COMMITTED
设置隔离级别使用 SET TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE]
-- 下面是oracle 设置SERIALIZABLE隔离级别一个示例:
左面是事务T1,右面是事务T2,因为T2级别为SERIALIZABLE,所以即使事务T1在提交了数据之后,事务T2还是看不到T1提交的数据,幻想读和不可重复读都不允许了。
那如何能查看到T1新增的记录呢? 上面T1和T2是并发执行,在T1执行insert的时候事务T2已经开始了,因为T2级别是SERIALIZABLE,所以T2所查询的数据集是T2事务开始前数据库的数据。即事务T1在事务T2开始之后的insert和update操作的影响都不会影响事务T2。现在重新开启一个事务T3 就可以看到T1新增的记录了。
当下列事件发生时,事务就开始了:
1、连接到数据库,并执行第一条DML语句
2、前一个事务结束后,又输入了另一条DML语句
创建oracle11g 数据库方法:按住键盘上Windows键,打开开始菜单,找到Database Configuration Assitant并打开;
打开数据库配置助手Database Configuration Assitant,单击“下一步”;
选择“创建数据库”,单击“下一步”
选择“一般用途或事务处理”,单击“下一步”;
设置数据库的名称和实例名,两者可设置相同,也可以不同,单击“下一步”
管理选项配置,不勾选配置Enterprise Manager,单击“下一步”;
数据库身份证明,可以为不同的账户分别设置不同的管理口令,也可以为所有账户设置同一口令,单击“下一步”;
数据库文件所在位置,默认存储类型:文件系统,存储位置:使用模版中的数据库文件位置,也可以自己指定存储路径,单击“下一步”;
恢复配置,指定快速恢复区;
数据库内容,根据需要,选择是否添加示例方案,单击“下一步”;
初始化参数,设置内存、字符集等,单击“下一步”;
数据库存储,控制文件、数据文件、重做日志文件位置设置,单击“下一步”;
创建选项,创建数据库,生成脚本,单击“完成”,开始创建数据库。
用如下方法设置,以win7电脑为例。
1、右键“我的电脑”,选择“管理”。
2、弹出窗口依次点击“服务和应用程序”——“服务”。
3、在列表中找到oracle服务的启动项,一般名称为“OracleService+实例名”。
4、右键此服务,选择“属性”选项。
5、启动类型选择“自动”,点击“确定”按钮保存即可。
方法和详细的操作步骤如下:
1、第一步,打开数据库连接,并显示创建的数据库,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,展开要操作的数据库下的所有表,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,右键单击要操作的表,然后选择[改变表]选项,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,在要修改的字段的[默认]位置内单击,然后输入默认值,见下图,转到下面的步骤。
5、第五步,执行完上面的操作之后,单击[保存],设置字段默认值完成,单击“确定”按钮即可,见下图。这样,就解决了这个问题了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流