咱們的主任也給咱們整理了面試的題目,在這裏我整理了一些題目的答案.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>
這是到如今已經發下來的題目,還有的沒能找到詳細答案.