我们的主任也给我们整理了面试的题目,在这里我整理了一些题目的答案.
1.数据库中怎么创建二维表?
对于这道题,我们之前也是学过数据库的,但是二维表今天还是第一次听过,于是就上网搜了一下,发现其实并不难.首先要知道什么是二维表,想必大家都上学的时候都见过课程表吧,最顶部的一行标注星期,最左边的一列标注时间,就是一个X轴,一个Y轴,里面每个单元格的内容对应着两个字段,星期和上课时间,这样的表格就是二维表,那么,怎么创建二维表呢?简单的方法可以通过Excel表格直接导入,在Excel表格中写好一个课程表,在数据库中导入即可.
2. 建表时会注意哪些细节?
- 在建库时,如果用代码默认写create database 库名,这样建的数据库的默认路径是C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA,我一般倒是习惯这样建.
- 其次就是建表,在建表的时候,肯定是要往自己刚刚创的数据库里面建表,但是我们用的sql server2012默认使用的事master库,要么建完表后再后面再写一句use 库名 go,或者用鼠标点击选择自己的库,这样才能往自己的那个库里建表.
- 开始建表了,create table 表名(字段 类型 ......),在这里注意一点,字段的类型放在字段的后面,后面的非空,主键,自增,约束等条件的顺序没有明确要求.
- 使用check约束字段中值的范围,check后面的括号中应为表达式,如:state int check(state=1 or state=0).
- 有些字段虽然不是主键,但是根据实际情况,不能为空值的,比如课程表中课程名称需要在后面加上not null.
- 当某个字段是外键时,一定要和主键的类型一致,不然会报错的,需要用references关键字来说明其对应的主表的主键:references 主表名(主键名).
建表,我目前大致能想到的就这么多,当然肯定不止这么多,如果你还能想到更多,欢迎评论.
3.建表时有哪些数据类型?
类型可就多了,在这里我也来罗列一下:
Character字符串
Unicode字符串
Binary类型
Number类型
固定精度和比例的数字,允许从-10^38+1到10^38-1之间的数字.
p参数指示可以存储的最大位数(小数点左侧和右侧).p必须是1到38之间的值,默认是18.
s参数指示小数点右侧存储的最大位数.s必须是0到p之间的值,默认是0
固定精度和比例的数字,允许从-10^38+1到10^38-1之间的数字.
p参数指示可以存储的最大位数(小数点左侧和右侧).p必须是1到38之间的值,默认是18.
s参数指示小数点右侧存储的最大位数.s必须是0到p之间的值,默认是0
Date类型
其他数据类型
4.getDate() 如何取当前时间?
sql server中获取当前时间其实很简单:
执行这句就行了
当然也可以转换日期格式:
CONVERT 函数转换格式:主要注意第三个参数 date_style;
格式:select ConVERT(varchar,GETDATE(),0)
最后的data_style可以有
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,120,121,126,127,130,131等
常用的 20,23,24,102,111,112,120等.
- 100 或者 0 mon dd yyyy hh:miAM (或者 PM)
- 101 mm/dd/yy
- 102 yy.mm.dd
- 103 dd/mm/yy
- 104 dd.mm.yy
- 105 dd-mm-yy
- 106 dd mon yy
- 107 Mon dd, yy
- 108 hh:mm:ss
- 109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
- 110 mm-dd-yy
- 111 yy/mm/dd
- 112 yymmdd
- 113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
- 114 hh:mi:ss:mmm(24h)
- 120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
- 121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
- 130 dd mon yyyy hh:mi:ss:mmmAM
- 131 dd/mm/yy hh:mi:ss:mmmAM
5.SQLServer中怎样判断null值?
- 查询时进行判断,如果是null值就替换:
替换null:isnull(arg,value)
如:select isnull(price,0.0) from orders ,如果price为null的话,用0.0替换
- 或者和null进行比较:
与null比较: is not null,is null
如 select * from orders where price is null ,price等于null
如: select * from orders where price is not null ,price不等于null
6.ASP.NET中有多少用户控件?
首先要知道什么是用户控件.在 ASP.NET 中:使用与 ASP.NET 页相同的语法,以声明方式创作的服务器控件。该控件用 .ascx 扩展名保存为文本文件。所以,到底有多少用户控件呢,那需要看你能创建多少个了,你创建多少个就有多少个.
7.内联接和外联接关键字.
内联接:inner join
外连接:left join或left out join
8.内关联和左关联的区别.
内关联是平等条约.将先出现的表称为你,后出现的表称为我.你我签约内关联,你有我有的数据,你我都可以展示;你有我没有的数据,都不展示;你没有我有的数据,也都不展示,公平吧.
左关联是不平等条约.将先出现的表称为你,后出来的表称为我.你我签约左关联,你有我有的数据,你我都可以展示;你有我没有的数据,你可以展示你的,我的展示全赋值为空;你没有我有的数据,对不起,没有展示的机会.所以说,左关联试试不平等条约.
9.存储过程中怎么调用?
在存储过程里用xce执行另一存储过程名及它需要的参数就可以了如 xec abc '1', '2'(abc 是存储过程的名字, '1','2' 是它的参数)
10.ADO.NET中结构.
- ADO.NET组件
- LINQ to DataSet
- LINQ to SQL
- ADO.NET实体框架
- WCF数据服务
- XML和ADO.NET
11.char(2) 和varchar(2) 的区别?
char和varchar的区别就是char是固定了字符串长度的,而varchar的字符串长度是可变的.
12.AJax交互有几种方式?
详情http://www.php.cn/js-tutorial-391231.html
- 通过URL传参
- 单值传参
- 对象传参
- 对象序列化传参
- 列表传参
13.产生一个数组,排序.
产生一个数组,可以自己填数字进去,也可以随机插入数字,排序的话,用 冒泡排序就可以了.
14.怎样产生随机数,随机数产生规则
- Random类
我们用的最多的就是Random类了:
这个例子会得到10个相同的随机数,因为循环完成的时间是非常短,所以根据系统时间作为种子算出的随机数就会是一样的。所以Random循环只适用于要求比较低的情况。
- Guid类
System.Guid
GUID (Globally Unique Identifier) 全球唯一标识符
GUID的计算使用到了很多在本机可取到的数字,如硬件的ID码,当前时间等.所计算出的128位整数(16字节)可以接近唯一的输出.
计算结果是xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx结构的16进制数字.当然这个格式也是可以更改的.常用的四种格式:
- RNGCryptoServiceProvider类
System.Security.Cryptography.RNGCryptoServiceProvider
RNGCryptoServiceProvider 使用加密服务提供程序 (CSP) 提供的实现来实现加密随机数生成器 (RNG).
因该类使用更严密的算法.所以即使如下放在循环中,所计算出的随机数也是不同的.
- Menbership.GeneratePassword()
例:
结果为
C!&^HoTNv3!ZHkK9BAbu
azLgER)JJ-UW8q*14yz*
I3qnb]Zxu16ht!kKZ!Q*
9U:MAQ&c1x)^aed@xe**
oL(%4JvfbP&t5*Hpl4l-
6@zj$CnhW&D+|xOf:qIk
A/!Di&l*tY$QaMH0gyzY
z^wu6{1BMq7D^+WU]>f$
1OgIJS3&09fw0F9.|aXA
8F+Gy+L{O6x{SfugME*%
15.SQL server中使用哪些功能?
-
工作时显示动态帮助以便快速访问相关的信息。
-
一套功能齐全的模板可用于创建自定义模板。
-
可以编写和编辑查询或脚本,而无需连接到服务器。
-
支持撰写 SQLCMD 查询和脚本。
-
用于解决方案和脚本项目的集成源代码管理,随着脚本的演化可以存储和维护脚本的副本。
-
按完整名称或部分名称、架构或日期进行筛选。
-
异步填充对象,并可以根据对象的元数据筛选对象。
16.怎样创建存储过程(procedure)?关键字?
create proc proc名
as
sql语句...
go
17. 视图的关键字?怎样创建视图?视图可以创建视图吗?
关键字:view
创建视图,首先最好判断是否存在这个视图,视图命名一般都是以View_开始的.
可以在视图的基础上创建视图,在创建视图的时候,通过某种条件查询一个表中的数据从而创建出一个虚拟的表,视图名就其实也就是一个表名.
18.Json数据格式.
对象 {“key”: value }
多个对象[ {“key”: value },{“key”: value }... ]
19.文件和流是指哪些?文件读写步骤.
文件(File)和流(Stream)是既有区别又有联系的两个概念。
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。
- 文件的读写步骤:
读写txt文件的方法:
1.添加命名空间:
System.IO;
System.Text;
2.文件的读取
(1)使用FileStream类进行文件的读取,并将它转换成char数组,然后输出。
(2).使用StreamReader读取文件,然后一行一行的输出。
3.文件的写入
(1).使用FileStream类创建文件,然后将数据写入到文件里。
(2).使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。
以上就完成了,txt文本文档的数据读取与写入。
20.文件操作的命名空间?
System.IO;
21.事务是什么?事务关键字?
所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条QL语句、一组QL语句或整个程序。
简单举个例子就是你要同时修改数据库中两个不同表的时候,如果它们不是一个事务的话,当第一个表修改完,可是第二表改修出现了异常而没能修改的情况下,就只有第二个表回到未修改之前的状态,而第一个表已经被修改完毕。
而当你把它们设定为一个事务的时候,当第一个表修改完,可是第二表改修出现了异常而没能修改的情况下,第一个表和第二个表都要回到未修改的状态!这就是所谓的事务回滚。
关键字:transaction
22.触发器?系统有哪些触发器表?
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,是一种特殊类型的存储过程,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发。
AFTER 触发器和INSTEAD OF 触发器
23.表与表关联,有哪几种联接方式?
- CROSS JOIN(创建笛卡尔积)
- INNER JOIN(内连接)
- OUTER JOIN (外连接)
- LEFT OUTER JOIN(左连接)RIGHT OUTER JOIN(右连接)
- FULL OUTER JOIN(全连接)
24.SQLServer有哪几种查询方式?
原文地址:https://blog.csdn.net/shiyangkai/article/details/71629553
- 投影查询
- 选择查询
- 排序查询
下面给出的是进行测试的数据库表Table:
首先是投影查询:
投影查询有三种写法:
select CID 客户编号,CContact 联系人,CPhone 联系电话,CIntegration 积分 from Table
select CID AS客户编号,CContact AS联系人,CPhone AS联系电话,CIntegration AS积分 from Table
select 客户编号=CID,联系人=CContact,联系电话=CPhone,积分=CIntegration from Table
结果如下:
其次是选择查询,为了准确的查到条件所在的数据内容。
select * from Table where CIntegration<=24 and CPhone like '%244575%'
%表示任意长度的字符串
选择查询积分小于24并且电话为244575的数据结果:
最后是排序查询,升序和降序排列 。
select * from Table order by CIntegration desc
desc:降序,asc:升序,默认是升序
排序查询结果:
25.面向对象思想.
作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。
面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面。
面向对象思想有三大要素:封装、继承和多态。
26.JS中判断是否是数字型?.NET中判断是否数字型?
- js判断是否是数字
第一种方法 isNaN
isNaN 返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。
NaN 即 Not a Number
isNaN(numValue)
但是如果numValue果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
第二种方法 正则表达式
第三种方法 利用parseFloat的返回值
- .NET中判断是否数字
第一种方法 正则表达式
第二种方法 try catch方法
暂时只 找到这两种,如果还有,欢迎补充.
27. .NET如何捕获异常?每个块代表什么?
28.索引是什么,怎么定义索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
29.子查询的关联字有哪些?
sql中几个子查询关键词any,all,exists,in
详细案例:https://blog.csdn.net/kbx8916/article/details/52840575
30.约束是做什么用的?
约束是在表中定义的用于维护数据库完整性的一些规则。
通过为表中的列定义约束可以防止将错误的数据插入表中,也可以保持表之间数据的一致性
若某个约束条件只作用于单独的列,可以将其定义为列约束也可定义为表约束;
若某个约束条件作用域多个列,则必须定义为表约束。
SQL Server中的约束用来确保系统的完整性。一般约束可以分为:
主键约束
外键约束
检查约束
默认约束
唯一约束
非空约束
31.SQLServer中null 值与空值区别?
SQL里的NULL是真实的空,在存储上并未分配存储空间
空字符串,在存储上已经分配存储空间,但是是空内容。
两者在SQL中的判断也不一样
NULL的判断: 字段名 is null
空字符串:字段名=''
两者可以合并判断:
if isnull(字段名,'')=''
print '空'
else
print '非空'
32.类的作用域有哪些?
简单来说就是类的使用范围。
1.四个访问修饰符: 指定声明的类的可访问性。
- public: 公共访问是允许的最高访问级别,对访问没有限制;
- private:私有访问是允许的最低访问级别,私有类只有在声明它们的类和结构体中才是可访问的;
- internal:类型和类型成员的访问修饰符。 只有在同一程序集的文件中,内部类型或成员才是可访问的;
- protected:受保护类在其所声明的类中可由其所声明类的派生类实例访问
2. 其他类的修饰符:
- abstract:用于声明虚类,指示某个类只能是其他类的基类。
- partial: 部分在整个同一程序集中定义分部类、结构和方法。
- sealed:指定类不能被继承。
- static:声明静态类,类型本身只含有静态成员,不能被实例化。
33.ASP.NET中项目中或者是跨页传值方式有哪些?
https://blog.csdn.net/solarlhh/article/details/8702318
- 方法一:问号传值(Response.Redirect方法)
1:源页:在按钮的点击事件程序中写入Response.Redirect方法,在其中使用问号传值。
2:目标页:在Request.QueryString集合中查找。
- 方法二:使用Server.Transfer
1:源页:在按钮的点击事件程序中写入: Server.Transfer("Default2.aspx", true); 注意一定要加上第二个参数true,否则值传不过去。
1:源页:在实现了IbuttonControl接口的控件(如按钮、linkButton等)上,添加属性PostBackUrl="~/Default2.aspx"
一、在前台弹出提示框
35.数据库中类型为bit , 插入哪些数据不会报错?
36.HTML的布局结构是什么样的?
html基本结构
37.怎样定义一个区域的背景颜色?
先给不同的区域命名,id,class,name 都行,然后在css里面用选择器定位到你想要设置格式的区域分别设置 background-color 就行了.
38.div固定在屏幕中间
方法一(CSS):这里的a是一个div的id名
方法二(JS):