一、oracle数据库的卸载:
1.删除安装目录下的文件夹
2.删除注册表:打开运行输入命令(regedit)
- HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE
- HKEY_LOCAL_MACHINE/SYSTEM/CurrentContr
二、sqlplus操作oracle数据库
1.把服务设置为手动启动
2.启动服务
3.停止服务
4.进入SQLplus操作数据库
5.如果scott账户锁住了,用sys超级管理员登录解锁用户
- 登录>:sys as sysdba
- 解锁>alter user scott account unlock;
- 修改密码:passw scott --表示修改scott用户的密码
三、PLSQL Develper的安装和使用
1.软件有绿色版本
2.本身部分32位和64位
3.如果安装的Oracle是64位
4.要重新下载32位的Oracle Client,即oci.dll文件
5.使用之前要先配置一下监听
6.启动监听服务
7.配置环境便令,解决中文乱码问题
- NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
四、Oracle中的数据类型
1.字符数据类型
字符数据类型 | |
---|---|
cha | 定长 |
varchar2 | 变长,节省磁盘空间(常用) |
nchar | 以unicode存储的双字节数据 |
nvarchar2 |
2.数值类型
- number(p,s)
- p为精度,表示数字的有效位数,从左边第一个不为零的数算起
- s为范围,表示小数点右边数字的位数
- 案例:
- number(4,2) -->123.89 -->报错(有效位数为5,超过了4)
- number(4,2) -->123.789 -->12.79
- number(3,4) -->1 -->报错(1.0000查过3位有效数字了)
- number(3,4) -->0.0001 -->0.0001
- number(3,4) -->0.1 -->报错(0.1000超过3位有效数字了)
3.日期类型
日期类型 | |
---|---|
date | 存储年月日时分秒 |
timestamp | 精确到毫秒,可以精确的判断两条数据的插入先后 |
3.1 查看当前系统时间:select sysdate from dual
4.LOB数据类型(Large Object)
LOB数据类型 | |
---|---|
CLOB | 大文本,大量字符数据(常用) |
BLOB | 大的二进制对象,图形,视频等 |
BFILR | binary lob,存储一个二进制文件引用,文件存在操作系统中 |
NCLOB | Unicode格式的CLOB |
五、Oracle的常用SQL语句
- 建表
create table userinfo(userId number(6,0) primary key,userName varchar2(20),userSex varchar2(20))
- 增删改查和mysql一样
- distinct:子句筛除结果几种内容全部相同的行,仅保留一行
- 表复制:
create table student2 as select * form student where 1=2
- 事务控制
- commit
- rollback
- savepoint
- rollback to
注意 千万不要忘记提交,不然没有数据
六、oracle中的伪列
- 伪列就想表中的某一列,但实际上它并未存储在表中
- 伪列可以从表中查询,但是不能插入、更新或删除它们的值
- rowId:唯一的标识数据库中的一行,以最快的方式访问表中的一行
- rowNum:对于查询的每一行,rowNum对返回结果进行编号,从1开始
- 查询前几条数据:
select * from emp where rownum<=5
- 查询第一条数据:
select * from emp where rownum=1
- 分页查询:
select * from (select s.*,rownum rn from student s order by stuid) t where rn between 2 and 4
5.字符串连接符:||
七、集合操作符
- union(联合)
- union All(联合所有)
- intersect(交集)
- minus(减集):上面的集合减去下面的集合公有的,得到上面剩下的
八、oracle中常用函数
常用函数 | 例子 | |
---|---|---|
to_char() | 把日期、数字转换为特定格式的字符串 | to_char(55)/to_char(55,’$99.99’)/to_char(sysdate,‘yyyy-MM-dd’) |
to_date() | 把字符串转日期 | to_date(‘1990-09-09’,‘yyyy-MM-dd’) |
to_number() | 转换为数值类型 | to_number(‘99’) |
nvl(exp1,exp2) | 等效于exp1==null?exp2:exp1 | |
nvl2(exp1,exp2,exp3) | 等效于exp1==null?exp3:exp2 | nvl相当于null,第一个表达式为空输出第二个表达式的值,否则输出第一个表达式的值 |
decode(val,if1,then1,if2,then2,…else) | 等效于switch(val){case if1:return then1;case if2:return then2;} |