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中,所有的空值运算之后都为空

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,返回值)

 

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐