欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle学习之路,佛系更新

程序员文章站 2022-05-27 21:57:43
一、卸载安装(来自百度经验) 完全卸载: 1. 停止相关服务 2. 运行Universal Installer,卸载产品 3. 清理注册表 4. 重启电脑,删除目录(Oracle文件夹和app文件夹) 安装: 1. 运行setup.exe 2.取消勾选“接收安全更新”选项 3. 选择创建和配置数据库 ......

一、卸载安装(来自百度经验)

完全卸载:

1. 停止相关服务

2. 运行universal installer,卸载产品

3. 清理注册表

4. 重启电脑,删除目录(oracle文件夹和app文件夹)

安装:

1. 运行setup.exe

2.取消勾选“接收安全更新”选项

3. 选择创建和配置数据库

4. 桌面类

5. 企业版

6. 使用utf-8字符集

7. 口令管理,将scott解锁,设置密码tiger

打开sql plus用设置好的账户登录测试一下

二、配置

1. 确保服务(service和listener)开启

2. 打开net manager配置listener和oracle主目录

3. 打开net configuration assistant配置监听程序和本地网络服务名配置

三、配置plsql

1. tools-->preferences oracle home:oracle主目录

2. 查看主目录/network/admin/下是否有tnsnames.ora文件和listener.ora

问题汇总:tns无法解析制定的连接符标识https://www.cnblogs.com/justlove/p/8252779.html

                  可以试着把主机名改为本计算机名

四、sql数据库用户操作语句

新建用户:create user [username] identified by [password]

分配表空间:alter user [username] default tablespace users temporary tablespace temp profile default

新建用户同时分配表空间:create user zhangsan identified by 123456 default tablespace users temporary tablespace temp profile default

赋予权限:grant connect to zhangsan; grant resource to zhangsan; 给查询权限:grant select on emp to zhangsan;

一次赋予多种权限用逗号隔开,如: grant connect,resource to zhangsan

删除用户:drop user zhangsan

去除权限:revoke connect from zhangsan

修改用户密码:alter user zhangsan identified by newpassword

锁定用户:alter user zhangsan account lock

五、oracle中的数据类型

number(10)表示数字类型,长度为10

number(5,2)表示总长度为5,小数位占其中的2位

char(10)字符型,最多放2000个字符

varchar()或者varchar2()可变长度字符,最多放4000个字符

date日期类型,系统默认日期格式:2-3月-2019

timestamp日期精确到毫秒

blob大数据,存储二进制数据,最大4g

六、sql表操作语句

创建表:

create table student(

  sid number(10),

  sname varchar(20),

  cid number(10),

  ......

)

修改表:

追加列:alter table student add(sex varchar(5))

修改列:alter table student modify(sname varchar(15))

删除列:alter table student drop column sex

修改列名:alter table student rename column sex to gender

修改表名:rename student to students

删除表:drop table student

约束 分为列级约束和表级约束

种类:主键primary key、唯一unique、非空not null、外键foreign key references、检查check

添加列级约束:

create table student(

  sid number(10) primary key,

  sname varchar(20) not null,

  cid number(10) references class,

  ......

)

添加表级约束:

create table student(

  sid number(10) ,

  sname varchar(20) ,

  cid number(10) ,

  ......

  constraint student_sid_pk primary key(sid),

  constraint student_cid_fk foreign key(cid) references class(cid),

  ......

)

或者alter table add constraint ...

七、数据处理

crete table  表名

as

select * from 表名

创建一个表,并将查询出来的数据插入到新的表中

去掉数据复制表结构

create table 表名

as

select * from 表名

where 添加一个没有结果的条件  empno=null

八、查询语句

||连接查询结果

sql中,所有的空值运算之后都为空

nvlcomm,0)空值处理

nvl处理空值   第一个参数为列,第二参数表示为如果列中的值为空,用0来代替

去掉重复 关键字:distinct

sql语句中,字符、日期都必须用单引号引起来

数值的比较,字符串的比较,日期的比较,between…and….(在两者之间,包含两个边界),like(_,%)(模糊查询,关键字查询),in(匹配查询)

is null表示空   is not null 表示非空

between。。and。。格式: select * from 表明 where 列明 between  xx and  xx

比较符:> < >= <= !=<> =   sql中的赋值符号:    :=  赋值符号

逻辑运算符: and 与     or或    not

排序关键字:order by      asc 升序 为默认排序可以省略       desc 降序

九、函数

单行函数:只对一行数据影响的函数叫单行函数

单行函数:字符、数值、日期、转换、通用

字符函数:lower  将字符转换为小写;upper 将字符转换为大写

instr(列,str1)  查询字符   str1在列中的字符

--concat  连接   将两个字符连接    类似于||

select concat(ename,job) from emp

--length 返回字符串的长度  

select lengthename) from emp

数值函数:

--dual 这个表没有具体的数据,只是在查询的时候,我们查询的格式为 select  from 表名,当不需要用到表而用到查询结构的时候用dual占位

turnc() 数字截断

round()四舍五入

mod()   求余

日期函数:  sysdate   分为日期和时间

months_between  获得两者之间的月份数

--获得1987/4/191981/2/20这个日期间的月份差

select months_between('19-4-1987','19-4-1981') from dual

add_months   向指定的日期中添加若干月份

last_day 获得本月的最后一天

round (日期,年//日)   日期同样有四舍五入

trunc     日期的截断

转换函数:  分为两种形式:隐式转换   显示转换

隐式转换:自动类型转换

显示转换:对数据用方法进行转换

to_char 转换为字符

to_number 转换为数字

to_date 转换为日期

to_char(date\number,’字符格式’)

将日期转换为字符串  to_char(sysdate,’yyyy-mm-dd’)

将数字转换为字符串  to_char(sal,’00000.00或者9999.99’)

格式中的9的位数,一定要大于等于要转换的数字的位数

如果是货币可以在前面加上$或者l(本地货币)为字符串

to_date(‘字符’,‘日期格式’)

yyyy  代表年   mm代表月  dd代表日  hh时  miss

--插入一条数据到数据库表emp   将日期转换为指定格式

insert into emp values(7856,'lisi','salesman',7698,to_date('1982-12-12','yyyy-mm-dd'),6000,200,10)

to_number(‘字符’,’数字格式’)

--将¥1234.55转换为数字

select to_number('1234.55','l999999999.000') from dual

如果字符含有货币符号,那么格式中也必须有货币符号

通用函数:

nvl(参数1,参数2)处理空值

nvl2(参数1,参数2,参数3)  参数1列中的数据,如果不为空执行参数2,如果为空执行参数3

case  参数  when 列值 then 返回数据

[when  列值2  then 返回数据2

。。。。。]

else 返回数据

end [别名]

通过每一列查出的值作为参数匹配when后面的值,入果匹配上了则返回then后面的值,如果都没匹配上 则返回else中的值,整个函数只是一列

decode(参数,列值1,返回值1,列值2,返回值2,列值3,返回值3,返回值)