Oracle

一.分类

	传统关系型数据库	 old-sql
	Mysql、Oracle、PostgreSQL、DB2、H2
	
	非关系数据库 缓存数据库   no-sql
	Redis、MongoDB、Hbase
	
	云数据库,适用于海量数据,快速扩展  . New-SQL
	阿里云、腾讯云、百度云、京东云、七牛云等

高并发系统的数据设计
在这里插入图片描述
互联网企业:数据库的定位:存储数据
传统行业(并发量小):数据库定位:存储数据和逻辑运算

Oracle安装 链接测试 链接 navicat(百度即可)

二.Oracle基本功

数据类型  
字符型,数字性,日期性,大对象型,RAW和ROWID数据类型

约束条件
主键外键,外键,默认,非空,唯一,Oracle(没有自增约束),mysql(有自增约束)

基本sql
DDL数据定义语言,
DML数据操纵语言,
DQL数据查询语言,
DCL数据控制语言,
TPL事务处理语言,
CCL指针控制语言,

DDL:
Create:创建,Alter:修改,Drop:删除
-- 新建
create table t_user2003(id INTEGER primary key ,name varchar2(50),pass varchar2(100),ctimedate);
--修改
ALTER table t_user2003 add flag INTEGER ;
--删除
drop TABLE t_user2003;

DML:
Insert:新增,Update:修改,Delete:删除
--新增
insert into t_user2003(id,name,pass,ctime,flag)
values(1,'xieyuan','xy888888',TO_DATE('2020-10-16','yyyy-MM-dd'),1);
--修改
update t_user2003 set flag=2 where id=1;
--删除
delete from t_user2003 where id=1;

DQL:
Select:查询
select id,u.* from t_user2003 u;
select * from t_user2003 where id in (1,3,5);
select * from t_user2003 where id BETWEEN 1 and 5;
select * from t_user2003 where id BETWEEN 1 and 5 and flag=2;
select * from t_user2003 where name like '%x%';
select flag from t_user2003 group by flag;
select u.* from t_user2003 u order by id desc;

关键字
and or like in between and  exists  distinct  group by  having order by

聚合操作
聚合函数  一般分组使用
count sum vag max min
select count(*),max(id),min(id),avg(id),sum(id) from t_user2003 group by id;

分页
Oracle的分页使用时rownum
性能最高的分页:带排序
select * from
(select u1.*,rownum as rid from
	(select * from t_user2003 order by id desc)u1
	where rownum<=4)u2
where rid>=3;

不带排序
select * from
(select u1.*,rownum as rid from t_user2003 u1 where rownum<=4)
where rid>=3;

联合查询
自然查询(笛卡尔积查询)
等值查询 结果和内连接一样,但是性能很低
内连接查询
外连接查询(右外和左外)
全连接查询
子连接查询
--自然查询
select * from t_user2003,t_userlog2003;
--等值查询
select * from t_user2003 u1,t_userlog2003 u2 where u1.id=u2.userid;
--内连接
select * from t_user2003 u1 INNER JOIN t_userlog2003 u2 on u1.id=u2.userid;
--左外连接
select * from t_user2003 u1 left JOIN t_userlog2003 u2 on u1.id=u2.userid;
--右外连接
select * from t_user2003 u1 right JOIN t_userlog2003 u2 on u1.id=u2.userid;
--全连接查询
select * from t_user2003 u1 full JOIN t_userlog2003 u2 on u1.id=u2.userid;
--子查询 将一个查询结果作为另一个查询的条件
select * from t_user2003 where id in (select userid from t_userlog2003);

三.数据库进阶
序列

	序列:Oracle提供的用于生成数字的结构
	比如:Oracle没有自增约束,想要实现自增,可以定义序列
	创建序列
	create sequence 序列的名称
	[INCREMENT by 自增的值]
	[START with 起始值]
	[MAXValue 最大值]
	[MINValue 最小值]
	[cycle|nocycle]
	[cache|nocache]
	
	使用序列:
	nextval:获取下一个值 如果是第一次就是初始值
	currval:当前值
	删除序列
	drop sequence 序列的名称
	
	--创建序列
	create sequence seq_idauto2003
	INCREMENT by 1
	START with 100;
	
	--使用序列
insert into t_userlog2003(id,userid,info,ctime) values(seq_idauto2003.nextval,1,'新增用户',TO_DATE('2020-10-16','yyyy-MM-dd'));

	--获取当前值
select seq_idauto2003.currval,u.* from t_userlog2003 u;

	--删除
drop sequence seq_idauto2003 ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值