模糊搜索
%:表示任意个任意的字符,可以零个字符
_:表示一个 , 任意的字符
name like '8355703%'
select
('前缀' || SEQ)
select
concat( '前缀', SEQ )
select 下的 || 是拼接字符串的简写语法糖
独有的特殊的用法
(+)就是连接
就是一个右连接,等同于
select a.*, b.*
from a right join b
on a.b = b.b
以右边的为主
等同于
select a.*, b.*
from a,b
where a.b = b.b (+)
(+) 放在非主表的一方
Number可以是整数也可以是小数,并可限制精度
Integer不是标准的oracle数据类型,为了兼容才有的。数据库中以number(38)的精度处理。smallint等也是一样。
":="是赋值语句 如: l_name :='sky';
把右边的值给左边
"=" 是判断是否相等. 如: if 1=1 then...
":" 是变量绑定 如: if :P_NAME ='sky' then...
官方文档
http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html
Oracle 12c
安装步骤和常见问题的解决方法
https://www.cnblogs.com/2206411193qzb/p/7352276.html
全新的 Windows 用户 , 官方说千万不要拿它来登录电脑
root
zzzz
界面 :
口令不标准 , 没事
zzzz
安装后 , 处理之前手动忽略掉的环境变量问题
{
分析 :
打开win+r 窗口 , 输入 sqlplus.exe 会提示找不到文件,这就是环境变量问题
解决方案:
我的电脑(右击)->属性->环境变量->下面有个系统变量->找到path(双击)->新建
(
目录是你自己设定的Oracle的安装位置 , 这是我的path内容:
E:Oracleproduct11.2.0dbhome_1NETWORKADMIN
默认的路径是
C:app
ootproduct12.2.0dbhome_1
etworkadmin
把它添加到环境变量里 , 我是写成单独的一个环境变量 , key 我写 Oracle
在文件管理器中根据这个目录依次找到admin,然后复制进path里的新建框
)。
确认 环境变量 是否配置正确 :
打开win+r 窗口 , 输入 cmd , 然后回车
%Oracle%
出现如下文字说明正常 :
C:Usershzuha>%Oracle%
'C:app
ootproduct12.2.0dbhome_1
etworkadmin' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
3
1
C:Usershzuha>%Oracle%
2
'C:app
ootproduct12.2.0dbhome_1
etworkadmin' 不是内部或外部命令,也不是可运行的程序
3
或批处理文件。
确认 环境变量配置正常后Oracle是否也正常了 :
打开win+r 窗口 , 输入 sqlplus.exe
出现此窗口说明正常 :
}
常用语句
alter table CPRD01MT
add ( PRDIMGTIMELIMITED varchar2(100) default '这是列的默认值 , 不是列的备注' null ) ;
不要默认值的话 , 去掉 -> default '这是列的默认值 , 不是列的备注'
Select * from A minus select * from B;
以 A 表为主 , 遍历 A 表 , 看哪些是 B 里没有的
https://www.cnblogs.com/lcword/p/5857894.html
LEFT JOIN
别用特别的语法 --> (+)
Oracle and or 写法
先后顺序
and 的优先级比 or的高 , 所以先处理 and
例如
a or b and c
先计算出 b and c 的结果( 比如 temp ) , 再去计算 a or temp
注意 , 容易出现顺序错误 , 语法是对的 , 但是语义是错的 , 达不到想要的效果
可以写两个 LEFT JOIN
FROM CORD01DT cord01dt
LEFT JOIN CORD04DT cord04dt ON cord01mt.SEQ = cord04dt.SEQ
LEFT JOIN CORD01MT cord01mt ON cord04dt.ORDSEQ = cord01mt.SEQ
CORD01DT LEFT JOIN CORD04DT LEFT JOIN CORD01MT
三表都左外连接
AND ( cord04dt.ORDSTATCD = 'OA0801' OR cord04dt.ORDSTATCD = 'OA0802' )
AND cord04dt.ORDSTATCD IN ('OA0801', 'OA0802' )
union 和 union all
https://www.cnblogs.com/yuanchaoyong/p/6213885.html
分组排序
PARTITION BY 根据 xx 分组
https://www.cnblogs.com/shined/archive/2013/01/16/2862809.html
ROW_NUMBER() OVER (
PARTITION BY CSTMNO
ORDER BY CREATEAT DESC
) AS RN
ROW_NUMBER() 可以得到排序后的序号
排序过程中如果有并列的数据的话 , 可以顺位地编号 , 也可以跳跃 : / Oracle Partition By 的使用
https://www.cnblogs.com/jak-black/p/4210653.html
oracle 两表数据对比 , 取差集---minus
https://www.cnblogs.com/lcword/p/5857894.html
ORACLE中 decode 函数
https://www.cnblogs.com/fengjunming/p/7966441.html
x
1
alter table CPRD01MT
2
add ( PRDIMGTIMELIMITED varchar2(100) default '这是列的默认值 , 不是列的备注' null ) ;
3
4
不要默认值的话 , 去掉 -> default '这是列的默认值 , 不是列的备注'
5
6
7
8
9
Select * from A minus select * from B;
10
11
以 A 表为主 , 遍历 A 表 , 看哪些是 B 里没有的
12
https://www.cnblogs.com/lcword/p/5857894.html
13
14
LEFT JOIN
15
别用特别的语法 --> (+)
16
17
18
19
Oracle and or 写法
20
先后顺序
21
22
and 的优先级比 or的高 , 所以先处理 and
23
例如
24
a or b and c
25
先计算出 b and c 的结果( 比如 temp ) , 再去计算 a or temp
26
27
注意 , 容易出现顺序错误 , 语法是对的 , 但是语义是错的 , 达不到想要的效果
28
29
可以写两个 LEFT JOIN
30
FROM CORD01DT cord01dt
31
LEFT JOIN CORD04DT cord04dt ON cord01mt.SEQ = cord04dt.SEQ
32
LEFT JOIN CORD01MT cord01mt ON cord04dt.ORDSEQ = cord01mt.SEQ
33
34
CORD01DT LEFT JOIN CORD04DT LEFT JOIN CORD01MT
35
三表都左外连接
36
37
38
39
AND ( cord04dt.ORDSTATCD = 'OA0801' OR cord04dt.ORDSTATCD = 'OA0802' )
40
AND cord04dt.ORDSTATCD IN ('OA0801', 'OA0802' )
41
42
43
union 和 union all
44
https://www.cnblogs.com/yuanchaoyong/p/6213885.html
45
46
47
分组排序
48
PARTITION BY 根据 xx 分组
49
https://www.cnblogs.com/shined/archive/2013/01/16/2862809.html
50
51
ROW_NUMBER() OVER (
52
PARTITION BY CSTMNO
53
ORDER BY CREATEAT DESC
54
) AS RN
55
ROW_NUMBER() 可以得到排序后的序号
56
57
排序过程中如果有并列的数据的话 , 可以顺位地编号 , 也可以跳跃 : / Oracle Partition By 的使用
58
https://www.cnblogs.com/jak-black/p/4210653.html
59
60
oracle 两表数据对比 , 取差集---minus
61
https://www.cnblogs.com/lcword/p/5857894.html
62
63
64
ORACLE中 decode 函数
65
https://www.cnblogs.com/fengjunming/p/7966441.html
老家
连江
最偏远的村子
两个半的小时
晚上家里人
问题
没权限创建序列表
新的表的主键来自一张序列表 , 但是创建这表的时候
报错 , 说没权限
报错 , 说没权限