1. ADO.NET中读写数据库需要用到哪些对象?他们的作用是什么?
答:sqlconnection:建立与数据库的链接;sqlcommand:用来对数据库发出一些指令;sqldatareader:读取数据;dataadapter:是dataset与数据源之间的桥梁;dataset:把从数据库中所查询到的数据保留起来。详细介绍见:https://blog.csdn.net/qq_43434300/article/details/87987355
2. 写出一条SQL语句:取出student表中第31到第40条数据(已自动增长的ID作为主键,主键可能不连续)
答:select top(10)* from student where id not in(select top(30)id from student)
3. 事务的四大特性分别详细说明
答:原子性:事务是一个整体的工作单元,事务对数据库所做的操作要么全部执行,要么全部取消。如果某条语句执行失败,则所有语句全部回滚。
一致性:**事务在完成时,必须使所有的数据都保持一致状态。**在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。如果事务成功,则所有数据将变为一个新的状态;如果事务失败,则所有数据将处于开始之前的状态。
隔离性:**由事务所作的修改必须与其他事务所作的修改隔离。**事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
持久性:当事务提交后,对数据库所做的修改就会永久保存下来。
4. SQL server是什么类型数据库,保证数据库的完整性都有哪些?
答:SQL server是关系类型数据库;参照完整性、区域完整性、实体完整性。
5. 描述出SQL server数据库中的基本约束以及作用
答:主键约束:确定表中的标识列,(主键字段不能为空,必须唯一),标识:确定一个对象的唯一表现;
外键约束: 确定表与表之间的联系方式,一般情况下通过从表的标识列进行确定,主表:给哪张表添加约束哪张表就是主表,辅助表为从表;
唯一约束:确定这个字段中的数据必须是唯一 ;
非空约束:确定这个字段中的数据必须不能为空;
检查约束:设置这个字段中的数据的特性。
6. 简单叙述索引、视图、触发器、事务、存储过程
答:索引:**就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据库的检索。**类似于现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
视图:**视图是一种虚拟表,具有和物理表相同的功能。**可以对视图进行增、改、查,操作,视图通常是有一个表或者多个表的行或列的子集。**对视图的修改不影响基本表。**它使得我们获取数据更容易,相比多表查询。
触发器:**触发器是一种特殊的存储过程,主要通过事件来触发而执行的。它可以强化约束,来维护数据的完整性和一致性,**可以跟踪数据库内的操作从而不允许未经许可的更新和变化。
事务:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就失败,回滚到操作前状态。
存储过程:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,可以多次调用。
7. 列举出SQL server中的聚合函数(至少五个)
答:sum:返回表达式中所有值的和;AVG:计算平均值;min:返回表达式的最小值;max:返回表达式的最大值;count:返回组中项目的数量;distinct:返回一个集合,删除重复的组。
8. 什么是SQL注入,应该如何防止
答:SQL注入就是把SQL命令插入到web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。
(1)用存储过程来执行所有的查询;(2)限制表单或查询字符串的输入长度;
(3)检查用户输入的合法性,确保输入的内容只包含合法的数据;(4)将用户登录名称、密码等数据加密保存;
(5)检查提取数据的查询所返回的记录数量。
9. SQL中的左联接和右联接查询有什么区别
答:左联接:如果左表的某一行在右表中没有匹配行,则在关联的结果集行中,来自右表的所有选择列表均为空值;
右联接:将返回右表的所有行,如果右表的某一行在左表中没有匹配行,则将为左表返回空值。
10. 详细叙述三层架构开发模式以及三层架构的好处
答:UI:表现层,主要表示web方式;
BLL:业务逻辑层,主要针对具体问题的操作,也可以理解为对数据层的操作;
DAL:数据访问层,主要对非原始数据的操作层,也就是对数据库操作而不是数据,具体为业务逻辑层或表现层提供数据服务。
好处:为了实现高内聚低耦合的思想,降低层与层之间的依赖,标准化。
11. 抽象类和接口的区别是什么?
答:抽象类是一个不完全的类,类里面存储抽象的方法属性,也可以有具体的方法属性,需要进一部的专业化,但接口是一个行为的规范,里面所有的东西都是抽象的,接口可以多继承,类只有单继承,接口强调了必须实现。
12. T-SQL 语言包含哪三种常用语言?详细描述
答:数据定义语言(DDL):SQL记用户定义存储数据的结构和组织,以及数据项之间的关系;数据操纵语言(DML):SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新;数据控制语言(DCL):可以使用SQL来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问。
13. 单例模式的好处是什么?如何实现单例模式
答:单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用;实现:将构造函数私有化,使用一个公开静态方法,使用一个静态属性进行判断当前窗口是否被创建,重写方法。
14. 请简单描述类和结构的区别
答:(1)值类型和引用类型:结构值类型,类引用类型;
(2)继承性:结构不能从另一个结构或类继承,本身也不能被继承,类可以继承其他类和接口,自身也能被继承;
(3)内部结构:结构没有默认的构造函数,但可以添加构造函数,没有析构函数,类有默认的构造函数,有析构函数。
15. 请简单描述socket进行同步通讯编程的详细步骤
答:服务端:①:创建一个用于监听连接的Socket对像;
②:用指定的端口号和服务器的ip建立一个EndPoint对像;
③:用socket对像的Bind()方法绑定EndPoint;
④:用socket对像的Listen()方法开始监听;
⑤:接收到客户端的连接,用socket对像的Accept()方法创建一个新的用于和客户端进行通信的socket对像;
⑥:通信结束后一定记得关闭socket;
客户端:①:建立一个Socket对像;
②:用指定的端口号和服务器的ip建立一个EndPoint对像;
③:用socket对像的Connect()方法以上面建立的EndPoint对像做为参数,向服务器发出连接请求;
④:如果连接成功,就用socket对像的Send()方法向服务器发送信息;
⑤:用socket对像的Receive()方法接受服务器发来的信息 ;
⑥:通信结束后一定记得关闭socket;
16. .NET中的错误处理机制是什么?
答:.NET错误处理机制采用try,catch,finally结构,发生错误时,层层上抛,直到找到匹配的catch为止。
17. 请详细描述c#中的访问修饰符
答:public:(公开的)范围:所有类或者成员 权限:任何代码都可以访问;
private:(私有的)范围:所有类或者成员 权限:只能在本类中访问;
protected:(受保护的)范围:类和内嵌类的所有成员 权限:当前类以及所有的子类;
internal:范围:类和内嵌类的所有成员 权限:应用于同一程序集;
protected internal:范围:类和内嵌类的所有成员 权限:同一程序集和子类。
18. 名词解释SQL/XAML/XML/HTML/OPP/CTS/CLS/CLR
答:SQL:结构化查询语言;XAML:可扩展应用程序标记语言;XML:可扩展标记语言;HTML:超文本标记语言;OOP:面向对象;CTS:通用类型系统,一种确定公共语言运行库如何定义使用和管理类型的系统;CLS:公共语言规范,要和其他对象完成交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开哪些它们必须与之互用的所有语言的通用功能。为此定义了公共语言规范,它是许多应用程序所需的一套基本语言功能;CLR:公共语言运行库,.NETframework提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。
19. 重写和重载的区别是什么?ref参数和out参数的区别是什么?
答:重写:它表示重写基类的方法,而且方法的名称,返回值类型,参数类型,参数个数要与基类相同;
重载:方法的名称相同,不同的参数类型,不同的参数个数不同的参数顺序;
区别:重载编译时多态,重写运行时多态,重载不需要继承,重写必须继承;
ref:引用传参,传进方法中的参数,如果在方法内发生改变,那么这个参数变量将永久性发生改变;
out:方法中的out参数在方法结束时,需要准备一个相同类型的变量来接收out的结果,并且必须带out关键字。
20. 详细描述值类型和引用类型的异同
答:基于值类型的变量直接包含值,将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
从值类型不可能派生出新的类型,但与引用类型相同的是结构也可以实现接口。
与引用类型不同,值类型不可能包含null值。
值类型主要由两类组成:结构、枚举;结构分为以下几类:numeric(数值)类型,整型,浮点型,decimal,bool,用户定义的结构。
引用类型的变量称为对象,可存储对实际数据的引用。声明引用类型的关键字class、interface、delegate,内置引用类型:object、string。
浙公网安备 33010602011771号