oracle数据库基础知识

前端之家收集整理的这篇文章主要介绍了oracle数据库基础知识前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、关于安装

1.1 数据库管理组件:

net configuration assistant 配置监听程序
通过服务中是否包含1TNSListener检查

1.2 创建数据库实例
database configuration assistant创建,字符集,密码等配置
安装后的oracle有5个服务

二、理论知识


2.1 DDL data description language数据定义语言

定义要在数据库中存储哪些信息
drop 删除
create
alter 修改
grant 赋予权限
revoke 收回权限
truncate 截断
DML data manipulation language数据操纵语言

对数据中表进行操作
create创建
read读取
update更新
delete删除
DCL数据控制语言

数据库中对象进行权限管理的数据控制语言
2.2 约束

(1)主键约束

主键约束每个表只能有一个,可以由一列或多列组成,多列组成的成为复合主键。

主键约束保证本列值唯一且非空

(2)外键约束

又称为参照约束,即本表某列参照其他表某列。被参照的列不可以被删除

一般使用逻辑外键,而非物理外键。

(3)唯一约束

约束本列值不可以重复,值可以为空。一个表中可以由多个列设置唯一约束。

一般认为唯一约束耗费性能,即插入时,数据库需要检索本列是否有此值。

(4)检查约束

检查约束指定列的值取值范围,或者长度等等。

check(length(phone)=11);
check(quantity>0 and quantity<25)

(5)非空约束

约束此列不可以有控制。一般经常使用。

2.3 数据类型

(1)字符型

varchar2 0-4000字节,char 0-2000字节

(2)数字型

number(p,s) p代表精度,s代表保留的小数位,用来存储定长的整数和小数

float 浮点型 二进制

(3)日期类型

date 存储日期和时间,从公元前4712年到9999年,精确到秒

timestamp 存储日期和时间,比date更精确,可以精确到小数秒,还能显示上午还是下午

(4)其他数据类型

blob 存储二进制数据 最大4G

2.2 select 查询

(1) select 字段一般不建议用*模糊查询,主要原因如下:

查询具体字段比*效率高

返回必要的字段减少网络消耗

表中增加新字段时容易导致原来的程序出现异常

(2) order排序时如果列有null值,默认会看成最大值,即升序时null值在最后,降序时在首位。

也可以指定null值位置:降序时指定null值排在order by 字段 desc nulls last,或者asc nulls first;

(3) 使用表达式操作查询字段

使用符号 || 表示连接,类似java中的+号

例: select price || '*' || 1.25 || '=' || price*1.25

结果为 58.2*1.25=72.25

(4) 使用函数操作查询字段

例 select subStr(priceName,1,6) as new priceName 即显示第1到6位字符,此处是从1开始

(5) 排序条件

order by关键字出现在最后,order by可以跟字段名,字段别名,表达式,字段所处位置

select price as price1,num from product order by price1

order by 2代表根据num排序

order by price*num 根据两列乘积排序

(6) 多条件排序

多条件排序会先根据第一个条件排序,如果第一个条件中有相同数据,则根据第二条件排序。

order by price asc,num desc

(7) where子句设置查询条件

where后可跟关系操作符、比较操作符、逻辑操作符

关系操作符:<,<=,>,>=,=,!=,<>

比较操作符:is null,like between and,in

逻辑操作符:and,or,not

between and 是闭区间,包含开始和结束 例: where price between 1000 and 7000

(8) 连接查询

最简单的连接查询是逗号将from后面的表名隔开,结果将取笛卡尔积,A表7条数据,B表8条数据,连接后结果为56条。

在上面sql加入where条件或on条件,可以对结果集进行过滤,例:

select * from emp e,salgrade s

select * from emp e salgrade s where e.sal between s.losal and s.hisal

等值条件的,可以使用A表的某列等于B表某列,如on a.id = b.sid

猜你在找的Oracle相关文章