整理的sql面试题

1、什么是 sql 注入?如何避免 sql 注入?
用户根据系统的程序构造非法的参数从而导致程序执行不是程序员期望的恶意 SQL 语句。使用参数化的 SQL就可以避免 SQL 注入。1' or 1=1
2 说出一些数据库优化方面的经验?
加索引,尽管插入、删除、更新的速度慢了,加上索引也多占用了空间,查询的速度快了。加上索引以后速度提升非常明显。
(1)在经常检索的字段上使用索引提高查询速度。
(2)select 中只列出必要的字段,而不是*。  
(3)避免隐式类型转换造成的全表扫描,在索引上使用函数也会造成全表扫描
(因为索引只是为字段建立的,一旦使用表达式或者函数,那么索引就是失效了,当然也可以使用“函数索引”“表达 式索 引 ” 解 决这 个问 题 ) 使用 索引 不一 定能 提高 查询 速度 。
 (4) 避免 在索 引列 上使 用计 算( where(Name+'A'=@MyName
不进行无意义优化,根据性能查看器的报表,对最耗时的 SQL 进行优化。
3、什么是数据库事务?
事务三个特性:一致性、原子性、隔离性。
几个 SQL 语句,要么全部执行成功,要么全部执行失败。举例就用最经典的银行转账的例子就行,然后再举个项目中用的例子:批量导入客户数据的时候要么全部导入成功,要么全部导入失败。事务的三个操作:Begin、Commit、RollBack。
4、请你简单的说明数据库建立索引的优缺点
使用索引可以加快数据的查询速度,不过由于数据插入过程中会建索引,所以会降低数据的插入、更新速度,索引还会占磁盘空间。
5.写出一条 Sql 语句:    取出表 A 中第 31 到第 40 记录
答:解 1: select top 10 * from A where id not in (select top 30 id from A)
解 2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
解答 3:ROW_NUMBER(推荐)

转载于:https://www.cnblogs.com/frankx/archive/2012/01/01/2309370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值