[转帖]表操作&事务_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2917 | 回复: 1   主题: [转帖]表操作&事务        上一篇   下一篇 
wofuao
注册用户
等级:新兵
经验:71
发帖:1
精华:0
注册:2018-10-11
状态:离线
发送短消息息给wofuao 加好友    发送短消息息给wofuao 发消息
发表于: IP:您无权察看 2019-9-17 16:44:33 | [全部帖] [楼主帖] 楼主

表操作

常见的数据库对象

北京联动北方科技有限公司

数据类型

北京联动北方科技有限公司

alter修改表

修改表明

rename [旧表名] to [新表名]

删除表

drop table [表名]

清空表的内容

truncate table [表名]

该操作不能回滚

但是使用delete from [表名]之后使用rollback可以撤回操作

增加一个列

alter table [表名] add ([字段名] [字段类型]);

修改现有的列

alter table [表名] modify ([字段名] [字段类型]);

为新追加的列定义默认值

alter table [表名] modify ([字段名] [字段类型] default [默认值]);

删除一个列

alter table [表名] drop column [字段名] ;

重命名表的一个列

alter table [表名] [列名] rename column [旧字段名] to [新字段名] ;

表的增删改查

增加数据到表格

1. 直接插入

insert into [表名](column[,column...]) values (values[,values...])

示例:向 emp2 表中插入一行数据

SQL> insert into emp2 values(1,'bart',13000.89,to_date('2017-3-21','yyyy-mm-dd'));


2. 创建脚本,按照提示输入数据并插入到表格:

SQL> insert into emp2(id,name,salary,hire_date) values(&id,'&name',&salary,&hire_date);
Enter value for id: 3
Enter value for name: maggie
Enter value for salary: 16000
Enter value for hire_date: to_date('2017-6-6','yyyy-mm-dd')
old   1: insert into emp2(id,name,salary,hire_date) values(&id,'&name',&salary,&
hire_date)
new   1: insert into emp2(id,name,salary,hire_date) values(3,'maggie',16000,to_d
ate('2017-6-6','yyyy-mm-dd'))


从其它表格拷贝数据

把B表数据拷贝到A表

insert into [表A] select * from [表B]

注意:

前提是A表必须存在而且表结构和B表一样

更新表格数据

更新

update [表名] set [字段名]=[更新的值] where [条件]

[更新的值]可以是一个子查询

注意约束导致数据完整性错误

UPDATE employees
SET    department_id = 55
WHERE  department_id = 110;


导致错误

UPDATE employees
*
ERROR at line 1:
ORA-02291: integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found


原因是,employees对应department中没有55号这个部门所以导致失败。

删除数据

delete from [表名] where [条件]

如果不加条件则就是删除所有的表记录

[条件]可以作为一个子查询

事务

一组逻辑操作单元,使数据从一种状态变换到另一种状态。

数据库事务由以下的部分组成:

一个或多个DML 语句

一个 DDL(Data Definition Language – 数据定义语言) 语句

一个 DCL(Data Control Language – 数据控制语言) 语句

commit和rollback

对一个表进行操作完毕后,使用commit表示保存做的操作,保存完毕之后如果在次对标进行操作,而没使用commit此时使用rollback会使得表的修改恢复到上一次commit之后

举个例子:创建一个表,并插入了数据,如果插入完数据之后没有使用commit,那么表格内容虽然是修改了的,但是并没有保存,此时如果使用rollback表格会恢复到没插入内容之前的状态。也就是空表格。。。

对表操作的时候,相当于数据库给表加了一把锁,当使用commit之后,锁才会释放,其他用户才能对表进行操作。




赞(0)    操作        顶端 
联动大白
注册用户
等级:列兵
经验:91
发帖:0
精华:0
注册:2015-5-27
状态:离线
发送短消息息给联动大白 加好友    发送短消息息给联动大白 发消息
发表于: IP:您无权察看 2019-10-25 0:30:00 | [全部帖] [楼主帖] 2  楼

为了方便大家阅读,我对文章中错误号来解释一下吧!

Error Id: ORA-02291

Title: integrity constraint (string.string) violated - parent key not found

Description:

integrity constraint (string.string) violated - parent key not found

Action:

Delete the foreign key or add a matching primary key.

Cause:

A foreign key value has no matching primary key value.


也许你已明白,但对一个人有用也是我存在的理由!^_^ By:持之以恒的大白

-- 来自: 北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论