SQL SERVER 题
某商品价格表如下,ID是自增长列
表名是JGTable,上面是表的结构
题目是:请查出当前时间800001商品的价格,设当前时间是curdate=2017-01-02
答案:select Price 价格 from JGTable where Date1 <‘2017-01-02’ and date2 >'2017-01-02'
请安排2017年五一假期(2017-05-01到2017-05-03)的促销价格为79.90
答案是:insert into JGTable (ID,NO,Price,Date1,date2,bk) values (15,800001,79.90,‘2017-05-01’,‘2017-05-03’,‘五一促销’)
c#
1.用循环求出自然数1到n的和。
答案是:
1 public static int Mangg(int n) 2 { 3 4 int w = 0; 5 for (int i = 0; i < n + 1; i++) 6 { 7 w += i; 8 } 9 return w; 10 }
2.用递归求出自然数1到n的积
答案是:
1 public static int MIK(int n) 2 { 3 if (n == 1) 4 return 1; 5 else 6 return n * MIK(n - 1); 7 }
现有学生表 students,字段有id,name,有成绩表 scores,字段有id,class_id(课程 id), student_id(对应学生表的 id),score(分数),[student].[name]是varchar(255),其他字段都是int类型。
1.写出sql,查出所有学生姓名和该学生的平均分。
select a.name,AVG(b.score) from students a , scores b where a.id=b.student_id group by a.name
2.利用上题的数据,输出所有科目成绩高于该学生平均分的学生姓名,课程ID和该课程的分数
select b.class_id,a.name,b.score from students a join scores b on a.id=b.student_id where score>80
1.以下命名空间表述不正确的是(B)
A.命名空间引用一定要区分大小写
B.命名空间是不可以嵌套定义
C.可以为命名空间指定别名
D.命名空间分为用户定义的命名空间和系统定义的命名空间
2.下面给出的变量名(c#)不正确的是(A C)
A.bool checked B.public readonly int MAX_VALUE=10
C.string ?total D.char @using
3.在c#中,选出不可以用来修饰方法参数的关键词(B)
A.Out B.In C.Ref D.Param
4.选出不能获取Get或Post参数值的方法(A)
A.request.Param B.Request.Form
C.Request.Querystring D.Request.GetAttrible
5.下面对final,finally,finalize描述不正确的是(B)
A.final用于申明属性,方法和类,表示属性不可变方法不可以被覆盖类不可以被继承
B.finally 是异常处理语句结构中的执行部分。但return能阻止finally 语句块的执行
C.finallize表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象
D.上述ABC中其中二项是正确的
6.以下不属于DHTML的组成部分是(A)
A.XML技术 B.CSS技术 C.DOM技术 D.脚本语言
7.如果需要确保用户输入大于30的值,应该使用的验证控件是(B)
A.RequiredFieldValidator B.CompareValidator
C.RangeValidator D.RegularExpressionValidator
8.不属于XML支持组件模块的标准是()
A.xmlhtml B.db2xml C.xml repository D.odbc2xml
9.GridView.DataSource不可以连接的数据源是()
A.dataset B.xml C.dataview D.IList
10.使用以下不可以进行模糊查询的是(D)
A.OR B.Not between C.Not In D.Like
11.在Products数据库中建立一个新表Authors,表中应该包含nam列和每个作者的ID列,下面语法正确的是(B)
A.CREATE TABLE AUTHORS ON Prpducts(name varchar(50),ID smallint)
B.ALTER DATABASE products ADD TABLE Authors(name varchar(50),ID smallint)
C.CREATE TABLE products Authors(name varchar(50),ID smallint)
D.CREATE TABLE products Authors(name,ID)
12.网站增加一个奖励措施:购书满100元,打七折,相关代码编写在(B)中?
A.表示层 B.业务逻辑层 C.数据访问层 D.模型层
13.IIS不具有的功能是()
A.可组建LDAP服务器 B.可组建SMTP服务器
C.可组建FTP服务器 D.可组建NNTP服务器
14.有关Web.config和Global.aspx文件说法错误的是()
A.远程客户端可以浏览这两个文件的内容
B.Global.aspx必须保存在站点的主目录
C.Global.aspx用于编写 Application和Session 对象事件函数
D.Web.config实际上是一个XML文件,用于保存计算机,站点,目录的配置信息
15.在ASP.net内建对象中,必须要有lock和unlock方法以确保多个用户无法同时改变某一变量的对象是(B)
A.Session B.Application C.Cache D.Request
16.下列关于视图与基本表的对比正确的是(A)
A.视图的定义功能强于基本表
B.视图的操作功能强于基本表
C.视图的数据控制功能弱于基本表
D.上面提到的三种功能二者均相当
17.在数据库中,产生数据不一致的根本原因是(D)
A.数据存储量太大 B.没有严格保护数据
C.未对数据进行完整性控制 D.数据冗余
18.在下列类型中,(B)是引用类型
A.enum类型 B.string类型 C.int类型 D.struct类型
19.下列描述错误的是(C)
A.类不可以多重继承而接口可以 B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化 D.一个类可以有多个基类和多个基接口
20.开发一个新的销量分析程序能够重复使用已经存在的数据访问组件。其中的一个组件返回一个DataSet对象,这个对象里包含了上一年中所有的用户订单的数据,希望这个程序能够按照单个产品号码来显示订单。用户将在运行时候输入合适的产品代码。()
A.使用DataSet.Reset方法
B.使用一个过滤器表达式来设置DataSet对象的RowFilter属性
C.创建一个DataView对象,并使用一个过滤器表达式来设置RowFilter属性
D.创建一个DataView对象,并使用一个过滤器表达式来设置RowStateFilter属性
填空题
1、要在控制台程序运行时输入信息,可使用Console类的___ReadLine_____方法
2、在c#中,进行注释有两种方法,分别是_//____和___/*__*/__
3、.net通常可以使用三种开发语言___c++____ ___VB.NET_____ ___c#____
4、滚动条TrckBar、ProgressBar 等控件的当前位置值均可以通过_____,属性来得到
5、在WinForm的线程中,使用的命名空间是________,DataSet封装在命名空间_System.Data.DataSet ______中
6、在图形编程中,GDI的英文全称是__Graphics Device Interface_
7、在SQL中,用于升序,降序的语句分别是__asc___,_desc____能Group by配合使用的聚合函数有_agv_______,____cont______,___sum_______
8、String strTmp=“promise深圳市”(注:中间无空格)
int i=System.Text.Encoding.Default.getbytes(strTmp).length;
int j=strTmp.Length;i=_______;j=_________
9、float f =-123.56789F;int i=(int)f;i=______;
10、int i=1;int j;j=i++;i=____;j=_____
11、在c#中,main()方法返回类型是______,启动线程方法是__________
12、在c#语言中,实现循环语句主要有_____,_____和_______及________
13、正则表达式:。“^d{m,n}$”表示的意思是:___________
14、int[] a={1,2,3,4,5};a[4]=a[a[2]];a[4]=_4____
15、描述x是奇数的c#表达式__x%2==1_____,"-10<=x<=10"的c#表达式___________
1.某学校需要一个公开选课系统,学生可以任意选择最多3门选修课,请设计相关数据库表,满足以上开发需求,并编写一条SQL语句,实现查询未选满3门课程的学生名单
2.服务器A中的数据库dbMJss要迁移到服务器B,有几种迁移方法,分别有什么步骤
1.通过工具"DTS"的设计器进行导入或者导出
DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不 多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动。在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很细,可以灵活的在不同数据源之间复制数据,很方便的。而且可以另存成DTS包,如果 以后还有相同的复制任务,直接运行DTS包就行,省时省力。也可以直接打开DTS设计器,方法是展开服务器名称下面的Data Transformation Services,选Local Packages,在右边的窗口中右击,选New Package,就打开了DTS设计器。值得注意的是:如果源数据库要拷贝的表有外键,注意移动的顺序,有时要分批移动,否则外键主键,索引可能丢失,移 动的时候选项旁边的提示说的很明白,或者一次性的复制到目标数据库中,再重新建立外键,主键,索引。
注释:在建立数据库时,建立外键,主键,索引的文件应该和建表文件分开,而且用的数据文件也分开,并分别放在不同的驱动器上,有利于数据库的优化。
2.利用"Bcp"工具
虽然这种工具虽然在SQL Server7的版本中不推荐使用,但许多数据库管理员仍很喜欢用它,尤其是用过SQL Server早期版本的人。Bcp有局限性,首先它的界面不是图形化的,其次它只是在SQL Server的表(视图)与文本文件之间进行复制,但它的优点是性能好,开销小,占用内存少,速度快。有兴趣的朋友可以查参考手册。
3.直接利用备份和恢复
首先需要对源数据库进行完全备份,备份到一个设备(device)上,然后把备份文 件复制到目的服务器上(恢复的速度快),进行数据库的恢复操作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数 据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了。这种方法可以完全恢复数据库,包括外键,主键,索引。
4.直接拷贝数据文件
把数据库的数据文件(*.mdf)和日志文件(*.ldf)都拷贝到目的服务器,在SQL Server Query Analyzer中用语句进行恢复:
代码如下: EXEC sp_attach_db @dbname = 'test', @filename1 = 'd:mssql7data est_data.mdf', @filename2 = 'd:mssql7data est_log.ldf'
这样就把test数据库附加到SQL Server中,可以照常使用。如果不想用原来的日志文件,可以用如下的命令:
代码如下: EXEC sp_detach_db @dbname = 'test' EXEC sp_attach_single_file_db @dbname = 'test', @physname = 'd:mssql7data est_data.mdf'
这个语句的作用是仅仅加载数据文件,日志文件可以由SQL Server数据库自动添加,但是原来的日志文件中记录的数据就丢失了。
5.在应用程序中定制
可以在应用程序(PB、VB)中执行自己编写的程序,也可以在Query Analyzer中执行,这种方法比较灵活,其实是利用一个平台连接到数据库,在平台中用的主要时SQL语句,这种方法对数据库的影响小,但是如果用到远 程链接服务器,要求网络之间的传输性能好,一般有两种语句:
代码如下: 1>select ... into new_tablename where ... 2>insert (into) old_tablename select ... from ... where ...
区别是前者把数据插入一个新表(先建立表,再插入数据),后者是把数据插入已经存在的一个表中,我个人喜欢后者,因为在编程的结构上,应用的范围上,第二条语句强于前者。
6.SQL Server的复制功能
SQL Server提供了强大的数据复制功能,也是最不易掌握的,具体应用请参考相关资料,值得注意的是要想成功进行数据的复制工作,有些条件是必不可少的:
(1)SQL Server Agent必须启动,MSDTC必须启动。
(2)所有要复制的表必须有主键。
(3)如果表中有text或image数据类型,必须使用with log选项,不能使用with no_log选项。
另外max text repl size选项控制可以复制的文本和图像数据的最大规模,超过这个限制的操作将失败。
(4)在要进行复制的计算机上,应该至少是隐含共享,即共享名是C$或D$…。
(5)为SQL Server代理使用的Windows NT帐号不能是一个本地的系统帐号,因为本地的系统帐号不允许网络存取。
(6)如果参与复制的服务器在另外的计算机域中,则需要在这些域之间建立信任关系。
3.网页中的HTML代码:
<div class=container><input type=text id="txtName" /><input type =submit name="submit"
value="提交" /<div>,请编写一段jQuery代码,当点击提交时,判断txtName里是否有值,如果为空,要求输入内容,页面不提交。
4.什么叫SQL注入,如何防止?请举例说明。
答:SQL注入是常见的利用程序漏洞进行攻击的方法。导致sql注入攻击并非系统造成的,主要是程序中忽略了安全因素,利用sql语言漏洞获得合法身份登陆系统
例如:
"Select * from users where name='"+uName+"' and pwd='"+uPwd+"' "
如用户在t_name中输入tom’ or 1=‘1 就可以进入系统了。
生成语句:
Select * from users where name = ‘tom’ or 1=‘1’ and pwd=‘123’
防止sql注入的方法有如下几点:
使用参数化过滤语句
在web应用程序的开发过程中所有阶段实施代码安全检察
使用存储过程
5.现有两个已赋值int变量a和b,在不使用其他变量的情况下,如何交换两者的值。
6.mvc架构中,默认有如下路由,
routes.MapRoute(
"Default",
"{controller} /{action}/{po}",
new { controller="Home",action="Login",po=UrlParameter.Optional}
);
添加一个路由规则,实现对于以ComAdd开头的路径,如“/ComAdd/UserList”,系统将会访问Template控制器下的相关方法。
7.比较说明简单工厂和抽象工厂的区别
简单工厂 : 用来生产同一等级结构中的任意产品。(不支持拓展增加产品)
抽象工厂 :用来生产不同产品族的全部产品。(不支持拓展增加产品;支持增加产品族)