1、数据库分类
(1)关系型数据库
Oracle:MySQL Oracle
Microsoft:SQL server
IBM:DB2
常见问题:MySQL、Oracle 区别?
① Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。
② Oracle支持大并发,大访问量,是OLTP最好的工具。
3.安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
④Oracle和Mysql操作上也有区别
2、SQL语句分类
(1)DDL(数据定义语言) 和结构相关的 create alter
(2)DML(数据操作语言) 和数据相关的 insert into delete update
(3)DCL(数据库控制语言) grant create view to scott
(4)DQL(数据库查询语言) select
3、查询
(1)条件查询
(2)子查询
(3)嵌套查询
(4)多表关联查询
(5)查询基本语法:
select co|1,co|2| from tab where 条件 group by co|1 having 聚合条件表达式 order by co|1,co|2 asc | desc*
(6)连接:
①自然连接
②内连接
3 外连接(左、右)
④自连接(emp 表 mgr)
4、Oracle 案例
(1)删除重复记录 rowid
(2)分页 rownum
(3)exists in区别?
in:确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。
exists:指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。
(4)union/union all 区别?
union:对两个结果集进行并集操作,不包括重复行,同时进行默认的规则排序。
union all:对两个结果集进行并集操作,包括重复行,不进行排序。
(5)case when (两类案例)
select 姓名,sum(语文),sum(数学) from
(select 姓名,
case when 科目=‘语文’ then 成绩 else 0.0 end 语文,
case when 科目=‘英语’ then 成绩 else 0.0 end 英语 from demo)t group by 姓名;
5、数据库对象
(1)表
(2)视图
(3)索引
(4)序列
(5)储存过程
(6)函数
(7)触发器
6、函数
(1)聚合函数
①sum count avg max min
(2)单行函数
①字符函数 length substr concat lower upper
②数值函数 sqrt ceil foor
3日期函数 add_month add_day diff_
④转换函数 to_date toa_char to_number
5其他 nvl nvl2(类似三目运算符)