数据库方面的面试题

1
存储过程和函数的区别


存储过程相当于一个脚本 是一系列sql语句的集合 针对某个特定的表
函数是数据库已经定义好的方法 接受参数 返回某种类型的值 不涉及特定表


2
database transaction 数据库事务是什么?


单个逻辑工作单元! 事务就是一种单个逻辑工作单元 这些操作要么全做 要么不做 四个特点
原子性 要么做要么不做
一致性 事务的运行不改变数据库中的一致性 比如完整性约束
独立性 两个以上的事务不会出现交错执行的状态
持久行 就系统的更新是永久的 不会无缘无故回滚


3
游标作用是什么? 怎么判断游标已经到了最后?
游标用于定位结果集的行 通过判断全局变量@@FETCH_STATUS可以判断是否到了最后 通常不是0表示出错或者到了最后


4
触发器分事前触发和事后触发 还有语句级触发和行级触发 有什么区别?


事前和事后根据字面就可以理解了 事前触发器运行于触发事件发生前 事后触发器运行于触发时间发生后
语句级触发可以在语句执行前后执行
行级触发在触发器锁影响的每一行触发一次


5
什么叫SQL注入式攻击,如何防范?
这个记得在.net课上老师讲ADO.net的部分特意说过 就是把用户输入的密码直接嵌套到sql语句 这样可能会使得sql语句怎么都返回真 也就是密码正确
规范的讲 就是攻击者把sql命令插入到web表单的输入域 或页面请求的查询字符串中 欺骗服务器执行恶意的sql命令


如何防范? 只要在利用表单输入构造sql语句前 把表单输入过滤一遍就行了




6
clustered and non-clustered indexes 聚集索引和非聚集索引的差别?


聚集索引的顺序就是数据的物理存储顺序 所以一个表最多有一个聚集索引
非聚集索引的索引顺序和物理存储顺序无关




7
SQL语句
 1找出ppp表中num最小的数 不能用min函数
select * from ppp where num<=all(select num from ppp) 或者 select top 1 num from ppp order by num
 2 同上 可以用min函数
select * from ppp where num=(select MIN(num) from ppp)
 3 选择ppp表中num重复记录
select * from ppp where num in (select num from ppp group by num having(count(num)>1))
 4 复制表结构和复制表的sql语句
select * into B from A where 1=0  select * into B from A
 5  简历临时表 用# create table #tmp()
 6 有一个数据表 一个字段是LASTUPDATETIME 找出最新更新的记录
select * from A where LASTUPDATETIME = select (max(LASTUPDATETIME) from A)
 7 每个部门每个职位工资的最大值
select  dept_id ,job_cat max(salary ) from employees group by dept_id,job_cat;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当面试实施工程师数据库方面的问题时,以下是一些常见的问题: 1. 你在数据库设计方面有什么经验? 回答:我有丰富的数据库设计经验。我熟悉关系型数据库和非关系型数据库的原理和特点,并能根据项目需求选择合适的数据库类型。在设计数据库时,我注重数据表结构的规范化和性能优化,确保数据存储的有效性和一致性。 2. 你如何进行数据库性能优化? 回答:在数据库性能优化方面,我通常会采取以下措施: - 分析查询语句和执行计划,优化慢查询; - 适当创建索引以提高查询效率; - 数据库分区和分表,减轻单个表的负载; - 使用缓存技术,如Redis,减少数据库读写操作; - 定期清理无用数据和日志,保持数据库的整洁。 3. 如何处理数据库备份和恢复? 回答:数据库备份和恢复是保证数据安全的重要环节。我通常会采取以下步骤来处理: - 定期备份数据库,包括完整备份和增量备份; - 确保备份数据的可靠性和完整性,可以使用验证机制; - 在灾难发生时,根据备份恢复数据库,确保业务的连续性; - 尽可能进行灾备方案的规划和测试,以保证数据的可靠性和快速恢复。 4. 你如何保证数据库的安全性? 回答:数据库安全性对于数据的保护至关重要。在保证数据库安全性方面,我会采取以下措施: - 设置强密码,并定期更改密码; - 控制数据库的访问权限,分配不同级别的用户权限; - 定期审计数据库操作日志,检查异常行为; - 使用加密技术保护敏感数据的存储和传输; - 定期进行数据库漏洞扫描和安全性评估。 以上是一些实施工程师数据库方面常见的面试问题及回答,希望对您有所帮助。请记住,针对不同的公司和职位,面试问题可能会有所不同,建议您提前准备并针对具体职位要求进行回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值