【Oracle】知识点小结
数据库 数据库实例 表空间(逻辑单位) 数据文件(物理单位)
oracle库只有一个实例orcl,和MySQL
mysql:创建库、创建表;多数据库
oracle:创建表空间,创建用户,用户建表,多用户
SQL:分类及每类常见操作符
- DDL:数据定义语言 create alter drop truncate
- DML:数据操作语言,insert update delete
- DCL:数据控制语言 安全 授权 grant revoke
- DQL:数据查询语言 select from子句 where 子句
查询语句结构:
select 列名 * from 表名 where条件 group by分组条件 having过滤 order by排序
oracle:
1、dual:虚表,伪表,补齐语法结构 select 1+1 from dual;
2、别名查询 :列名 别名(as关键字可省略,别名中不能特殊字符 关键字加“”)
3、nvl(num ,0)如果参数1为null则返回2 ,null不确定的值 不可预知的内容 不可做四则
4、拼接:“”别名时使用,‘’使用的值:是字符
|| 连接符, select ‘姓名:’||ename from emp;
concat('姓名:',ename) from emp; 列名是concat(‘姓名:’,ename)值是姓名:*
5、where条件查询:特殊字符 后面用escape‘’转义
关系运算符: > >= < <= != <>
逻辑运算符:and or not 其他运算符:like between in(set) is null is not null
6、排序:order by asc desc 注意null 最后加: nulls first | last
7、函数:要有返回值,单行函数,多行函数:对某列all处理max min count sum avg
数值函数
截取:
求余:mod mod(9,3)0 ; mode(9,4)1
substr('sbgho',0,3)sbg ; substr('shogn',1,3)sho
长度:length('abggg') 去空格trim(‘’)替换字符replace('hello','l','s')
9.日期函数:今天select sysdate from dual; 3月后 add_months(sysdate,3) 3天后sysdate+3
10、执行顺序:from where group by having select order by
where后不能接聚合函数,可接单行函数;having在group by后执行,可接聚合函数
11、分组:select 分组条件,分组后的操作 from 表名 group by 分组条件 having 条件过滤
12 exists,数据量大时高效
13 集合运算:列类型一致 按照顺序写 列的数量要一致,如果不足用空值或指定相同类型的具体值
14 五大约束:
- 列的约束:
- 主键约束:primary key 不能为空,唯一
- 非空:not null
- 唯一:unique
- 检查:check(条件) mysql可写但被忽略 check('男','女','你猜')
- 外键
15 回滚点
事务:原子 隔离 持久 一致 脏读 虚读 不可重复读
- MySQL隔离:read uncommitted ,read committed,repeatable read,serialiazable
- orcale隔离:read committed,seriallizable , read only
提交commit,保持点/回滚点savepoint pointname,回滚rollback
16 视图: 对查询结果的封装 屏蔽表中细节
create or replace view view_test as select ename,job,mgr from emp with read only;
//尽量不要通过视图修改数据
17、PLSQL procedure language过程语言,Oracle对SQL的一个扩展
可像Java中一样写 if else if 编写循环for while
declare
声明变量
变量名 变量类型
变量名 变量类型:= 初始值
vrow emp%rowtype;---声明记录型变量
begin
业务逻辑
end;
dbms_output.put_line()相当于Java中的sout
业务逻辑可以是:
while 条件 loop
end loop; |
for 变量 in 起始值 ……结束值 loop
end loop |
loop exit when 条件 end loop |
18、游标:操作查询结果集,相当于JDBC中的resultSet
19 、异常
too_many_rows:查询出多行记录,赋值给rowtype记录的一行数据变量
no_data_found:没有找到数据
20、存储过程:封装在服务器上一段已经编译好的plsql代码片段
补充:
cascade constraint:强制删除表:先删除外键关联表的外键约束,再删除自己
当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete,truncate不支持事务
上一篇: Hibernate_day01
下一篇: 微媒体沙龙报名数据分析:微信排名第一