安装Oracle

it2023-04-16  82

1.1安装Oracle 参考: https://www.cnblogs.com/hoobey/p/6010804.html?tdsourcetag=s_pcqq_aiomsg

1.2忘记密码处理 先修改此文件

使用net user 查看当前用户,net localgroup 查看当前用户组

查看ora_dba组是否有当前用户

当成员中没有当前用户,则使用如下命令添加到ora_dba组中。

1.3Oracle简介

推荐版本,Oracle11g。 1.4 启动Oracle服务 1.4.1启动OracleSerivceSID,SID就是数据库实例名称

1.4.2启动TNS监听服务(本地连接非必须,远程连接必须)

注意:启动顺序是先启动监听程序,再启动Oracle服务

1.5连接数据库方式 1.5.1本地链接 可以不启动监听服务,直接连接

1.5.2远程连接 必须启动监听程序,否则报错误

1.6配置Net Manager 、

服务命名是标识此远程服务的唯一名称,不要重复

输入远程IP地址,端口如果有改动也需要修改。

重启服务使配置生效

如果要使用用户名密码链接成功,需要注释下面代码

错误信息如下:

1.7数据类型推荐 1.7.1字符串类型,当字符串在200个字以内使用VarChar2。 1.7.2数值类型,推荐使用Number,不推荐使用Integer,Float等。 1.7.2.1整数: Number(n)。 1.7.2.2浮点数:Number(n,m)。 1.7.2.3不确定长度:Number 1.7.3日期类型,推荐Date,如果要更精确使用TimeStamp。 1.7.4文件或大字符串,文件不推荐使用数据库存储,大字符串使用CLOB存储,可以存储4GB大小的文本。 1.8伪列(RowID和RowNum【重点】)

注意:ROWID可以唯一标识数据库中的一行,而不是表。

![](https://img-blog.csdnimg.cn/20201020152050136.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTUxNzgwMg==,size_16,color_FFFFFF,t_70#pic_center)

注意:ROWNUM在ORDER BY之前就编号了,在where条件中只能使用小于,小于等于,不等于(等同于小于)或者=1来筛选。

1.9表操作

注意:有特殊字符的别名需要加双引号。

1.10数据去重复 1.10.1通过拼接需要去重的所有列,然后使用count进行统计,大于1的排除。

1.11删除重复数据 1.11.1第一步,使用ROWID伪列作为主键来查询,用Group BY来分组,查出不重复的数据。

1.11.2第二步,删除ROWID不在子查询结果中的数据

1.12事务控制(重点)

注意:在Oracle中默认是手动提交事务。有一个保存点(mysql也有)的概念,保存点之后的操作,可以通过Rollback to 保存点名称来回滚到保存点之前的状况。

1.13SQL操作符 1.13.1算术操作符(+ - * /) 取模函数MOD

1.13.2比较操作符(和MySQL一样) 1.13.3逻辑操作符(和MySQL一样 AND, OR,NOT) 1.13.4集合操作符 1.13.4.1并集(UNION),两个集合共同的数据和交叉的数据,交叉数据只取一条。

1.13.4.2并集ALL(UNION ALL),两个集合所有的数据都显示,交叉数据也会全部显示。

1.13.4.3交集 INTER SECT,两个集合共有的数据才显示出来。

1.13.4.4减集 MINUS,第一个集合中存在第二个集合的数据排除。

1.13.4.5通过上诉三个关键字可以得到下面这个集合

1.13.5连接操作符(||) 类似Mysql中的concat函数。

1.14SQL函数 1.14.1转换函数 1.14.1.1转换字符串 TO_CHAR

1.14.1.2转换日期 TO_DATE

1.14.1.3转换数字 TO_NUMBER

1.14.2转换空值的函数 1.14.2.1NVL

1.14.2.2NVL2

1.14.2.3DECODE

1.14.3行内判断语句 语法: case when 条件1 then 结果1 when 条件2 then 结果2 else 默认结果 end

select case when to_number(to_char(hiredate, ‘MM’)) > 0 and to_number(to_char(hiredate, ‘MM’)) < 4 then ‘一季度’ when to_number(to_char(hiredate, ‘MM’)) > 3 and to_number(to_char(hiredate, ‘MM’)) < 7 then ‘二季度’ when to_number(to_char(hiredate, ‘MM’)) > 6 and to_number(to_char(hiredate, ‘MM’)) < 10 then ‘三季度’ else ‘四季度’ end from emp / 分页使用三层嵌套

语法: select * from ( select rownum rn, tmp.* from ( select * from 表名 – – 查询结果 ) tmp where rownum < pageNo * pageSize ) t where rn >= (pageNo - 1) * pageSize

最新回复(0)