一.ORACLE数据库
1.SQL语句分类
- DQL(数据查询语言):select
- DML(数据操作语言):insert、delete、update
- DDL(数据定义语言):create、drop、alter
- DCL(数据控制语言):grant(授予权限)、revoke(收回权限)
2.oracle是怎样分页的?
- oracle是用rownum进行分页的。
- 最内层的SQL,查询要分页的所有数据
- 第二层SQL,通过rownum伪列确定显示数据的上限
- 最外层SQL,设置显示数据的下限
3.truncate和delete的区别
- truncate和delete都可以将数据删掉,truncate操作不记录到rollback日志,同时数据不能恢复
- truncate是数据定义语言(DDL),delete是数据操作语言(DML)
- truncate不能对视图进行操作,delete操作不会腾出表空间的内存
4.oracle常用函数
- 字符串函数:concat()连接字符串、length()返回长度、lower()转换成小写、upper()转换成大写
- 数字函数:abs()返回绝对值、sqrt()返回平方根、mod()求余
- 日期函数:
- 转换函数:to_char()转换为字符串、to_date()将字符串转换为日期类型
- 聚合函数:avg()平均值、sum()求和、min()、max()最大值最小值、count()数据统计
5.创建索引及它的优缺点
语句:
create index 索引名 on 表名
优缺点:
能加快检索进度,加强表与表的连接
创建索引会很占用空间
6.关系型数据库的关系操作
选择、投影、连接、增加、删除、修改
7.oracle中数据库对象的命名规则
-
必须由字母开始,长度在1~30个字符之间
-
包括字母、数字、_、$、#
-
同一个oracle服务器所拥有的对象名不能重复
-
不能是oracle的保留字
-
大小写不敏感
8.数据库的三大范式
- 第一范式:强调的是列的原子性,要求每一列的值不能再拆分
- 第二范式:在第一范式的基础上,所有列必须完全依赖于主键,而不是部分依赖
- 第三范式: 在第二范式的基础上,所有列 必须直接依赖于主键,不能存在传递依赖
9.事务的特性
- 原子性:事务中的各项操作,要么全做要么全部做,任何一项操作的失败都会导致整个事务的失败
- 一致性:事务结束后系统状态是一致的
- 隔离性:并发执行的事务彼此无法看到对方的中间状态
- 持久性:事务完成后,即使发生灾难性的故障,通过日志和同步备份可以重建数据
10.MySQL和oracle的区别
-
应用方面:
MySQL是中小型应用的数据库,一般用于个人项目或中小型网络;oracle属于大型数据库,一般在具有想的那个规模的企业应用
-
数据类型方面:
MySQL有自动增长的数据类型,oracle没有,需要建立一个自增序列
-
引号方面:
MySQL中可以用单引号、双引号引用字符串,oracle中张宁用单引号
11.使用存储过程访问数据库比直接用SQL语句访问有什么优点
- 存储过程是预编译过的,执行时不需要再编译,执行速度更快;
- 而且存储过程封装了一批SQL语句,便于维护数据的完整性和一致性;
- 可以实现代码的复用
12.解释函数、存储过程、包
- 都是命名块,函数和存储过程是PL/SQL代码的集合,通常是为了完成一个业务
- 存储过程可以不返回任何值,但函数必须有返回值
- 包是为了完成某个完整功能的一组函数和存储过程的集合
13.PL/SQL语句块包含哪些部分
定义部分、执行部分、异常处理部分
14.死锁
是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力的作用,它们都将无法推进下去
原因:系统资源不足、资源分配不当、进程运行的顺序不合适
导致死锁的四个必要条件:
1)**互斥。**一次只有一个进程可以使用一个资源。其他进程不能访问已分配给其他进程的资源。
2)**占有且等待。**当一个进程等待其他进程时,继续占有已经分配的资源。
3)**不可抢占。**不能强行抢占进程已占有的资源。
4)**循环等待。**存在一个封闭的进程链,使得每个进程至少占有此链中下一个进程所需要的一个资源
处理死锁的四种方式:
1)死锁预防
2)死锁避免
3)死锁检测
15.约束的种类
- 主键约束:primary key
- 外键约束:foreign key
- 非空约束:not null
- 唯一性约束:unique
- 默认约束:default
16.触发器的作用
触发器是一种特殊的存储过程,主要是通过事务触发被执行的
作用:它可以强化约束,来维护数据的完整性和一致性;跟踪数据库内的操作不允许未经许可的更新和变化;可以联级运算,如某表上的触发器包含对另一个表的数据操作,该操作会导致该表上的触发器被触发
17.oracle体系结构
逻辑体系结构:块、区、段、表空间
物理体系结构:表空间、三大文件(数据文件、日志文件、控制文件)
18.数据库的优化
- 调整数据库结构的设计:需要考虑是否使用分区功能,是否建立索引等
- 调整数据库的SQL语句
- 调整内存分配
- 调整操作系统参数
19.oracle数据库启动与关闭的步骤
- 启动:启动实例 ——加载数据库数据——打开数据库
- 关闭:关闭数据库——卸载数据库数据——关闭实例
20.归档模式和非归档模式
归档模式是指可以备份所有的数据库并恢复到任意一个时间点
非归档模式不能恢复到任意一个时间点,但是可以带来数据库性能上的少许提高
21.解释冷备份和热备份
- 热备份是指在数据库仍旧处于工作状态时进行备份,针对归档模式的数据库
- 冷备份是指在数据库关闭后进行备份,适用于所有模式的数据库
- 热备份的优点:在备份时数据库可以被使用并且可以将数据库恢复到任意一个时间点
- 冷备份的优点:它的备份和恢复操作非常简单
22.msyql和Oracle的分页
Mysql是使用关键字limit来进行分页的 limitoffset,size 表示从多少索引去多少位.
Oracle的分页,大部分情况下,我们是记不住了。说思路,要使用三层嵌套查询。
二.MySQL数据库
1.MySQL有哪些数据类型
整数类型:int
小数类型:float(单精度浮点数)、double(双精度浮点数)
日期时间类型:year、date、time
字符串类型:char 、varchar
2.MySQL有哪些锁?
共享锁:又叫读锁。当用户要进行数据的读取时,对数据加上共享锁,可以同时加上多个
排他锁:又叫写锁。当用户要进行数据的写入时,对数据加上排他锁,只能加一个
3.视图和游标
- 视图:是一种虚拟表,在物理上不存在。内容与真实的表相似,包含一系列行和列的数据,这些数据来自定义视图所应用的基本表
- 游标:是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,用户可以通过游标获取记录并赋给主变量,交给主语言进一步处理
4.主键、外键、超键、候选键
- 主键:一个数据列只能有一个主键,且不能为空值
- 外键:一个表中存在的另一个表主键
- 超键:在关系中能唯一标识元组的属性集,超键包含候选键和主键
- 候选键:是最小的超键,即没有冗余元素的超键
5.关联查询
交叉连接、外链接、内连接、全连接
内连接:等值连接、不等值连接、自然连接
外连接:左外连接、右外连接
6.JDBC连接数据库的步骤
加载数据库驱动
建立数据库连接
创建数据库操作对象
定义操作的SQL语句
执行数据库操作
获取结果集
关闭对象,回收数据库资源(关闭结果集–>关闭数据库操作对象–>关闭连接)