声明式事务管理(通知 切面) SpringMVC的配置文件: 扫描包 注解
放过静态资源 视图解析器 拦截器设置
Spring配置文件如何写?
☆1.Sql优化问题?[重点--德邦 平安科技] 根据主键查询
大数据表删除,用truncate table代替delete 合理使用索引
查询时,使用列名(select *) 尽量少嵌套子查询
避免在 where 条件中进行函数计算 减少对表的查询:
尽量多使用 COMMIT:
使用 DECODE 函数来减少处理时间 删除重复记录 sql 语句用大写的 用 IN 来替换 OR 事务
使用外键;
MySQL优化 查询缓存优化查询 设置主键 避免 SELECT * 不要 ORDER BY RAND() 为搜索字段建索引 越小的列会越快 选择正确的存储引擎(MyISAM 和 InnoDB)
☆2.分页[上海触特信息科技] MySQL:select * 表名 limit pageIndex,(pageIndex-1)*pageSize Oracle: SELECT * FROM
(SELECT ROWNUM rn,t.* FROM
(SELECT ename,sal FROM emp ORDER BY sal) t WHERE ROWNUM<= pageIndex*pageSize) WHERE rn>(pageIndex-1)*pageSize Sqlserver:
--排序查询所有结果--限制查询的上限 --限制查询的下限 select top pageSize(pageIndex-1) id from test order by id
取前10条
☆3.说出数据连接池的工作机制是什么? 连接池的实现是以空间换时间
优点:效率高,安全性稳定性好,节约资源
工作机制:
创建:J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。 调用:客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。 如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
释放:当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。
4.外连接与内连接的区别?[平安科技]
内连接(自然连接):只有两个表相匹配的行才能在结果集中出现 外连接
左外(以左边的表为主) 右外(以右边的表为主)
全外连接(左右两边都不受限制)
5.外连接中的左外连接、右外连接和全外连接有什么特点? 左外连接:A left [outer] join B on 等值条件 右外连接:A right [outer] join B on 等值条件 完全外连接:A full [outer] join B on 等值条件
6.表级锁,行级锁和页面锁各有什么特点?
表级锁 , 开销小,加琐快。不会出现死锁;锁粒度大,发出琐冲突的概率最高,并发度最低。
行级锁 , 开锁大,加琐慢;会出现死琐;琐力度最小,发生琐冲突概率最低,并发度也最高。
页面锁 , 锁力度界于表锁和行锁之间,并发度一般。
7.如何操作一个游标读取一个表? 写出代码? ☆☆☆游标
用过游标吗?在存储过程中用过游标吗? //创建存储过程 create or replace procedure showstudent(v_cname in varchar) as s_tmp number; s_total number; //声明游标 cursor cur_grade is select * from sc where c# in (select c# from c where cname = v_cname); begin //for循环游标(自动打开,自动提取,自动关闭) for cur_rec in cur_grade loop s_tmp := cur_rec.grade; s_total := nvl(s_total, 0) + nvl(s_tmp, 0); end loop; dbms_output.put_line(v_cname || '的总分是: ' || s_total); end; 8.什么是存储函数? 如何声明存储函数?存储函数有什么限制?
☆9. 什么是存储过程? 如何创建存储过程?[平安科技] 概念
a.类似于C#/Java中的方法,是对代码的封装,方便用户调用 b.过程可以无参,也可以接收1个或多个参数 c.过程可以通过return返回1个int类型数据 优点
a模块化,按功能进行封装 b.重用性好,易于维护
c.执行效率高,编译好之后存储在数据库中 d.减少网络流量的使用 e.安全性高 创建
CREATE OR REPLACE PROCEDURE 过程名 AS
声明部分 BEGIN
逻辑处理部分 END; 调用 BEGIN
过程名 END;
10.存储过程和函数的区别
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程
函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表
☆☆☆☆11.事务是什么?[重点]
1、概念:同生共死
1)事务是最小的逻辑单元
2)该单元包含1个或者1组数据库操作
3)这些数据库操作要么同时成功,要么同时失败
2、分类: 1)隐式事务
2)自动提交事务:针对单个数据库操作
SQLServer将单个的insert/delete/update操作当作1个独立的事务,自动提交 3)显式事务:针对多个数据库操作 a- 开始事务 begin transaction b- 提交事务 commit transaction c- 回滚事务 rollback transaction
注意:使用@@error累加每个操作的错误号,作为判断提交或回滚依据
3、特点:ACID
A- 原子性,事务是最小的、不可分割的逻辑单元 C- 一致性,事务前后的数据应保持一致 I- 隔离性,事务之间是相互独立的
D- 永久性,事务提交后对数据库的影响是永久的,一旦提交则无法回滚
事务的作用:保证了数据的完整性
12.Oracle
①Oracle是甲骨文公司的一款关系数据库管理系统。 ②Oracle主要特点:
1.)完整的数据管理功能: 1.数据的大量性, 2.数据保存的持久性, 3.数据的共享性, 4.数据的可靠性。 2.)分布式处理功能。
3.)用ORACLE能轻松的实现数据仓库的操作。
③Oracle的优点:可用性强,可扩展性强,数据安全性强,稳定性强。 13.MySQL
1.MySql是一个开放源码的小型关联式数据库管理系统。 2.MySql的系统特性:
1.为多种编程语言提供了API。
2.支持多线程,充分利用CPU资源。 3.提供多语言的支持。
4.优化的SQL查询算法,提高查询的速度。
5.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
14.表和视图的区别?[平安]