C# SQL 面试题自我总结
1,asp.net单点登录机制
2,多线程同步机制
3,写一个冒泡排序算法
4,写一个递归算法
5,字符串反转
字符串分隔后调用reverse 方法。
6,sql 中ID自动增长,查询31到40条记录。(ID可能不连续)
select * frome table where id between 31 and 40
7,sql 中处理字符串的方法
substring,split,charindex,replace,cast,convert,day,month,year,dateadd,datediff
8,SQL常用对象
connection 数据库链接对象
command 数据库命令对象,主要执行添加,删除,修改和查询。也可以执行存储过程。
command 三个主要方法
ExecuteNonQuery(),返回受影响的函数,主要用于对数据库执行增加,更新,删除操作。
ExecuteReader(),返回一个DataReader对象
ExecuteScalar(),从数据库检索单个值,主要用于统计操作。
DataReader 是一个读取行的只读流的方式
DataAdapter 数据适配器对象,从数据源中检索出数据送往数据集对象,或者将数据集中经过编辑后的数据返回数据源。
DataSet
DataTable:
数据行 DataRow
数据列 DataColumn
9,用javascript 编写 ajax示例
第一步 创建 ajax 第二步 链接到服务器 第三步 发送请求 第四步 接收返回值
10,javascript 封装函数
11,存储过程和函数的区别
相同 两者都有出参
不同 函数中有返回值,且必须返回,而存储过程没有返回值
函数有返回值类型,调用时,在select中,必须将返回值赋给变量;存储过程无返回值类型,不用将结果赋值给变量
函数可以在select语句中直接使用,而存储过程不能
12,重载和重写的区别
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法
13,面向对象三大特性
封装,继承,多态
14,get 与post 区别
GET 用于获取数据。GET 是在 URL 中传递数据,它的安全性低,容量低。
POST 用于上传数据。POST 安全性一般,容量几乎无限。
15 ,http 无状态,怎么理解,怎么保持状态
16,怎么理解堆和栈。
17,sql注入,怎么防止
sql 注入:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
使用参数化查询语句
18,try catch finaly
finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。
注意:如果没有catch语句块,那么finally块就是必须的。
19,CSS中优先级 Class,ID,Tag,Element
ID->Tag->Element->Class
20,javascript 获取ID,class,tag的调用方式
document.getElementById(),document.getElementsByTagName('')[]
21,常用的泛型
List、Dictionary、Queue、Stack、SortedList和SortedDictionary、LinkedList
22,sql 中常用的日期函数
day,month,year,datediff,dateadd,getdate
23,sql 中常用聚合函数
平均数 avg ,最大数 max,最小数 min,求和 sum,求个数 count
24,left join 与inner join 区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录,B表记录不足的地方均为NULL..
inner join并不以谁为基础,它只显示符合条件的记录.
25,如何优化数据库
常见的数据库优化方法:索引(数据库),缓存,分表,分库,sql优化。