3.表操作&&事务

表操作

常见的数据库对象

对象描述
基本的数据存储集合,由行和列组成。
视图从表中抽出的逻辑上相关的数据集合。
序列提供有规律的数值。
索引提高查询的效率
同义词给对象起别名

数据类型

数据类型描述
VARCHAR2(size)可变长字符数据
CHAR(size)定长字符数据
NUMBER(p,s)可变长数值数据
DATE日期型数据
LONG可变长字符数据,最大可达到2G
CLOB字符数据,最大可达到4G
RAW (LONG RAW)原始的二进制数据
BLOB二进制数据,最大可达到4G
BFILE存储外部文件的二进制数据,最大可达到4G
ROWID行地址

表的常见操作

产看已经创建的所有表

select table_name from user_tables;

创建表

创建table_01的表格,包含字段,id,name,salary,hire_date。

SQL> create table table_01(
  2  id number(10) not null,
  3  name varchar2(10),
  4  salary number(10,2),
  5  hire_date date
  6  );
  ```
### 查询方式创建表
把查询的结果作为一个新表,并创建

` create table emp as (select * from employees where salary>10000);`
`desc emp;`

输出:

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'))

1 row created.

从其它表格拷贝数据

把B表数据拷贝到A表

insert into [表A] select * from [表B]
注意:
前提是A表必须存在而且表结构和B表一样

更新表格数据

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

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

  1. 注意约束导致数据完整性错误
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之后,锁才会释放,其他用户才能对表进行操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值