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密码 -- 1、使用sys管理员创建一个独立的表空间(选中SQL Window选项,在弹出的窗口中编辑) -- 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。 --所有的数据库对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间 create tablespace tableNameSpace -- 单独的表空间名称 datafile 'D:\LiQiang-Space\oracleTableSpace\tableNameSpace.DBF' -- tableNameSpace表空间所在的路径 size 100m -- tableNameSpace表的大小 autoextend on -- 自动扩容 next 32m maxsize 2048m -- 当满100m,自动增加32m,最大的空间2048m extent management local;-- 在本地范围内 -- 2、使用sys管理员创建用户 -- 在PL/SQL Developer中,选中User右击new一个新的用户, --然后填写上你的用户名和密码,default tablespace选择你刚才新建的tablespace temporary tablespace一般默认是TEMP -- 3、新建好用户之后,选择Role Privileges 按照如图的方式给用户分配权限,最后apply一下,创建用户完成 -- 赋予权限 GRANT privileges or role TO user; #分配权限或角色 REVOKE privileges or role FROM user; #撤销权限或角色 -- 4、使用脚本,创建用户 Create user 用户名 Identified by 密码 Default tablespace users Temporary tablespace tableNameSpace Quota unlimited on users; -- 5、删除用户 Drop user 用户名[cascade] cascade 将会删除这个用户所拥有的所有对象。 -- 6、Create table -- 使用新创建的普通用户创建表 create table student ( stu_id number(10) not null, stu_name varchar2(20) not null, stu_age number(4), stu_sex char(3) ) tablespace TABLENAMESPACE -- 表存放在TABLENAMESPACE这个空间 storage ( initial 64K minextents 1 maxextents unlimited ); -- 7、 Add comments to the table -- 给表添加注解 comment on table student is '学生表'; -- 8、Add comments to the columns -- 给每一列添加注解 comment on column student.stu_id is '学生ID'; comment on column student.stu_name is '学生姓名'; comment on column student.stu_age is '学生年龄'; comment on column student.stu_sex is '学生性别'; -- 9、在表创建好后,追加主键 alter table student add constraint pk_stuId primary key(stu_id); --10、创建序列 create sequence stuId_seq start with 1 increment by 1; -- 11、想要stuid自增 自增位置 序列名点nextval就可以得到序列中下一个值作为主键ID了。 insert into test values (stuId_seq.Nextval,'吉利',15,'女');
Oracle 数据库的数据类型:
整数类型;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:存储字符格式的大型对象
Oracle 没有类似 mysql 的 auto increatement 定义自增长,但是可以定义一个序列sequence,然后在插入数据时取序列中的下一个值即可。
创建序列:
create sequence 序列名
start with 1 --初始值为1
increment by 1 -- 步长为1
nomaxvalue --无最大值
cache 10; --在缓存中保存预分配10个值
使用序列:insert into 表名 values(序列名 . nextval);-- nextval返回序列的下一个值
查看序列的下一个值:select 序列名 . currval from dual; -- dual表示oracle默认的表
查看序列当前的值:select 序列名 . nextval from dual; -- dual表示oracle默认的表
修改序列:
alter sequence 序列名
increment by 5
maxvalue 100000
nocycle
nocache;
删除序列:drop sequence 序列名;
同事插入多条数据:
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
注意:需要提交事物,不然不会保存。