java就业数据库面试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.sql2000和sql2005有什么区别?
a、最直观的一点就是两者的界面有很明显的不同。sql2005的操作风格更接近于vs2005。
b、sql2005比sql2000存储的数据量要大很多,sql2005支持数据库逻辑分区;
c、sql2000与sql20005 jdbc连接不同:
sql2000 jdbc连接:url地址:jdbc:microsoft:sqlserver://
driver :com.microsoft.jdbc.sqlserver.SQLServerDriver;
sql2005 jdbc连接:url地址:jdbc:sqlserver://
driver :com.microsoft.sqlserver.jdbc.SQLServerDriver;
d、安全性能的提高:sql Server 2005包括了一些在安全性能上的改进,例如将用户和对象分开、数据
库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。
e、sql2005还提供了一些新的特性,比如文件流支持(向第三代数据库迈出了可喜的一步)、T-Sql的改
进(处理错误、递归查询功能、关系运算符PIVOT, APPLY, ROW_NUMBER和其他数据列排行功能,等等)、数据库镜像、透明的客户端重定向、新的基于架构的安全模型、内建的Http服务器等...。
1.存储过程的作用?
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是SQL 语句和可选控制流语句的预编译集合,
以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。
可以出于任何使用SQL 语句的目的来使用存储过程,它具有以下优点:
可以在单个存储过程中执行一系列SQL 语句。
可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL 语句快。
2.sqlserver和oracle数据库的性能优化
3.1选用适合的ORACLE优化器
ORACLE的优化器共有3种:
a. RULE (基于规则)
b. COST (基于成本)
c. CHOOSE (选择性)
在缺省情况下,ORACLE采用CHOOSE 优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器.
访问Table的方式
3.2ORACLE 采用两种访问表中记录的方式:
a. 全表扫描
全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.
b. 通过ROWID访问表
你可以采用基于ROWID的访问方式情况,提高访问表的效率,RowId包含了表中记录的物理位置信息.ORACLE采用索引(INDEX)实现了
数据和存放数据的物理位置(RowId)之间的联系。通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到
性能上的提高.
3.3. 选择最有效率的表名顺序(只在基于规则的优化器中有效)
3.4. WHERE子句中的连接顺序.
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数
量记录的条件必须写在WHERE子句的末尾.
3.5. SELECT子句中避免使用‘* ‘
当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用‘*’是一个方便的方法.不幸的是,这是一个非常
低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这
意味着将耗费更多的时间.
3.6. 减少访问数据库的次数
当执行每条SQL语句时, ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量, 读数据块等等. 由此可
见, 减少访问数据库的次数, 就能实际上减少ORACLE的工作量.
3.7. 整合简单,无关联的数据库访问
如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)
3.8. 使用表的别名(Alias)
当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,
就可以减少解析的时间并减少那些由Column歧义引起的语法错误.
3.9. 对经常要查询的字段可以建立一个视图
3.10. 在表中的某个字段上建立索引,可以提高检索速度。
3.模糊查询可以用索引吗?
(1)如果模糊查询是下边这个样子:where a like '*****%',就可以用索引;
如果模糊查询是where a like '%****'的形式,就不能使用索引!
(2)建全文索引后使用constain
4.sql的关键字及其一些函数
sql关键字:all, alter, as, asc, container, create, delete, desc, drop, first, from, in, index,
insert, into, join, last, on, schema, select, selectschema, selectsecurity, table,
to, update, updateidentity, updateowner, updatesecurity, user, with;
函数:Avg(), Count(), First(), Last(), Max(), Min(), Sum(),StDev()
StDevP()[StDev,StDevP返回总体或总体样本的标准偏差的估计值], Var(), VarP()[Var,VarP 返回一个总体或总体样本的方差的估计值
ODBC标量函数:
1. 字符串函数ASCII LENGTH RTRIM CHAR LOCATE SPACE CONCAT LTRIM SUBSTRING LCASE RIGHT UCASE LEFT
2. 数字函数ABS FLOOR SIN A TAN LOG SQRT CEILING POWER TAN COS RAND MOD EXP SIGN
3. 时间和日期函数CURDATE DAYOFYEAR MONTH CURTIME YEAR WEEK NOW HOUR QUARTER DAYOFMONTH MINUTE MONTHNAME DAYOFWEEK