咱们的主任也给咱们整理了面试的题目,在这里我整理了一些题目的答案.php
对于这道题,咱们以前也是学过数据库的,可是二维表今天仍是第一次听过,因而就上网搜了一下,发现其实并不难.首先要知道什么是二维表,想必你们都上学的时候都见过课程表吧,最顶部的一行标注星期,最左边的一列标注时间,就是一个X轴,一个Y轴,里面每一个单元格的内容对应着两个字段,星期和上课时间,这样的表格就是二维表,那么,怎么建立二维表呢?简单的方法能够经过Excel表格直接导入,在Excel表格中写好一个课程表,在数据库中导入便可.css
建表,我目前大体能想到的就这么多,固然确定不止这么多,若是你还能想到更多,欢迎评论.html
类型可就多了,在这里我也来罗列一下:程序员
数据类型 | 描述 | 存储 |
char(n) | 固定长度的字符串.最多8,000个字符串 | n |
varchar(n) | 可变长度的字符串.最多8,000个字符串 | |
varchar(max) | 可变长度的字符串.最多1,073,741,824个字符串 | |
text | 可变长度的字符串.最多2GB字符数据 |
数据类型 | 描述 | 存储 |
nchar(n) | 固定长度的Unicode数据.最多4,000个字符 | |
nvarchar(n) | 可变长度的Unicode数据.最多4,000个字符 | |
nvarchar(max) | 可变长度的Unicode数据.最多536,870,912个字符 | |
ntext | 可变长度的Unicode数据.最多GB字符数据 |
数据类型 | 描述 | 存储 |
bit | 容许0、1或NULL | |
binary(n) | 固定长度的二进制数据.最多8,000字节 | |
varbinary(n) | 可变长度的二进制数据.最多8,000字节 | |
varbinary(max) | 可变长度的二进制数据.最多2GB字节 | |
image | 可变长度的二进制数据.最多2GB |
数据类型 | 描述 | 存储 |
tinyint | 容许从0到255的全部数字 | 1字节 |
smallint | 容许从-32,768到32,767的全部数字 | 2字节 |
int | 容许从-2,147,483,648到2,147,483,647的全部数字 | 4字节 |
bigint | 容许介于-9,223,372,036,854,775,808和9,223,372,036,854,775,807之间的全部数字 | 8字节 |
decimal(p,s) | 固定精度和比例的数字,容许从-10^38+1到10^38-1之间的数字.面试 p参数指示能够存储的最大位数(小数点左侧和右侧).p必须是1到38之间的值,默认是18.正则表达式 s参数指示小数点右侧存储的最大位数.s必须是0到p之间的值,默认是0算法 |
5-17字节 |
number(p,s) | 固定精度和比例的数字,容许从-10^38+1到10^38-1之间的数字.sql p参数指示能够存储的最大位数(小数点左侧和右侧).p必须是1到38之间的值,默认是18.数据库 s参数指示小数点右侧存储的最大位数.s必须是0到p之间的值,默认是0数组 |
5-17字节 |
smallmoney | 介于-214,784.3648和214,784.3647之间的货币数据 | 4字节 |
money | 介于-922,337,203,685,477.5808和922,337,203,685,477.5807之间的货币数据 | 8字节 |
float(n) | 从-1.79E+308到1.79E+308的浮动精度数字数据.参数n指示该字段保存4字节仍是8字节.float(24)保存4字节,而float(53)保存8字节.n的默认值是53 | 4或8字节 |
real | 从-3.10E+38到3.40E+38的浮动精度数字数据 | 4字节 |
数据类型 | 描述 | 存储 |
datetime | 从1753年1月1日到9999年12月31日,精度为3.33毫秒 | 8bytes |
datetime2 | 从1753年1月1日到9999年12月31日,精度为100纳秒 | 6-8bytes |
smalldatetime | 从1900年1月1日到2079年6月6日,精度为1分钟 | 4bytes |
date | 仅存储日期,从0001年1月1日到9999年12月31日 | 3bytes |
time | 仅存储时间.精度为100纳秒 | 3-5bytes |
datetimeoffset | 与datetime2相同,外加时区偏移 | 8-10bytes |
timestamp | 存储惟一的数字,每当建立或修改某行时,该数字会更新,timestamp基于内部时钟,不对应真实时间,每一个表只能有一个timestamp变量 |
数据类型 | 描述 | |
sql_variant | 存储最多8,000个字节不一样数据类型的数据,除了text,ntext以及timestamp | |
uniqueidentifler | 存储全局标识符(GUID) | |
xml | 存储XML格式化数据,最多2GB | |
cursor | 存储对用于数据库操做的指针的引用 | |
table | 存储结果集,供稍后处理 |
sql server中获取当前时间其实很简单:
执行这句就好了
select GETDATE()
固然也能够转换日期格式:
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等.
替换null:isnull(arg,value)
如:select isnull(price,0.0) from orders ,若是price为null的话,用0.0替换
与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
首先要知道什么是用户控件.在 ASP.NET 中:使用与 ASP.NET 页相同的语法,以声明方式创做的服务器控件。该控件用 .ascx 扩展名保存为文本文件。因此,到底有多少用户控件呢,那须要看你能建立多少个了,你建立多少个就有多少个.
内联接:inner join
外链接:left join或left out join
内关联是平等条约.将先出现的表称为你,后出现的表称为我.你我签约内关联,你有我有的数据,你我均可以展现;你有我没有的数据,都不展现;你没有我有的数据,也都不展现,公平吧.
左关联是不平等条约.将先出现的表称为你,后出来的表称为我.你我签约左关联,你有我有的数据,你我均可以展现;你有我没有的数据,你能够展现你的,个人展现全赋值为空;你没有我有的数据,对不起,没有展现的机会.因此说,左关联试试不平等条约.
在存储过程里用exce执行另外一存储过程名及它须要的参数就能够了如 exec abc '1', '2'(abc 是存储过程的名字, '1','2' 是它的参数)
char和varchar的区别就是char是固定了字符串长度的,而varchar的字符串长度是可变的.
详情http://www.php.cn/js-tutorial-391231.html
产生一个数组,能够本身填数字进去,也能够随机插入数字,排序的话,用 冒泡排序就能够了.
咱们用的最多的就是Random类了:
for(int i=0;i<10;i++) { Random rd = new Random(); Console.WriteLine(rd.Next(10,100).ToString()); }
这个例子会获得10个相同的随机数,由于循环完成的时间是很是短,因此根据系统时间做为种子算出的随机数就会是同样的。因此Random循环只适用于要求比较低的状况。
System.Guid
GUID (Globally Unique Identifier) 全球惟一标识符
GUID的计算使用到了不少在本机可取到的数字,如硬件的ID码,当前时间等.所计算出的128位整数(16字节)能够接近惟一的输出.
Console.WriteLine(Guid.NewGuid().ToString());
计算结果是xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx结构的16进制数字.固然这个格式也是能够更改的.经常使用的四种格式:
var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidN = Guid.NewGuid().ToString("N"); // e0a953c3ee6040eaa9fae2b667060e09 var uuidD = Guid.NewGuid().ToString("D"); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidB = Guid.NewGuid().ToString("B"); // {734fd453-a4f8-4c5d-9c98-3fe2d7079760} var uuidP = Guid.NewGuid().ToString("P"); // (ade24d16-db0f-40af-8794-1e08e2040df3) var uuidX = Guid.NewGuid().ToString("X"); // {0x3fa412e3,0x8356,0x428f,{0xaa,0x34,0xb7,0x40,0xda,0xaf,0x45,0x6f}}
System.Security.Cryptography.RNGCryptoServiceProvider
RNGCryptoServiceProvider 使用加密服务提供程序 (CSP) 提供的实现来实现加密随机数生成器 (RNG).
因该类使用更严密的算法.因此即便以下放在循环中,所计算出的随机数也是不一样的.
for (int i = 0; i < 10; i++) { RNGCryptoServiceProvider csp = new RNGCryptoServiceProvider(); byte[] byteCsp = new byte[10]; csp.GetBytes(byteCsp); Console.WriteLine(BitConverter.ToString(byteCsp)); }
public static string GeneratePassword(int length, int numberOfNonAlphanumericCharacters); // // 摘要: // 生成指定长度的随机密码。 // // 参数: // numberOfNonAlphanumericCharacters: // 生成的密码中的标点字符数。 // // length: // 生成的密码的字符数。长度必须介于 1 和 128 个字符之间。 // // 返回结果: // 指定长度的随机密码。
例:
for (int i = 0; i < 10; i++) { Response.Write(Membership.GeneratePassword(20, 1) + "<br>"); }
结果为
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*%
支持 SQL Server 的多数管理任务。
用于 SQL Server 数据库引擎管理和创做的单一集成环境。
用于管理 SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services 以及 SQL Server Compact 3.5 SP1 中的对象的新管理对话框,使用这些对话框能够当即执行操做,将操做发送到代码编辑器或将其编写为脚本以供之后执行。
非模式以及大小可调的对话框容许在打开某一对话框的状况下访问多个工具。
经常使用的计划对话框使您能够在之后执行管理对话框的操做。
在 Management Studio 环境之间导出或导入 SQL Server Management Studio 服务器注册。
保存或打印由 SQL Server Profiler 生成的 XML 显示计划或死锁文件,之后进行查看,或将其发送给管理员以进行分析。
新的错误和信息性消息框提供了详细信息,使您能够向 Microsoft 发送有关消息的注释,将消息复制到剪贴板,还能够经过电子邮件轻松地将消息发送给支持组。
集成的 Web 浏览器能够快速浏览 MSDN 或联机帮助。
从网上社区集成帮助。
SQL Server Management Studio 教程能够帮助您充分利用许多新功能,并能够快速提升效率。若要阅读该教程,请转至 教程。
具备筛选和自动刷新功能的新活动监视器。
集成的数据库邮件接口。
SQL Server Management Studio 的代码编辑器组件包含集成的脚本编辑器,用来撰写 Transact-SQL、MDX、DMX、XML/A 和 XML 脚本。主要功能包括:
工做时显示动态帮助以便快速访问相关的信息。
一套功能齐全的模板可用于建立自定义模板。
能够编写和编辑查询或脚本,而无需链接到服务器。
支持撰写 SQLCMD 查询和脚本。
用于查看 XML 结果的新接口。
用于解决方案和脚本项目的集成源代码管理,随着脚本的演化能够存储和维护脚本的副本。
用于 MDX 语句的 Microsoft IntelliSense 支持。
SQL Server Management Studio 的对象资源管理器组件是一种集成工具,能够查看和管理全部服务器类型的对象。主要功能包括:
按完整名称或部分名称、架构或日期进行筛选。
异步填充对象,并能够根据对象的元数据筛选对象。
访问复制服务器上的 SQL Server 代理以进行管理。
create proc proc名
as
sql语句...
go
关键字:view
建立视图,首先最好判断是否存在这个视图,视图命名通常都是以View_开始的.
--------建立视图------- --判断是否存在-- if exists (select * from sysobjects where name = 'View_EdsProd') drop view View_EdsProd go --建立视图 create view View_EdsProd as select * from Tab_EdsProd where Mid>1 go --使用视图-- select *from View_EdsProd
能够在视图的基础上建立视图,在建立视图的时候,经过某种条件查询一个表中的数据从而建立出一个虚拟的表,视图名就其实也就是一个表名.
对象 {“key”: value }
多个对象[ {“key”: value },{“key”: value }... ]
文件(File)和流(Stream)是既有区别又有联系的两个概念。
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
特性:每一个文件都有文件名、文件所在路径、建立时间及访问仅限等属性。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通讯管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
存储介质:除了和磁盘文件直接相关的文件流之外,流还有多种类型。流能够分布在网络中、内存中或者是磁带中。
读写txt文件的方法:
1.添加命名空间:
System.IO;
System.Text;
2.文件的读取
(1)使用FileStream类进行文件的读取,并将它转换成char数组,而后输出。
byte[] byData = new byte[100]; char[] charData = new char[1000]; public void Read() { try { FileStream file = new FileStream("E:\\test.txt", FileMode.Open); file.Seek(0, SeekOrigin.Begin); file.Read(byData, 0, 100); //byData传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它一般是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符. Decoder d = Encoding.Default.GetDecoder(); d.GetChars(byData, 0, byData.Length, charData, 0); Console.WriteLine(charData); file.Close(); } catch (IOException e) { Console.WriteLine(e.ToString()); } }
(2).使用StreamReader读取文件,而后一行一行的输出。
public void Read(string path) { StreamReader sr = new StreamReader(path,Encoding.Default); String line; while ((line = sr.ReadLine()) != null) { Console.WriteLine(line.ToString()); } }
3.文件的写入
(1).使用FileStream类建立文件,而后将数据写入到文件里。
public void Write() { FileStream fs = new FileStream("E:\\ak.txt", FileMode.Create); //得到字节数组 byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!"); //开始写入 fs.Write(data, 0, data.Length); //清空缓冲区、关闭流 fs.Flush(); fs.Close(); }
(2).使用FileStream类建立文件,使用StreamWriter类,将数据写入到文件。
public void Write(string path) { FileStream fs = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(fs); //开始写入 sw.Write("Hello World!!!!"); //清空缓冲区 sw.Flush(); //关闭流 sw.Close(); fs.Close(); }
以上就完成了,txt文本文档的数据读取与写入。
System.IO;
所谓事务是用户定义的一个数据库操做序列,这些操做要么全作要么全不作,是一个不可分割的工做单位。例如,在关系数据库中,一个事务能够是一条SQL语句、一组SQL语句或整个程序。
简单举个例子就是你要同时修改数据库中两个不一样表的时候,若是它们不是一个事务的话,当第一个表修改完,但是第二表改修出现了异常而没能修改的状况下,就只有第二个表回到未修改以前的状态,而第一个表已经被修改完毕。
而当你把它们设定为一个事务的时候,当第一个表修改完,但是第二表改修出现了异常而没能修改的状况下,第一个表和第二个表都要回到未修改的状态!这就是所谓的事务回滚。
关键字:transaction
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,是一种特殊类型的存储过程,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发。
AFTER 触发器和INSTEAD OF 触发器
原文地址: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:升序,默认是升序
排序查询结果:
做为面向对象的思惟来讲,当你拿到一个问题时,你分析这个问题再也不是第一步先作什么,第二步再作什么,这是面向过程的思惟,你应该分析这个问题里面有哪些类和对象,这是第一点,而后再分析这些类和对象应该具备哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。
面向对象有一个很是重要的设计思惟:合适的方法应该出如今合适的类里面。
面向对象思想有三大要素:封装、继承和多态。
第一种方法 isNaN
isNaN 返回一个 Boolean 值,指明提供的值是不是保留值 NaN (不是数字)。
NaN 即 Not a Number
isNaN(numValue)
可是若是numValue果是一个空串或是一个空格,而isNaN是作为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而致使的。
第二种方法 正则表达式
function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ var nubmer = document.getElementById(input).value; if (!re.test(nubmer)) { alert("请输入数字"); document.getElementById(input).value = ""; return false; } }
第三种方法 利用parseFloat的返回值
function isNotANumber(inputData) { //isNaN(inputData)不能判断空串或一个空格 //若是是一个空串或是一个空格,而isNaN是作为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而致使的。 if (parseFloat(inputData).toString() == "NaN") { //alert("请输入数字……");注掉,放到调用时,由调用者弹出提示。 return false; } else { return true; } }
第一种方法 正则表达式
using System.Text.RegularExpressions;
Regex numRegex = new Regex(@"^\d+$"); string id = Request.QueryString["Id"]; if (numRegex.IsMatch(id)) { // id 为纯数字。。 } else { // id 包含数字之外的字符。。 }
第二种方法 try catch方法
try { Convert.ToInt32("123"): Console.Write("是数字"); } catch(Exception ex) { Console.Write("非数字"); }
暂时只 找到这两种,若是还有,欢迎补充.
try{ //捕捉可能发生的错误 } catch{ //发生try中的错误时所执行的代码 } finally{ //无论怎样都会之心的代码 }
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
sql中几个子查询关键词any,all,exists,in
详细案例:http://www.javashuo.com/article/p-wseucbal-em.html
约束是在表中定义的用于维护数据库完整性的一些规则。
经过为表中的列定义约束能够防止将错误的数据插入表中,也能够保持表之间数据的一致性
若某个约束条件只做用于单独的列,能够将其定义为列约束也可定义为表约束;
若某个约束条件做用域多个列,则必须定义为表约束。
SQL Server中的约束用来确保系统的完整性。通常约束能够分为:
主键约束
外键约束
检查约束
默认约束
惟一约束
非空约束
SQL里的NULL是真实的空,在存储上并未分配存储空间
空字符串,在存储上已经分配存储空间,可是是空内容。
二者在SQL中的判断也不同
NULL的判断: 字段名 is null
空字符串:字段名=''
二者能够合并判断:
if isnull(字段名,'')=''
print '空'
else
print '非空'
简单来讲就是类的使用范围。
1.四个访问修饰符: 指定声明的类的可访问性。
2. 其余类的修饰符:
https://blog.csdn.net/solarlhh/article/details/8702318
1:源页:在按钮的点击事件程序中写入Response.Redirect方法,在其中使用问号传值。
2:目标页:在Request.QueryString集合中查找。
1:源页:在按钮的点击事件程序中写入: Server.Transfer("Default2.aspx", true); 注意必定要加上第二个参数true,不然值传不过去。
2: 目标页:在Request.Form集合中查找发送方页面上的文本框架ID,如
Response.Write("传过来的名字是:"+Request.Form["txtName"].ToString());
1:源页:在实现了IbuttonControl接口的控件(如按钮、LinkButton等)上,添加属性PostBackUrl="~/Default2.aspx"
2: 目标页:使用PreviousPage属性,且最好判断一下是不是从发送页以PostBackUrl方式跳转过来的,代码以下所示:
if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack &&
PreviousPage.IsValid)
{
TextBox txt = (TextBox)PreviousPage.FindControl("txtName");
Response.Write(txt.Text);
}
1:源页: 保存信息,建议同时使用Lock和UnLock方法。
Application.Lock();
Application["PageRequestCount"] =
((int)Application["PageRequestCount"])+1;
Application.UnLock();
2:目标页:int cnt=int.Parse(Application["PageRequestCount"].ToString());
1:源页:保存信息
Session["Name"]= txtName.Text;
2:目标页 string name=Session["Name"].ToString();
1:源页: HttpCookie Name= new HttpCookie("Name");
Name.Value= txtName.Text;
cookie.Expires = DateTime.Now.AddMinutes(30);
HttpContext.Current.Response.AppendCookie(Name);
2:目标页:string info =Request.Cookies["cookiename"].Value;
1、在前台弹出提示框
html基本结构
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
先给不一样的区域命名,id,class,name 都行,而后在css里面用选择器定位到你想要设置格式的区域分别设置 background-color 就好了.
方法一(CSS):这里的a是一个div的id名
<style> *{ margin: 0px; padding: 0px; } #a{ width: 200px; height: 200px; background-color: aquamarine; position: fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; margin: auto; } </style>
方法二(JS):
<style> *{ margin: 0px; padding: 0px; } #a{ width: 200px; height: 200px; background-color: aquamarine; position: fixed; } </style> <script> window.onload=function(){ var a = document.getElementById("a"); var Height=document.documentElement.clientHeight;//取得浏览器页面可视区域的宽度 var Width=document.documentElement.clientWidth;//取得浏览器页面可视区域的宽度 var gao1 = a.offsetHeight; var gao2 = a.offsetWidth; var Sgao1= (Height - gao1)/2+"px"; var Sgao2= (Width - gao2)/2+"px"; a.style.top=Sgao1; a.style.left=Sgao2; } </script>
这是到如今已经发下来的题目,还有的没能找到详细答案.