对象 | 描述 |
---|---|
表 | 基本的数据存储集合,由行和列组成。 |
视图 | 从表中抽出的逻辑上相关的数据集合。 |
序列 | 提供有规律的数值。 |
索引 | 提高查询的效率 |
同义词 | 给对象起别名 |
数据类型 | 描述 |
---|---|
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;`
输出:
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 [新字段名] ;
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')
);
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表一样
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 [条件]
如果不加条件则就是删除所有的表记录
[条件]可以作为一个子查询
一组逻辑操作单元,使数据从一种状态变换到另一种状态。
数据库事务由以下的部分组成:
对一个表进行操作完毕后,使用commit
表示保存做的操作,保存完毕之后如果在次对标进行操作,而没使用commit
此时使用rollback
会使得表的修改恢复到上一次commit
之后
举个例子:创建一个表,并插入了数据,如果插入完数据之后没有使用commit
,那么表格内容虽然是修改了的,但是并没有保存,此时如果使用rollback
表格会恢复到没插入内容之前的状态。也就是空表格。。。
对表操作的时候,相当于数据库给表加了一把锁,当使用commit之后,锁才会释放,其他用户才能对表进行操作