Oracle数据库JDBC连接
Driver : oracle.jdbc.driver.OracleDriver
url : jdbc:oracle:thin:@localhost:1521:orcl
user : xxx
password : xxx
与MySQL不同的是:oracle需要手动提交事物。
安装Oracle时,在口令管理中,需要选择将SCOTT取消√,并且设置密码(敏感Scott用户),
然后设置SYS 与SYSTEM密码Oracle 数据库的数据类型:
1 -- 使用管理员 sys 登录后,创建表空间 2 CREATE TABLESPACE test_data -- 表空间名 3 LOGGING 4 DATAFILE 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TEST_DATA01.DBF' -- 是oracle 安装目录到 ORCL 一级,路径 5 SIZE 32M -- 大小 6 AUTOEXTEND ON --自动增长 7 NEXT 32M MAXSIZE 2048M --最小到最大在本地空间 8 EXTENT MANAGEMENT LOCAL; 9 10 -- 使用管理员 sys登录后,赋予新用户权限 11 --赋权限 12 grant dba to 用户名; --最大权限 13 grant connect to 用户名; --登陆权限 14 grant resource to 用户名; --只能访问和修改自己用户下的有限对象 开发人员权限connect 和 resourse 15 grant create table to 用户名; --创建表权限 16 grant select on 表名/视图名 to 用户名; --把自己的表或者视图赋查看权限给其它用户 17 grant update on 表名 to 用户名; --把自己表赋修改权限(delete / insert 权限) 给其它用户 18 --修改权限 19 alter user 20 --收回权限 21 revoke 权限 from 用户名; 22 --查看用户拥有的角色 23 select * from user_role_privs; 24 --查看用户拥有多少张表 25 select * from user_tables; 26 --查看其它用户拥有的表 27 select * from all_tables; 28 --所有拥有的表 29 select * from dba_tables; 30 31 32 -- 创建user表 33 create table t_user( 34 cid number primary key ,-- 主键 35 cname varchar2(50) not null, 36 cpwd varchar2(50) not null, 37 csex char(3) not null, 38 cage number(4) 39 ); 40 commit; 41 42 43 -- 给表 44 comment on table t_user is '用户表'; 45 46 -- 给表中的列添加注释 47 comment on column t_user.cid is '用户ID'; 48 comment on column t_user.cname is '用户姓名'; 49 comment on column t_user.cpwd is '用户密码'; 50 comment on column t_user.csex is '用户性别'; 51 comment on column t_user.cage is '用户年龄'; 52 53 -- 创建序列 54 create sequence sequence_index -- 序列名 55 start with 1 -- 序列的初始值 。(默认1) 56 increment by 1 -- 序列变化的步进,负值表示递减。(默认1) 57 nomaxvalue -- 序列可生成的最大值,不限制最大值 58 nocycle -- 当序列产生的值达到限制值后是否循环(NOCYCLE:不循环,CYCLE:循环) 59 nocache; -- 缓存序列的个数,默认值为20,不使用缓存可设置NOCACHE 60 61 -- 获取当前序列初始值,新序列必须使用一次nextval 才能获取到值 62 select sequence_index.currval from dual; 63 -- 获取表中自增ID 下一个序列值 64 select sequence_index.Nextval 自增序列ID from dual; 65 66 -- 修改、删除序列 67 -- 使用 alter 命令进行修改 68 alter sequence sequence_index 69 increment by 2 70 minvalue 1 71 maxvalue 999999999; 72 -- 使用 drop 命令删除 73 drop sequence sequence_index; 74 75 -- 删除表中的数据 76 -- 使用delete 速度慢 77 delete from t_user; 78 -- 使用truncate速度快 79 truncate table t_user; 80 81 82 -- 使用序列,往表中的自增列添加 83 insert into t_user(cid,cname,cpwd,csex,cage) 84 values(sequence_index.nextval,'齐','qiguo','男',200); 85 86 insert into t_user(cid,cname,cpwd,csex,cage) 87 values(sequence_index.nextval,'楚','chuguo','女',100); 88 89 insert into t_user(cid,cname,cpwd,csex,cage) 90 values(sequence_index.nextval,'秦','qinguo','男',500); 91 92 insert into t_user(cid,cname,cpwd,csex,cage) 93 values(sequence_index.nextval,'燕','yanguo','女',300); 94 95 insert into t_user(cid,cname,cpwd,csex,cage) 96 values(sequence_index.nextval,'赵','zhaoguo','男',400); 97 98 insert into t_user(cid,cname,cpwd,csex,cage) 99 values(sequence_index.nextval,'魏','weiguo','女',100); 100 101 insert into t_user(cid,cname,cpwd,csex,cage) 102 values(sequence_index.nextval,'韩','hanguo','女',100); 103 -- 手动提交事物 104 commit; 105 106 -- 查询数据 107 select * from t_user;
整数类型;NUMBER 类型:定义格式 NUMBER (precision,scale),取值范围为【1-38】默认 38,NUMBER 整数部分允许的长度为(precision- scale)。
关于 number 的精度(p)和刻度(s)遵循以下规则:
1) 当一个数的整数部分的长度> p-s 时,Oracle 就会报错
2) 当一个数的小数部分的长度> s 时,Oracle 就会舍入。
字符串类型:字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种.
所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。
所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。
CHAR:存储固定长度的字符串,最大长度 2000 bytes
VARCHAR2 :存储可变长度的字符串 ,最大长度 4000 bytes
NCHAR 和 NVARCHAR2 :存储 Unicode 字符集类型。
NCHAR: 最大长度 2000 bytes,NVCHAR2: 最大长度 4000 bytes
注意:varchar2(2) 括号中的2代表的是是2个直接,不是字符,在Windows中,一个汉字占有2个字节,在Unicode中占有3个字节。
注意:
1. 可以使用 LONG 类型的列来存储 LONG 类型的文本字符串。LONG 数据类型的使用是为了向前兼容的需要。建议使用 LOB 数据类型来代替 LONG 类型。
2. VARCHAR2 比 VARCHAR 更适合使用,由于兼容性的原因,所以仍然在 Oracle 数据库中保留着VARCHAR 。
3. 用于存储 raw 类型的二进制数据。最多可以存储 2000B。建议使用 BLOB 来代替它。
4. 用于存储 raw 类型的二进制数据。最多可以存储 2GB 的数据。建议使用 BLOB 来代替它。
5. 不建议使用 VARCHAR、 INTEGER、FLOAT、DOUBLE 等类型
6. DATE:存储日期和时间数据
7. TIMESTAMP:比 DATE 更精确
8. BLOB:存储二进制对象,如图像、音频和视频文件
9. CLOB:存储字符格式的大型对象
插入多条数据:
insert into 表名 (字段1,字段2,字段3)
select '值1',值2,值3 from dual union
select '值1',值2,值3 from dual union
select '值1',值2,值3 from dual
注意:需要提交事物,不然不会保存。