简介Oracle数据库:
① Oracle 服务器:安装在操作系统中的关系型数据库管理系统(Relationship/RBDMS)并对外提供存储及访问的服务(常规的:增删改查);
相关服务启动:运行(Windows+R)-> services.msc
[1]OracleServiceXE :数据库的核心服务,开启后才可以通过本机SQL*Plus访问数据库
[2]OracleXE(oraDbllg_home1)TNSListener:Oracle监听服务,对外提供链接,开启后才可以通过第三方应用程序或客户端进行访问;
② Oracle 客户端:对BDMS中数据的访问渠道。
[1].SQL*plus:DOS操作界面,运行:cmd->sqlplus用户名/密码(hr/hr)或者无权限的sqlplus/nolog->conn sys as sysdba
[2].isql*Plus:Web操作界面,访问http://localhost:8080/apex Oracle11g版本已经取消
1.Oracle与其他数据库的区别
①分页查询语法
②特殊的数据类型 varchar2
③主键生成非空
④伪列:
select * from (select * from test) where rownum <= 5
注意:rownum只能写<= 不能写>=
⑤子查询区别:
oracle的子查询也成为临时表 可以不为临时表起别名
mysql的子查询必须要起一个别名否则语法报错
2.主要使用sql语法,需要明确两点:查什么和从哪查
①sql书写顺序:select - from - where - group by - having - order by -
②sql执行顺序:from - where - group by - having - select - order by -
③sql分类:
【1】数据查询语言 DQL(Data Query Language):
select - where - order by - group by - having
【2】数据操作语言DML(Data Manipulation Language)
insert - delete - update
【3】数据定义语言DDL(Data Definition Language)
create - drop - alter
【4】数据处理语言TPL(Transaction Process Language)
commit - rollback
【5】数据控制语言DCL(Data Control Language)
grant - revoke
【6】循环:cycle 达到最大值后返回,最小值则循环
【7】order 值:每次生成多个值
3.数据类型
char(n) 固定长度字符串
varchar2(n) 可变长度字符串
nvarchar2(n) 可变长度字符串,长度为字符个数
number 可存储任意长度的浮点数
number(5) 可存储总长度为5的整数
number(5,2) 可存储总长度读为5的 整数+浮点数
4.约束
主键约束:primary key
唯一约束:unique
非空约束:not null
检查约束:check
外键约束:foreign key
5.事务:
①概念:
【1】事务时一个原子操作,可以由多条sql语句组成
【2】在同一个事务当中,所有的sql语句被视为一个整体,如果sql都成功那么事务运行完毕,如果有一条失败则事务失败
②边界:
【1】开始:上一个事务结束后的第一条增、删、改语句为事务的开始
【2】结束:
[1]显示提交:commit 关键字
[2]隐式提交:一条创建表 | 删除表的语句 | 客户正常退出
[3]显示回滚:rollback 关键字
[4]隐式回滚:非正常退出(断电,Down机)
【3】特性:ACID
A:原子性(Atomic):同一事务中的多条sql语句时不可分割的整体,都成功才成功有一个失败则全部失败
C:一致性(Consistency):事务开始前和事务结束后,数据库中数据保持一致;
I:隔离性(Isolation):事务与事务之间相互独立,互不干涉
D:持久性(Durability):事务执行后,对数据库的影响是永久的;
③原理:
数据库会为没一个客户端维护一个 回滚段(缓冲区),一个事务中所有的增删改语句的执行结果都会缓存到回滚段中,只有当事务中所有SQL军正确执行后,提交事务(commit),此时才会将回滚段中的数据同步到数据库中,否则无论因为哪种原因导致失败,整个事务回滚(rollback);
④
6.操作优化之:生成自增值用来替代数据库的id自增
create sequenct 序列名_参数
例:create sequenct demo_seq
①获取下一个值:select 序列名.nextval from dual
②获取当前值:select 序列名.currval from dual
注:dual表:虚表(一行一列),维护SQL语法完整性
③序列参数
【1】minvalue 最小值,生成的序列数最小是几
【2】maxvalue 最大值,生成的序列数最大是几
【3】start with 起始值,第一次使用时的初始值
【4】increment by 递增数,每次使用增加几
7.视图:
①语法: create view 视图名 as 生成视图的sql
注意:保存sql语句的虚表,用来简化查询,但不会独立存储数据,原表发生改变,视图的查询结果也会跟着改变,没有优化任何查询性能。
②操作:
【1】create view 创建视图
【2】drop view 删除视图
【3】grant create view to 用户名 授权
【4】revoke create view from 用户名 撤销
8.数据库管理系统 DBMS(Database Management System)
①网状结构数据库:以节点形式存户和访问
②层次结构数据库:以树状接口存储和访问
③关系结构数据库:以表格(Table)形式存储和访问
④非关系型数据库:Redis,MongDB.使用哈希表,以键值对形式存储和访问
9.单行函数
①语法:select 单行函数(列名)from 表名
②日期转字符串按指定格式转换成字符串
年月日: select to_char (sysdate,'yyyy-mm-dd')
年月日时分秒: select to_char (sysdate,'yyyy-mm-dd hh24:mi:ss')
③将自定义字符串按照日期格式进行转换成日期
select to_date ('2008-01-01','yyy-mm-dd') from dual
④查询指定日期是星期几 函数的嵌套
select to_char (to_date('2018-05-23','yyyy-mm-dd'),'day') from dual
⑤取余运算:参数1可以是列名
select mod(5,2) from dual
10.聚合函数
sum() 求总和
avg() 求平均
max() 求最大
min() 求最小
mod() 取余运算
count() 统计行数(忽略null值)
11.表连接
①外连接:
【1】左外连接:left join //左 连接 以左侧的表为主表
【2】右外连接:right join //右 连接 以右侧的表为主表
【3】全外连接:full join //全外 连接 左右都为主表
②内连接:inner join//内 连接 两个表都是从表 例:显示 有部门的员工,有员工的部门
③自连接:以上随意哪个关键字 (物理上的一张表,逻辑上的两张表)