




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.,C#語言和數(shù)據(jù)庫技術(shù)基礎(chǔ),猛禽,.,第1章 第一個(gè)C#程序,.NET概述與C#應(yīng)用 .NET是Microsoft .NET的簡稱,是基于Windows平臺的一種技術(shù)。它包含能在.NET Framework平臺運(yùn)行的所以編程語言。 C#是微軟將C, C+ ,Java等多種語言優(yōu)點(diǎn)集于一身,專為.NET開發(fā)而設(shè)計(jì)的一種完全面向?qū)ο蟮木幊陶Z言。 IDE環(huán)境 Visual Studio,它集成了.NET Framework,是目前最流行的.NET平臺開發(fā)環(huán)境。,.,第1章 第一個(gè)C#程序,新建程序 啟動Visual Studio 2010 新建項(xiàng)目 生產(chǎn)可執(zhí)行文件 開始運(yùn)行 經(jīng)驗(yàn) 運(yùn)行的快捷鍵:F
2、5:啟動。 運(yùn)行的快捷鍵:Ctrl+F5:開始執(zhí)行不調(diào)試,.,第1章 第一個(gè)C#程序,認(rèn)識控制臺應(yīng)用程序文件夾的結(jié)構(gòu) Program.cs:該文件是項(xiàng)目的啟動文件,在該文件中定義項(xiàng)目的啟動入口,即Main()方法。 HelloWorld.exe:這個(gè)文件位于binDebug目錄下,是項(xiàng)目編譯后生成的可執(zhí)行文件,可以直接運(yùn)行。 認(rèn)識C#程序 namespace 命名空間相當(dāng)于Java中的package using 用來引用其他命名空間,相當(dāng)于Java中的import class 和Java一樣表示類。 Main()方法 static void Main(string args) static v
3、oid Main() static int Main(string args) static int Main() 關(guān)鍵代碼 Console.WriteLine(); /從控制臺輸出內(nèi)容 Console.ReadLine(); /從控制臺輸入內(nèi)容,.,第1章 第一個(gè)C#程序,C#中的數(shù)據(jù)類型 C#中布爾類型為bool,字符串類型關(guān)鍵字為小寫(string)。 C#中的變量 語法 數(shù)據(jù)類型 變量名稱; 命名規(guī)則 組成:52個(gè)英文字母(AZ , az)、10個(gè)數(shù)字(09)、下劃線(_),除此之外不能含有其他的字符。 開頭:只能以字母或下劃線開頭。 不能使用的:不能是C#中的關(guān)鍵字。 變量名稱要語義
4、化。 當(dāng)多個(gè)單詞組成變量名時(shí),應(yīng)該使用駱駝(Camel)命名法。,.,第1章 第一個(gè)C#程序,常量 定義:常量就是在程序運(yùn)行過程中保持不變的值。 語法 const 數(shù)據(jù)類型 常量名稱 = 值; 命名規(guī)范 常量名稱必須具有一定的實(shí)際意義。 常量名稱最好以大寫字母來命名,中間可以根據(jù)意義的連接性用下劃線做連接,每個(gè)常量定義的右側(cè)最好有一簡單的注釋,說明其作用。 常量名稱最好不要超過25個(gè)字符,否則可讀性差。,.,第1章 第一個(gè)C#程序,Console類 C#向控制臺輸出(三種方式) Console.WriteLine(); Console.WriteLine(要輸出的值); Console.Wri
5、teLIne(“格式字符串”,變量列表); C#向控制臺讀入 Console.ReadLine(); int age=int.Parse(Console.ReadLine();,.,第1章 第一個(gè)C#程序,自定義方法 語法 訪問修飾符 返回類型 方法名(參數(shù)列表) /方法主體 方法命名規(guī)范 方法名要有實(shí)際的含義,最好是動賓短語。 用Pascal命名法,.,第1章 第一個(gè)C#程序,類和對象 語法 訪問修飾符 class 類名 /類的主體 注釋 C#中行注釋和塊注釋與Java是完全相同的,分別使用/和/* */。 文檔注釋每一行都以”/”開頭。 折疊 把方法代碼寫在#region和 #endreg
6、ion之間 。,.,第1章 第一個(gè)C#程序,調(diào)試程序的步驟如下: 設(shè)置斷點(diǎn):按F9快捷鍵。 啟動調(diào)試:按F5快捷鍵。 在監(jiān)視窗口中查看變量的當(dāng)前值。,.,第2章 C#語法快速熱身,if條件結(jié)構(gòu) 簡單if結(jié)構(gòu) if(條件表達(dá)式) /代碼塊 if-else結(jié)構(gòu) if(條件表達(dá)式) /代碼塊1 else /代碼塊2 ,簡單if結(jié)構(gòu)的流程圖,.,第2章 C#語法快速熱身,多重if結(jié)構(gòu) if(條件表達(dá)式1) 代碼塊1 else if(條件表達(dá)式2) 代碼塊2 else if(條件表達(dá)式3) 代碼塊3 else 代碼塊4 ,If-else結(jié)構(gòu)的流程圖,.,第2章 C#語法快速熱身,嵌套if結(jié)構(gòu) if(條件
7、表達(dá)式1) if(條件表達(dá)式2) 代碼塊1 else 代碼塊2 else 代碼塊3 ,開始,條件表達(dá)式1,代碼塊1,結(jié)束,假,真,代碼塊2,條件表達(dá)式2,代碼塊3,真,假,嵌套if流程圖,.,第2章 C#語法快速熱身,if結(jié)構(gòu)書寫規(guī)范 為了使if結(jié)構(gòu)更加清晰,應(yīng)該把每個(gè)if或else包含的語句都用大括號括起來。 相匹配的一對if和else應(yīng)該左對齊 內(nèi)層的if結(jié)構(gòu)相對于外層的if結(jié)構(gòu)要有一定的縮進(jìn)。 大括號按規(guī)范寫法: C#中大括號“”和“”分別各占據(jù)新的一行。而 Jave中左大括號“”緊跟if結(jié)構(gòu)的條件后面,右大括號“”則需要另起新的一行。 switch結(jié)構(gòu) switch結(jié)構(gòu)中case字句的
8、擺放是沒有順序的,可以把default字句放在最前面,但要注意任何兩個(gè)case語句不能具有相同的值。 case 中的值可以是 int ,char,和string 類型,但必須是常量表達(dá)式,不允許使用變量。 每個(gè)case和default語句中必須要有break語句。 但如果case 字句不包含其他語句,就不需要break語句。,.,第2章 C#語法快速熱身,一維數(shù)組 改錯(cuò): int array=new int50,1; 循環(huán) while循環(huán) 語法 while(條件表達(dá)式) 代碼塊 do-while循環(huán) 語法 do 代碼塊 while(條件表達(dá)式);,開始,條件表達(dá)式,代碼塊,結(jié)束,假,真,do-
9、while循環(huán)的執(zhí)行過程,.,第2章 C#語法快速熱身,for循環(huán) 語法 for(表達(dá)式1,表達(dá)式2,表達(dá)式3) 代碼塊 ,開始,代碼塊,結(jié)束,假,真,for循環(huán)的執(zhí)行過程,條件表達(dá)式2,條件表達(dá)式3,條件表達(dá)式1,.,第2章 C#語法快速熱身,foreach循環(huán) 語法 foreach(類型 元素 in 集合或者組合) 代碼塊 語法中的“元素”是一個(gè)只讀變量,.,第2章 C#語法快速熱身,循環(huán)應(yīng)用的區(qū)別如下 while 循環(huán)是先判斷條件表達(dá)式是否成立。若成立則執(zhí)行循環(huán)體;否則結(jié)束循環(huán)。 do-while循環(huán)先執(zhí)行一次循環(huán)體再判斷條件表達(dá)式是否成立。若成立則繼續(xù)循環(huán);否則結(jié)束循環(huán)。 for循環(huán)必
10、須使用整形變量做循環(huán)計(jì)算器,通過條件表達(dá)式限定計(jì)數(shù)器變量值來控制循環(huán)。 foreach()自動遍歷給定集合的所有值。,.,第2章 C#語法快速熱身,break語句 可以用在switch,for循環(huán),foreach循環(huán),while循環(huán),do-while循環(huán)中 continue語句 必須出現(xiàn)在for循環(huán),foreach循環(huán),do-while循環(huán),while循環(huán)中。 二重循環(huán) 【代碼演示】 冒泡排序 外層循環(huán)n-1, 內(nèi)層循環(huán)n-1-I, 【代碼演示】,.,C#中的訪問修飾符 this關(guān)鍵字 this關(guān)鍵字代表的是當(dāng)前的對象。在類的內(nèi)部,可以用this關(guān)鍵字訪問它的成員。,第3章 使用屬性升級MyB
11、ank,.,第3章 使用屬性升級 MyBank,C#的屬性 這種結(jié)合了字段和方法的實(shí)現(xiàn)方式我們稱為屬性( propert )。 語法 private string _name; public string Name get return _name; set _name=value; 屬性的數(shù)據(jù)類型 屬性的數(shù)據(jù)類型可以是一個(gè)類或一個(gè)數(shù)組。 屬性的訪問類型 只讀屬性,只包含get訪問器 只寫屬性,只包含set訪問器 讀寫屬性,包含get和set訪問器 封裝字段快捷鍵 Ctrl + R + E。,.,第3章 使用屬性升級 MyBank,C#中,一般為類的私有字段和屬性的命名會采用不同的命名法。 在
12、為類的私有字段命名時(shí),要以下劃線“_”開頭,隨后出現(xiàn)的英文字母采用Camel命名法。 在為類的屬性命名時(shí),采用Pascal命名法。 C#中,字段和屬性的區(qū)別: 通常將字段指定為private,在類內(nèi)部使用。將屬性指定為public,對外部公開,通過get和set訪問器對字段提供安全,有效范圍的保護(hù)。 C#中,屬性和方法的區(qū)別: C#中屬性get訪問器和set訪問器后不需要使用“()”,因?yàn)樵L問器沒有返回值,所以不需要指定void。,.,第3章 使用屬性升級 MyBank,面向?qū)ο蟮奶卣髦庋b 定義:封裝是將數(shù)據(jù)和操作的方法保存在一起的技術(shù),或是有選擇地隱藏或公開類中的屬性和方法的過程。 封裝為
13、我們帶來的好處 避免使用非法數(shù)據(jù)賦值 保證數(shù)據(jù)的完整性 避免類的內(nèi)部發(fā)生修改時(shí),導(dǎo)致整個(gè)程序的修改。 值傳遞和引用傳遞 值傳遞是將變量的值復(fù)制一份傳遞給方法,使得改方法的形參和實(shí)參的值相同。在調(diào)用方法中修改形參也只是對實(shí)參復(fù)制品的數(shù)據(jù)更新,并沒有真正改變實(shí)參的值。 引用傳遞是將要傳遞的對象的引用復(fù)制給方法的形參,使得被調(diào)用的方法直接對引用對象進(jìn)行更改,會影響實(shí)參原來的值。(使用ref 關(guān)鍵字),.,第4章 深入C#的String 類,常用字符串的處理方法 Equals() Compare(string strA,string strB) IndexOf(string value) LastIn
14、dexOf(string value) Join (string separator,stringvalue) Split(char separator) Substring(int startIndex,int length) ToLower() ToUpper() Trim(),.,第4章 深入C#的String 類,運(yùn)算符=和String類方法Equals()的區(qū)別如下 =:通常來比較int,double等數(shù)值類型的數(shù)據(jù)是否相等。 Equals():通常用來比較兩個(gè)對象的值是否相等。 “”和String.Empty的作用如下 “”:為String對象分配了一個(gè)長度為0的存儲空間。 Str
15、ing.Empty:為對象分配了一個(gè)長度為0的存儲空間。,.,第4章 深入C#的String 類,Format格式化 語法 String myString = String.Format(“格式字符串”,參數(shù)列表); 其中格式字符串中包含固定文本和格式項(xiàng)。格式項(xiàng)的形式如下: 索引,對齊:格式字符串 格式化數(shù)值結(jié)果表,.,第4章 深入C#的String 類,.,第4章 深入C#的String 類,簡單的類型轉(zhuǎn)換 隱式類型轉(zhuǎn)換 任何數(shù)值類型A,只要其取值范圍完全包含在類型B的取值范圍類,就可以隱式轉(zhuǎn)換為類型B。 顯式類型轉(zhuǎn)換 sum=(int)score+bonus; 注意:顯式類型轉(zhuǎn)換會丟失精度
16、。 數(shù)值類型與字符串之間的轉(zhuǎn)換 字符串轉(zhuǎn)換為數(shù)值型 int.Parse(string); float.Parse(string); double.Parse(string); 數(shù)值型轉(zhuǎn)換為字符串 string myage=age.ToString();,.,第4章 深入C#的String 類,常用的Convert類的類型轉(zhuǎn)換方法,.,第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是表和數(shù)據(jù)庫訪問對象的集合。其中表分類存儲了不同的實(shí)體信息,每一行數(shù)據(jù)對應(yīng)一個(gè)實(shí)體的描述信息。 當(dāng)今常用數(shù)據(jù)庫 SQL Server Oracle DB2 MySQL,.,第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,使
17、用數(shù)據(jù)庫的好處: 可以結(jié)構(gòu)化存儲大量的數(shù)據(jù)信息,方便用戶進(jìn)行有效的檢索和訪問。 可以有效地保持?jǐn)?shù)據(jù)信息的一致性,完整性,降低數(shù)據(jù)冗余。 可以滿足應(yīng)用的共享和安全方面的要求。 數(shù)據(jù)庫技術(shù)能夠方便智能化地分析,產(chǎn)生新的有用的信息。 實(shí)體 實(shí)體是所有客觀存在的、可以被描述的事物。 記錄 在數(shù)據(jù)庫的表中,每一“行”(Row)實(shí)際上對應(yīng)一個(gè)實(shí)體,這樣的一行叫做“記錄”(Record)。 字段 表格中的每一列,通常叫做“列”,也可以稱之為“字段”。,.,第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,數(shù)據(jù)庫和數(shù)據(jù)庫表 數(shù)據(jù)庫就是表的集合,邏輯上數(shù)據(jù)庫包括數(shù)據(jù)表,存儲表間關(guān)系的表以及各種關(guān)系對象 數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系
18、統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)(DBMS,DataBase Management System)是一種系統(tǒng)軟件,由一個(gè)數(shù)據(jù)庫和一組訪問數(shù)據(jù)的程序構(gòu)成。 數(shù)據(jù)庫管理系統(tǒng)的基本目標(biāo)是要提供一個(gè)可以方便有效地存取數(shù)據(jù)庫信息的環(huán)境。 數(shù)據(jù)庫管理系統(tǒng)的主要功能是維護(hù)數(shù)據(jù)庫,并有效地訪問數(shù)據(jù)庫中各部分的數(shù)據(jù)。 數(shù)據(jù)庫系統(tǒng)(DBS,DataBase System)是一個(gè)實(shí)際可運(yùn)行的系統(tǒng),可以對系統(tǒng)提供的數(shù)據(jù)進(jìn)行存儲,維護(hù)和應(yīng)用,它是由存儲介質(zhì),處理對象和管理系統(tǒng)共同組成的集合體,通常由軟件,數(shù)據(jù)庫和數(shù)據(jù)庫管理員組成。 數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理,數(shù)據(jù)的插入,修改,和檢索都要通過數(shù)據(jù)庫管理系統(tǒng)進(jìn)行。 數(shù)據(jù)庫管理員(D
19、BA,DataBase Administrator)在數(shù)據(jù)庫系統(tǒng)中負(fù)責(zé)創(chuàng)建,監(jiān)控和維護(hù)整個(gè)數(shù)據(jù)庫,使數(shù)據(jù)能被有權(quán)限使用的人有效使用。,.,第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,數(shù)據(jù)冗余和數(shù)據(jù)完整性 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)重復(fù)的現(xiàn)象就是數(shù)據(jù)冗余(Redundance) 數(shù)據(jù)的完整性(Integrality)是指數(shù)據(jù)庫中數(shù)據(jù)的準(zhǔn)確性。 登陸SQL Server 數(shù)據(jù)庫 連接SQL Server 數(shù)據(jù)庫時(shí)需要注意以下兩點(diǎn): 在連接SQL Server之前,SQL Server服務(wù)必須已經(jīng)啟動 SQL Server Management Studio 可以連接和管理多個(gè)其他計(jì)算機(jī)上的SQL Server數(shù)據(jù)
20、庫。 SQL Server中數(shù)據(jù)庫按照用途可以劃分為如下兩種: 系統(tǒng)數(shù)據(jù)庫 用戶數(shù)據(jù)庫,.,第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,Microsoft SQL Server 2008提供的系統(tǒng)數(shù)據(jù)庫 Master 數(shù)據(jù)庫 Tempdb數(shù)據(jù)庫 Model數(shù)據(jù)庫 Msdb數(shù)據(jù)庫 Resource數(shù)據(jù)庫 新建數(shù)據(jù)庫連接 SQL Server支持兩種身份認(rèn)證 Windows 身份驗(yàn)證 SQL Server身份驗(yàn)證 操作權(quán)限 固定的數(shù)據(jù)庫操作權(quán)限有十個(gè) db_backupoperator權(quán)限可以備份數(shù)據(jù)庫 db_datareader可以讀取數(shù)據(jù)庫中的數(shù)據(jù) db_denydatareader不允許讀取數(shù)據(jù),.,
21、第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫 數(shù)據(jù)庫文件(Database File)事務(wù)日志文件(Transaction Log File 數(shù)據(jù)庫文件是存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件,一個(gè)數(shù)據(jù)庫可以有多個(gè)數(shù)據(jù)庫文件,一個(gè)數(shù)據(jù)庫文件只屬于一個(gè)數(shù)據(jù)庫。當(dāng)有多個(gè)數(shù)據(jù)庫文件時(shí),有一個(gè)文件被指定為主數(shù)據(jù)庫文件 (Primary Database File),主數(shù)據(jù)庫文件的擴(kuò)展名為.mdf,它用來存儲數(shù)據(jù)庫的啟動信息數(shù)據(jù)。一個(gè)數(shù)據(jù)庫只能有一個(gè)主數(shù)據(jù)庫文件,其他數(shù)據(jù)庫文件被稱為次數(shù)據(jù)庫文件(Secondary Database File)。 事務(wù)日志文件(Transaction Log File) 事物
22、日志文件用來記錄數(shù)據(jù)庫的更新情況。事物日志文件的文件擴(kuò)展名為.ldf,一個(gè)數(shù)據(jù)庫可以有一個(gè)或多個(gè)事物日志文件。,.,第6章 程序數(shù)據(jù)的集散地:數(shù)據(jù)庫,數(shù)據(jù)庫的選項(xiàng) 兼容級別:數(shù)據(jù)庫向以前的版本兼容的級別。 數(shù)據(jù)庫為只讀:一般該選項(xiàng)都設(shè)置為False,如果設(shè)置為True,則該數(shù)據(jù)庫將不允許再寫入數(shù)據(jù)。 訪問限制:指定哪些用戶可以訪問該數(shù)據(jù)庫,可能值有以下三種。 Multiple:數(shù)據(jù)庫的正常狀態(tài),允許多個(gè)用戶同時(shí)訪問該數(shù)據(jù)庫 Single:用于維護(hù)操作的狀態(tài),一次只允許一個(gè)用戶訪問該數(shù)據(jù)庫。 Restricted:只有管理員或者特定的成員才能使用該數(shù)據(jù)庫。 自動關(guān)閉:如果設(shè)置為True的話,則最
23、后一個(gè)用戶退出后,數(shù)據(jù)庫會關(guān)閉并且釋放資源。對那些經(jīng)常被使用 的數(shù)據(jù)庫,此選項(xiàng)不要設(shè)置為True,否則會額外增加開關(guān)數(shù)據(jù)庫帶來的負(fù)擔(dān)。 自動收縮:如果設(shè)置為True的話,則該數(shù)據(jù)庫將定期自動收縮,釋放沒有使用的數(shù)據(jù)庫磁盤空間。,.,第7章 用表組織數(shù)據(jù)庫,數(shù)據(jù)完整性 為了實(shí)現(xiàn)完整性,數(shù)據(jù)庫需要做以下兩方面的工作。 檢驗(yàn)每行數(shù)據(jù)是否符合要求 檢驗(yàn)每列數(shù)據(jù)是否符合要求 為了實(shí)現(xiàn)以上要求,SQL Server提供了以下四種類型的約束(Constraint)。 實(shí)體完整性約束 實(shí)體完整性約束要求表中的每一行數(shù)據(jù)都反映不同的實(shí)體,不能存在相同的數(shù)據(jù)行。通過索引,唯一約束,主鍵約束,或標(biāo)識列屬性,可以實(shí)現(xiàn)
24、表的實(shí)體完整性。 域完整性約束 域完整性指的是給定輸入的有效性。通過限制數(shù)據(jù)類型,檢查約束,輸入格式,外鍵約束,默認(rèn)值,非空約束等多種方法,可以實(shí)現(xiàn)表的域完整性。 引用完整性約束 在強(qiáng)制引用完整性時(shí),SQL Server禁止用戶進(jìn)行下列操作 當(dāng)主表中沒有關(guān)聯(lián)的記錄時(shí),將記錄添加到字表中。 更改主表中的值并導(dǎo)致相關(guān)表中的記錄孤立。 從主表中刪除記錄,但是相關(guān)表中仍存在與該記錄匹配的相關(guān)記錄。 引用完整性通過主鍵和外鍵之間的引用關(guān)系來實(shí)現(xiàn) 自定義完整性約束 用戶自定義完整性用來定義特定的規(guī)則。,.,第7章 用表組織數(shù)據(jù)庫,主鍵 定義:主鍵用來唯一標(biāo)識表中的每一行,用于強(qiáng)制表的實(shí)體完整性。 一個(gè)表只
25、能有一個(gè)主鍵,主鍵約束了表中的行是唯一的。 在選擇哪個(gè)列作為主鍵的時(shí)候,需要考慮以下兩個(gè)原則:最少性和穩(wěn)定性 最少性是指列數(shù)最少的鍵,如果可以從單個(gè)主鍵和組合主鍵中選擇時(shí),應(yīng)該選擇單個(gè)主鍵,這是因?yàn)椴僮饕涣斜炔僮鞫嗔幸?。?dāng)然該規(guī)則也有例外,例如,兩個(gè)整數(shù)類型的列的組合比一個(gè)很大的字符類型的列要快。 穩(wěn)定性是指列中數(shù)據(jù)的特征,由于主鍵通常用來在兩個(gè)表之間建立聯(lián)系,所以主鍵的數(shù)據(jù)不要經(jīng)常更新,理想情況下,應(yīng)該永遠(yuǎn)不改變。,.,第7章 用表組織數(shù)據(jù)庫,外鍵 外鍵用來強(qiáng)制引用完整性。一個(gè)表可以有多個(gè)外鍵。 SQL Server 中常用的數(shù)據(jù)類型 binary,varbinary,image,char
26、,varchar,nchar,nvarchar,text,ntext,datetime,int,smallint,tinyint,bigint,float,real,money,bit,.,第7章 用表組織數(shù)據(jù)庫,標(biāo)識列 標(biāo)識列的數(shù)據(jù)是自動生成的,不能在該列上輸入數(shù)據(jù)。 如果建立了主表和子表的關(guān)系,則有以下幾種情況。 子表中相關(guān)項(xiàng)目的數(shù)據(jù)在主表中必須存在。 主表中相關(guān)項(xiàng)的數(shù)據(jù)更改了,則子表對應(yīng)的數(shù)據(jù)項(xiàng)也應(yīng)該隨之更改。 在刪除子表之前,不能夠刪除主表。,.,第8章 用SQL語句操作數(shù)據(jù),SQL簡介 SQL全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language)” SQL是針對
27、數(shù)據(jù)庫而言的一門語言,它可以創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)表,可以針對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增,刪,改,查等操作,可以創(chuàng)建視圖,存儲過程,可以賦予用戶權(quán)限等。 SQL的組成 SQL語言主要由以下幾部分組成。 DML(Data Manipulation Language,數(shù)據(jù)操作語言,也稱為數(shù)據(jù)操縱語言):用來插入,修改和刪除數(shù)據(jù)庫中的數(shù)據(jù),如INSERT ,UPDATE,及DELETE等。 DDL(Data Definition Language,數(shù)據(jù)定義語言):用來建立數(shù)據(jù)庫,數(shù)據(jù)庫對象和定義其列,大部分是以CREATE開頭的命令如CREATE TABLE,CREATE VIEW 及DROP TABLE等。 D
28、QL(Data Query Language,數(shù)據(jù)查詢語言):用來對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢,如SELECT等。 DCL(Data Control Language,數(shù)據(jù)控制語言):用來控制數(shù)據(jù)庫組件的存取許可,存取權(quán)限等,如GRANT,REVOKE等 除此之外,T-SQL還包括變量說明,內(nèi)部函數(shù)等其他的命令。,.,第8章 用SQL語句操作數(shù)據(jù),SQL中的運(yùn)算符 算術(shù)運(yùn)算符 +,-,*,/,% 賦值運(yùn)算符 = 比較運(yùn)算符 = ,= 邏輯運(yùn)算符 AND,OR,NOT 使用INSERT插入數(shù)據(jù) 語法 Insert into 表名 (列名列表) values(值列表); 其中: into是可選的,也可
29、以省略。 表名是必須的 表的列名是可選的,如果省略,將依次插入所有列。 多個(gè)列名和多個(gè)值列表用逗號分隔。 分號(;)是T-SQL語句終止符,分號不是必須的。,.,第8章 用SQL語句操作數(shù)據(jù),注意事項(xiàng) 每次插入一整行數(shù)據(jù),不可能只插入半行或者幾列數(shù)據(jù),但允許某些列為空或使用默認(rèn)值。如果違反列的非空約束,那么插入語句會檢驗(yàn)失敗,不能成功插入數(shù)據(jù)。 數(shù)據(jù)值的數(shù)目必須與列數(shù)相同,每個(gè)數(shù)據(jù)值的數(shù)據(jù)類型,精度和小數(shù)位數(shù)也必須與相應(yīng)的列匹配。 INSERT語句不能為標(biāo)識列指定值,因?yàn)樗臄?shù)字是自動增長的。 對于字符類型,日期類型的列,當(dāng)插入數(shù)據(jù)的時(shí)候,用單引號()將其引起來。 盡管可以不指定列名,但是最好
30、明確指定插入的列和對應(yīng)的值,以做到“心中有數(shù)”。 如果在設(shè)計(jì)表的時(shí)候指定某列不允許為空,則該列必須插入數(shù)據(jù),否則將報(bào)告錯(cuò)誤信息。 插入的數(shù)據(jù)項(xiàng),要求符合檢查約束的要求。(default可以為擁有默認(rèn)值的列插入數(shù)據(jù)),.,第8章 用SQL語句操作數(shù)據(jù),一次插入多行數(shù)據(jù) 通過insert select 語句將現(xiàn)有表中的數(shù)據(jù)添加到已存在的表中 注意 查詢得到的數(shù)據(jù)個(gè)數(shù),順序,數(shù)據(jù)類型等,必須與插入的項(xiàng)保持一致 新表必須預(yù)先建好,并且具有列的相關(guān)屬性。 通過select into語句將現(xiàn)有表中的數(shù)據(jù)添加到新表 語法 select identity(數(shù)據(jù)類型,標(biāo)識種子,標(biāo)識增長量)as 列名 into
31、新表 from 原始表 注:該表不能預(yù)先存在 通過union關(guān)鍵字合并數(shù)據(jù)進(jìn)行插入,.,第8章 用SQL語句操作數(shù)據(jù),使用update更新數(shù)據(jù) 語法 update 表名 set 列名=更新值where 更新條件 其中 set 后面可以緊隨多個(gè)數(shù)據(jù)列的更新值,不限一個(gè),使用逗號分隔。 where子句是可選的,用來限制更新數(shù)據(jù)的條件。如果不限制,則整個(gè)表的所有數(shù)據(jù)行將被更新。 使用delete刪除數(shù)據(jù) 語法 delete from 表名where ; 提示 delete語句只要刪除就是刪除整條記錄,不會只刪除單個(gè)列,所以在delete后不能出現(xiàn)列名 使用truncate table刪除數(shù)據(jù) tru
32、ncate table刪除表中的所以行,但是表的結(jié)構(gòu),列,約束,索引等不會被改動。truncate table 不能用于有外鍵約束引用的表,這種情況下,需要使用delete語句。 truncate table 比delete執(zhí)行速度快,使用的系統(tǒng)資源和事務(wù)日志資源更少,并且刪除數(shù)據(jù)后表的標(biāo)識列會重新開始編號。 導(dǎo)入和導(dǎo)出數(shù)據(jù) 現(xiàn)場演示,.,第9章 數(shù)據(jù)查詢基礎(chǔ),使用select語句進(jìn)行查詢 語法 select from where order byASC或DESC 查詢所有的數(shù)據(jù)行和列 (*) 查詢部分行和列 在查詢中使用列的別名 (as) 查詢空值 (is null) 在查詢中使用常量列 查
33、詢返回限制的行數(shù) (top),.,第9章 數(shù)據(jù)查詢基礎(chǔ),order by ASC 升序 DESC 降序 在查詢中使用函數(shù) 常用的四類函數(shù) 字符串函數(shù) 日期函數(shù) 數(shù)學(xué)函數(shù) 系統(tǒng)函數(shù),.,第9章 數(shù)據(jù)查詢基礎(chǔ),部分常用的字符串函數(shù) charindex 用來尋找一個(gè)指定的字符串在另一個(gè)字符串中的起始位置 len 返回傳遞給它的字符串長度 upper 把傳遞給它的字符串轉(zhuǎn)換為大寫 ltrim 清除字符左邊的空格 rtrim 清除字符右邊的空格 right 從字符串右邊返回指定數(shù)目的字符 replace 替換一個(gè)字符串中的字符 stuff 在一個(gè)字符串中,刪除指定長度的字符,并在該位置插入一個(gè)新的字符串
34、,.,第9章 數(shù)據(jù)查詢基礎(chǔ),日期函數(shù),.,第9章 數(shù)據(jù)查詢基礎(chǔ),日期部分參數(shù)及其縮寫,.,第9章 數(shù)據(jù)查詢基礎(chǔ),數(shù)學(xué)函數(shù),.,第9章 數(shù)據(jù)查詢基礎(chǔ),系統(tǒng)函數(shù),.,第10章 模糊查詢和聚合函數(shù),模糊查詢 定義:模糊查詢提取的數(shù)據(jù)不一定是確切的,查詢者對查詢條件也是模糊的,大概的,不特別明確的。 模糊查詢可以使用like關(guān)鍵字和通配符來進(jìn)行。(is null查詢嚴(yán)格來說也是一種模糊查詢),模糊查詢還可以基于某個(gè)范圍內(nèi)的查詢和某些列舉值內(nèi)的查詢,.,第10章 模糊查詢和聚合函數(shù),通配符 定義:通配符是一類字符,它可以代替一個(gè)或多個(gè)真正的字符,查找信息時(shí)作為替代字符出現(xiàn)。,.,第10章 模糊查詢和聚合
35、函數(shù),使用like進(jìn)行模糊查詢 代碼演示 使用between在某個(gè)范圍內(nèi)查詢 區(qū)別 between 20 and 40 Between 40 and 20 使用in在列舉值內(nèi)進(jìn)行查詢 代碼演示 聚合函數(shù) SUM() AVG() MAX()和MIN() COUNT(),.,第11章 聯(lián)接查詢和分組查詢,使用GROUP BY進(jìn)行分組查詢 在select 列表中可以指定的列: 被分組的列 為每個(gè)分組返回一個(gè)值的表達(dá)式,如聚合函數(shù)計(jì)算出的列 使用HAVING子句進(jìn)行分組篩選 在select 語句中,WHERE,GROUP BY,HAVING子句和聚合函數(shù)的執(zhí)行次序如下:WHERE子句從數(shù)據(jù)源中去掉不符
36、合其搜索條件的數(shù)據(jù);GROUP BY子句搜集數(shù)據(jù)行到各個(gè)組,HAVING子句去掉不符合其他搜索條件的各組數(shù)據(jù)行。,.,第11章 聯(lián)接查詢和分組查詢,內(nèi)聯(lián)接 定義:它根據(jù)表中共同的列來進(jìn)行匹配。特別是兩個(gè)表存在主外鍵關(guān)系時(shí)通常會使用到內(nèi)聯(lián)接查詢 在where 子句中指定聯(lián)接條件 在from子句中使用inner joinon Inner join 用來聯(lián)接兩個(gè)表 Inner可以省略 On用來設(shè)置條件,.,第11章 聯(lián)接查詢和分組查詢,外聯(lián)接查詢 外聯(lián)接是至少返回一個(gè)表中的所有記錄,根據(jù)匹配條件有選擇性地返回另一張表的記錄。 左外聯(lián)接查詢 Left joinon Join 后面的表是字表 右外聯(lián)接查
37、詢 Right joinon Join后面的表是主表,.,第14章 使用ADO.NET訪問數(shù)據(jù)庫,ADO.NET簡介 ADO.NET是.NET Framework 中不可缺少的一部分,它是一組類。通過這些類, .NET可以與數(shù)據(jù)源進(jìn)行連接并對數(shù)據(jù)進(jìn)行增,刪,改,查等操作。 ADO.NET的主要組件 .NET Framework 數(shù)據(jù)提供程序 包括以下四個(gè)核心對象 Connection 建立和特定數(shù)據(jù)源的連接 Command 對數(shù)據(jù)源執(zhí)行命令 DataReader 從數(shù)據(jù)源中讀取只進(jìn)且只讀的數(shù)據(jù)流 DataAdapter 用數(shù)據(jù)源填充DataSet并解析更新 DataSet 是專門為獨(dú)立于任何數(shù)
38、據(jù)源的數(shù)據(jù)訪問而設(shè)計(jì)的。使用它,可以不必直接和數(shù)據(jù)源打交道,可以大批量地操作數(shù)據(jù),也可以將數(shù)據(jù)綁定在控件上。,.,第14章 使用ADO.NET訪問數(shù)據(jù)庫,Connection對象 作用:連接數(shù)據(jù)庫 連接數(shù)據(jù)庫步驟: 定義連接字符串 語法 Data Source=服務(wù)器名;Initial Catalog=數(shù)據(jù)庫名;User ID=用戶名;Pwd=密碼; 創(chuàng)建Connection對象 語法 SqlConnection connection=new SqlConnection(connString); 打開和數(shù)據(jù)庫的連接 語法 connection.Open();,.,第14章 使用ADO.NET訪
39、問數(shù)據(jù)庫,Connection對象常用的屬性和方法,.,第14章 使用ADO.NET訪問數(shù)據(jù)庫,常見錯(cuò)誤 數(shù)據(jù)庫連接字符串各參數(shù)之間的分隔符錯(cuò)誤 數(shù)據(jù)庫連接字符串中參數(shù)名稱拼寫錯(cuò)誤 數(shù)據(jù)庫連接字符串中引號出現(xiàn)的位置不正確 異常處理 語法 try /包含可能出現(xiàn)異常的代碼 catch(處理的異常類型) /處理異常的代碼 finally /無論異常是否發(fā)生,該段代碼總會執(zhí)行。 ,.,第14章 使用ADO.NET訪問數(shù)據(jù)庫,Command對象 創(chuàng)建Command對象的方法 語法 SqlCommand command=new SqlCommand(SQL語句,Connection對象); 使用Comman對象的步驟 創(chuàng)建數(shù)據(jù)庫連接 創(chuàng)建一個(gè)Connection對象 定義執(zhí)行的SQL語句 將對數(shù)據(jù)庫執(zhí)行的SQL語句賦給一個(gè)字符串 創(chuàng)建Command對象 使用已有的Connection對象和SQL語句字符串創(chuàng)建一個(gè)Command對象 執(zhí)行SQL語句 使用Command對象的某個(gè)方法執(zhí)行命令。,.,第14章 使用ADO.NET訪問數(shù)據(jù)庫,Command對象的主要屬性和方法,.,第1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寒區(qū)渠道襯砌凍脹破壞仿真與優(yōu)化設(shè)計(jì)研究
- 健康教案小班:飲食衛(wèi)生啟蒙
- 醫(yī)院感染預(yù)防和控制培訓(xùn)講義
- 神經(jīng)源性膀胱的康復(fù)護(hù)理
- 培訓(xùn)內(nèi)容導(dǎo)圖
- 2025年四川省宜賓市中考招生考試數(shù)學(xué)真題試卷(真題+答案)
- 預(yù)防疫情班會課件
- 順利消防頭腦風(fēng)暴課件
- 安全生產(chǎn)管理培訓(xùn)方案提高應(yīng)急處理能力迅速應(yīng)對事故
- 音樂改革政策解讀課件
- 山東畜牧獸醫(yī)單招考試題及答案
- 商戶安全生產(chǎn)培訓(xùn)課件
- 2025年西安高新區(qū)管委會招聘考試試卷
- 四川省廣元市2024-2025學(xué)年第二學(xué)期八年級期末考試數(shù)學(xué)試卷(無答案)
- 2024-2025學(xué)年成都市青羊區(qū)七年級下英語期末考試題(含答案)
- 死亡病例討論制度落實(shí)與質(zhì)控優(yōu)化
- 2018-2024年中國西瓜行業(yè)市場趨勢分析及投資潛力研究報(bào)告
- DB32∕T 5048-2025 全域土地綜合整治項(xiàng)目驗(yàn)收規(guī)范
- 2025屆河北中考道德與法治真題試卷【含答案】
- 《產(chǎn)科危急重癥早期識別中國專家共識(2024年版)》解讀課件
- 中醫(yī)外科一般護(hù)理常規(guī)
評論
0/150
提交評論