• 数据库理论知识及面试题


    数据库部分 

    1、什么是sql注入,如何防止?

      sql注入:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。简单说就是sql拼接。

      如何防御:

        a:删除用户输入内容中的所有连字符

        b:对于用来执行查询的数据库帐户,限制其权限。用不同的用户帐户执行查询、插入、更新、删除操作。由于隔离了不同帐户可执行的操作

        c: 用存储过程来执行所有的查询。SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击

        d:查用户输入的合法性,确信输入的内容只包含合法的数据

    2、sql如何优化?

      a:要显示什么字段, 就查询什么字段

      b: 建立索引

      c:减少对表的查询

      d:分表分库

    3、左连接与有连接的区别?

          左连接:只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来

       右连接:右连接是只要右边表中有记录,数据就能检索出来

    4、union 与union all区别

      union 将两个表连接后删除其重复的项; 
      union all 将两个表连接都不删除其重复的项。 

    5、什么是jquery? jquery的选择器有几种?
      1、基本选择器
      2、层次选择器
      3、过滤选择器
      4、表单选择器

    一.SQL Server查询第31到40条数据?

    大致分为两种情况:ID连续和ID不连续。

    1.ID连续的情况:select * from A where ID between 31 and 40
    2.ID不连续的情况:

    (1)两次对表查询,效率较低。
      select top 10 * from A where ID not in (select top 30 ID from A)
    (2)外层查询没有对表A进行查询,效率提高。
      select top 10 * from (select top 40 ID from A order by ID) as a order by a.ID desc 
    (3)ROW_NUMBER()函数效率更高,SQL2005以上版本可用。
      select * from(select *,ROW_NUMBER() over(order by ID)as 'userID' from A) as a where a.userID between 31 and 40

    注:强推一波个人小站:小语雀网 | 欢迎大佬们访问哈~
  • 相关阅读:
    异或运算
    GitHub使用简介
    归并排序
    快速排序
    字符串匹配
    Runner站立会议06
    Runner站立会议05
    Runner站立会议04
    记计账需求分析
    Runner站立会议03
  • 原文地址:https://www.cnblogs.com/zpblogs/p/7514399.html
Copyright © 2020-2023  润新知