那就先从最基础的建表说起吧
一.工作中遇到设计好的表如何落库
1.plsq这个软件先安装好,然后根据服务器地中连,上怎么连直接上图
看到途中的三个要填写的,我举个例子,不然有点空是吧
举例
用户名 :zhangsan
密码: 123456
地址 jdbc:oracle:thin:@//127.0.0.1:8016/tdus //你看这是我随便写的地址其中thin是数据库连接方式,tdus是数据库名。
二,然后说一下Oracle建库
找到对应数据库table右键新建一个表
1.开始说正题,建表我们可能遇到id要自增主键设置,这个咱们先建一个自增序列,这就提一下mysal、的不一样的地方,mysql直接指定自增就行但Oracle要自己建序列
2.说一下序列如何建上图
你看这个图,sequences这个右键新建,打开后填写参数,我直接给你一组参数 1 ,999999999,1,1,20 拿去用哈哈之后
在表id那个默认疼数值处填进取这个 "WW"."SEQ_USER"."NEXTVAL" 其中SEQ_USER是自增序列,WW是你数据库名字后边那个表示值。
3.自增说完说一下主键,这个简单直接sql语句解决
ALTER TABLE employees
ADD CONSTRAINT emp_id_pk PRIMARY KEY (id); 这其中 employees 表明,emp_id_pk是主键标识,你可以理解为每张表指定主键都需要给主键取个名
4. 那我们开发中会遇到一个问题,给数据库新增数据然后直接拿到自增id直接上代码
<selectKey keyProperty="id" keyColumn="id" resultType="Long" order="BEFORE">
select SEQ_USER.NEXTVAL id FROM DUAL
</selectKey>
解释一下以防有小伙伴不知放到啥意思,其中 SEQ_USER.NEXTVAL 就是上边我们指定的自增序列,id就是实体类id,嗯就是这样老铁
二、建表和如何使用开发中遇到的一些问题,那就再说一下细碎的问题
1. ORACLE 有时候莫名其奥妙锁表了,我靠,很扯淡
解锁表
select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;
alter system kill session '161,5655';
上边那句是查当前库锁表,下边是锁表解除
2.有时候需要对比的时间格式不对可以这样转
//时间修改加to_date("202476","YYYY-MM-DD")
3.关联同步数据这样,场景就是同步两个有关联数据库数据
update 表明 set 表明 .DEPT_ID = (select SYS_DEPT.DEPT_ID from SYS_DEPT where SYS_DEPT.DEPT_NAME = 表明 .DEPT_ID and rownum <2);
4.查询当前单位及子单位用户sql
select su.* from SYS_USER su
where su.dept_id in (select dept_id from sys_dept start with dept_id = 1 connect by prior dept_id = parent_id and del_flag = 0 and status = 0)
and u.del_flag = '0';
5.还有一个异常关闭锁的导致项目一直启动不了,找到那个表0变1就可以了,忘叫啥了,提示网上给的方法但是你的库可能没有,找到那个模糊匹配到的就行,我自己用不多说
6.说一下日期对比直接上代码
to_char (字段,'yyyy-MM-dd') <= "2024-06-12" 这个经常用到时间范围搜索