数据库部分
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