表操作
常见的数据库对象
数据类型
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之后,锁才会释放,其他用户才能对表进行操作。