Oracle学习之路,佛系更新
一、卸载安装(来自百度经验)
完全卸载:
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中,所有的空值运算之后都为空
nvl(comm,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 length(ename) from emp
数值函数:
--dual 这个表没有具体的数据,只是在查询的时候,我们查询的格式为 select 列 from 表名,当不需要用到表而用到查询结构的时候用dual占位
turnc() 数字截断
round()四舍五入
mod() 求余
日期函数: sysdate 分为日期和时间
months_between 获得两者之间的月份数
--获得1987/4/19到1981/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时 mi分 ss秒
--插入一条数据到数据库表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,返回值)
上一篇: UEFI引导的简单恢复方法
下一篇: sqlplus导入数据