1. 项目中一个项目Mysql对应一个数据库,一个项目在Oracle中对应一个用户(一个用户下有几张表);
2. Oracle创建表空间:
create dataspace 表空间名
datafile '数据文件路径'
size 100m --数据文件大小
autoextend on --空间不足时自增长开启
next 10m; --自增长大小
3. 删除表空间:
drop dataspace 表空间名;
4. 创建用户:
create user 用户名
identifiidentified by 密码
default tablespace 表空间名;#指定用户的表空间
5. 给用户授权:
#Oracle中数据库常用三种角色:
#1.connect:连接角色,基本角色;
#2.resource:开发者角色;(操作数据库的角色)
#3.dba:超级管理员角色
grant dba to 用户名;
6. Oracle常用数据类型:
- char:定长字符串;
- varchar,varchar2: 字符串(一般常用varchar2);
- number: 数字类型,number(n)表示一个整数,长度为n;number(m,n)表示一个小数,总长度为m,小数长度为n,整数长度为m-n;
- date: 日期类型 ;
- clob: 大对象,表示大文本数据,可存4G;
- blob: 大对象,表示二进制数据,可存4G;
7. 创建表:
create table 表名(id number(10),name varchar2(10));
8. 添加两列:
alter table 表名 add(gender number(1),age number(3));
9. 修改列类型:
alter table 表名 modify (gender char(1), age number(2));
10. 修改列名称:
alter table 表名 rename column gender to sex;
11. 删除一列:
alter table 表名 drop column sex;
12. 操作Oracle数据库时,Java代码中框架会帮我们自动提交事务,如果使用PL\SQL等数据库管理工具,增删改的时候默认不提交事务,因此一般在使用PL\SQL数据库工具操作Oracle(增删改)时,使用commit提交事务;如:
#一般增删改后面带上commit提交事务
insert into person (id,name)values(1,'张三');
commit;
13. 三个删除语句的区别:
#删除表中全部记录
delete from person;
#删除表结构
drop table person;
#先删除表,再创建表(效果等于删除表中全部记录,但该方式效率高)
#原因:数据表为了提高查询效率一般都有索引,索引会提高查询效率,
#但会影响增删改的效率,使用该方式回避了索引对删除的影响,提高了
#删除效率
truncate table person;
14. Oracle中的序列:
- 序列不真的属于任何一张表,但是可以逻辑和表绑定;
- 序列默认从1开始,依次递增,主要用于主键赋值使用;
- 在Oracle中select 语句后面必须加from,如果没有关联查询某一张表时from后面加dual;
- dual:虚表,只是为了补全语法,没有任何意义.
#创建序列(increment by n)
#[increment by n]:每次增加n;
#[start with n]:从n开始;
create sequence 序列名 [increment by n] [start with n]
select 序列名.currval from dual;#首次创建序列时currval为空,需要先执行nextval,如:
select 序列名.nextval from dual;
#使用序列向表中插入数据
insert into person (id,name) values(序列名.nextval,'张三');
commit;