第一篇:SQL數(shù)據(jù)庫心得
黃淮學(xué)院 2015---2016學(xué)年第 一 學(xué)期 《C#數(shù)據(jù)庫應(yīng)用程序開發(fā)技術(shù)與案例教程》課程
題目:
學(xué)習(xí)報告
院
系:數(shù)學(xué)科學(xué)系 專
業(yè):數(shù)學(xué)與應(yīng)用數(shù)學(xué) 年
級:1301B 姓
名:曹占營 學(xué)
號:1331110101 任課教師:楊鋒英
2015年 12 月 30日
C#數(shù)據(jù)庫學(xué)習(xí)報告
在日常生活中,我們和朋友、親戚聯(lián)系,會廣泛用到通訊錄,因此這門課程以通訊錄開發(fā)為案例,教我們學(xué)習(xí)軟件開發(fā)。
軟件開發(fā)是一項非常注重實踐工作,不可能只憑看書、看視頻就學(xué)會軟件開發(fā),必須扎扎實實、一行一行的編寫代碼,不斷積累項目經(jīng)驗,才能真正掌握編程技術(shù),所以我們要親自上級編寫程序,才能真正掌握軟件開發(fā)技術(shù)。
本書分為基礎(chǔ)篇、進(jìn)階篇、高級篇,由淺入深地介紹了基于C#的數(shù)據(jù)庫編程技術(shù),所用的開發(fā)工具為Visual Studio 2008、SQL Server 2005以及Access 2007。
學(xué)習(xí)數(shù)據(jù)庫的內(nèi)容是從數(shù)據(jù)庫、數(shù)據(jù)表的創(chuàng)建和修改開始的,表是建立關(guān)系數(shù)據(jù)庫的基本結(jié)構(gòu),用來存儲數(shù)據(jù)具有已定義的屬性,在表的操作過程中,有查看表信息、查看表屬性、修改表中的數(shù)據(jù)、刪除表中的數(shù)據(jù)及修改表和刪除表的操作。從課程中讓我更明白一些知識,查詢可以通過SQL語言進(jìn)行完成,這樣加深了查詢語句的基本結(jié)構(gòu),讓我們能更好的掌握其中語句,方便于我們后面的學(xué)習(xí)和應(yīng)用。表是數(shù)據(jù)最重要的一個數(shù)據(jù)對象,表的創(chuàng)建好壞直接關(guān)系到數(shù)數(shù)據(jù)庫的成敗,表的內(nèi)容是越具體越好,但是也不能太繁瑣,以后在實際應(yīng)用中多使用表,對表的規(guī)劃和理解就會越深刻。在編程方面是需要我們對于編程有邏輯思維能力及一定的編程技巧。在數(shù)據(jù)庫中插入表、表中的信息等都需要注意,不然很容易出錯。
在基礎(chǔ)篇中,詳細(xì)講解了通訊錄系統(tǒng)的設(shè)計、開發(fā)和安裝部署這樣一個完整過程,對各個任務(wù)進(jìn)行詳細(xì)講解?;A(chǔ)篇學(xué)習(xí)分為9個任務(wù),分別為系統(tǒng)分析與設(shè)計、用戶登錄、主窗體設(shè)計、聯(lián)系人分組管理、聯(lián)系人管理、用戶密碼修改、數(shù)據(jù)庫備份與恢復(fù)、設(shè)計“關(guān)于”窗體、系統(tǒng)安裝與部署。學(xué)完基礎(chǔ)篇,即可開發(fā)出一個功能較為完備的通訊錄系統(tǒng)。在聯(lián)系人管理任務(wù)學(xué)習(xí)中,由于在Contact表中保存的是分組編號,而窗體上要顯示的是分組名稱,所以在查詢語句中需要級聯(lián)查詢,即SQL語句為”select Contact.Id, Name, Phone, Email, QQ, GroupName from Contact, ContactGroup where Contact.GroupId = ContactGroup.Id”。為了實現(xiàn)代碼復(fù)用,可以提供查詢功能,根據(jù)用戶選擇的擦尋天劍,拼接產(chǎn)生SQL語句。同時為了支持模糊查詢,還在SQL語句中用了like語句。通過SqlDataAdapter的Fill方法填充數(shù)據(jù)集,獲取數(shù)據(jù)。數(shù)據(jù)集中有了數(shù)據(jù)以后,我們只需設(shè)置DataGridView控件的DataSource屬性,就可以顯示數(shù)據(jù)了。
在進(jìn)階篇中,介紹了企業(yè)項目開發(fā)中廣發(fā)用到的參數(shù)化SQL語句、存儲過程使用及定義數(shù)據(jù)庫操作類,分為3個任務(wù)學(xué)習(xí),分別為使用參數(shù)化SQL語句、使用存儲過程、使用自定義數(shù)據(jù)庫操作類,進(jìn)一步提高我們的數(shù)據(jù)庫編程能力。在使用存儲過程任務(wù)學(xué)習(xí)中,了解到存儲過程是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。在性能方面,存儲過程有如下的優(yōu)點。(1)與編譯,存儲過程預(yù)先編譯好放在數(shù)據(jù)庫內(nèi),減少編譯語句所花的時間。(2)緩存,編譯好的存儲過程會進(jìn)入緩存,所以對于經(jīng)常執(zhí)行的存儲過程,除了第一次執(zhí)行外,其他次執(zhí)行的書都會有明顯提高。(3)減少網(wǎng)絡(luò)傳輸,特別對于處理一些數(shù)據(jù)的存儲過程,不必像直接用SQL語句實現(xiàn)那樣多次傳送數(shù)據(jù)到客戶端。通過前面的學(xué)習(xí),細(xì)細(xì)體會對數(shù)據(jù)庫的操作,可以發(fā)現(xiàn),這么多操作其實可以分為4種。(1)對數(shù)據(jù)庫進(jìn)行非連接式查詢操作,返回多條記錄。這種操作可以通過SqlDataAdapter對象的Fill方法來完成,即把查詢得到的結(jié)果填充到DataTable(或DataSet)對象中。(2)對數(shù)據(jù)庫進(jìn)行連接式查詢操作,返回多條查詢記錄。這種操作可以通過SqlCommand對象的ExecuteReader方法來完成,返回SqlDataReader對象。(3)從數(shù)據(jù)庫中檢索單值。這種操作可以通過SqlCommand對象的ExecuteNonQuery方法來完成。ExecuteScalar方法返回的是Object類型,需要根據(jù)實際情況進(jìn)行類型轉(zhuǎn)換。(4)對數(shù)據(jù)庫執(zhí)行增、刪、改操作。這種操作可以通過SqlCommand對象的ExecuteNonQuery方法來完成,返回增、刪、改操作后數(shù)據(jù)庫中受影響的行數(shù)。
在高級篇中,分為4個任務(wù)學(xué)習(xí),分別為開發(fā)基于三層構(gòu)架的通訊錄程序、開發(fā)基于Access的通訊錄程序、實現(xiàn)基于抽象工廠模式的三層架構(gòu)、使用MD5加密用戶密碼。首先詳細(xì)講解了基于三層構(gòu)架的通訊錄程序開發(fā)過程以及如何開發(fā)一個基于Access的通訊錄系統(tǒng)。最后,介紹了如何采用MD5加密技術(shù)對用戶密碼加密。MD5加密技術(shù)也是實際項目開發(fā)中廣泛用到的,通過MD5加密用戶密碼,可以提高程序的安全性?!叭龑蛹軜?gòu)”一詞中的“三層”是指:“表示層”、“業(yè)務(wù)邏輯層”、“數(shù)據(jù)訪問層”。表示層:位于最外層,離用戶最近。用于顯示和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作界面。表示層的常見形式為WinFrom和WebForm。業(yè)務(wù)邏輯層:負(fù)責(zé)處理用戶輸入的信息,或者是將這些信息發(fā)送給數(shù)據(jù)訪問層進(jìn)行保存,或者是調(diào)用數(shù)據(jù)訪問層中的函數(shù)再次讀出這些數(shù)據(jù)。業(yè)務(wù)邏輯層也可以包括一些對“商業(yè)邏輯”描述代碼在里面。數(shù)據(jù)訪問層:僅實現(xiàn)對數(shù)據(jù)的保存和讀取操作??梢栽L問數(shù)據(jù)庫系統(tǒng)、二進(jìn)制文件、文本文檔或是XML文檔。
在這一學(xué)期有限的幾次實驗課后,我雖然沒有學(xué)會很多,但也學(xué)會了一些簡單的操作,我學(xué)會了一些簡單的數(shù)據(jù)運(yùn)算,會建立一些簡單的表。有時候在做實驗時,對于實驗中的一些東西我不怎么了解,但我還會去做,因為我想只有多練習(xí)才能熟練,也才能理解掌握知識。我不知道這一門課對其他同學(xué)來說怎么樣,但對我來說卻有些難,但我會努力。因為我認(rèn)為它對我以后考計算機(jī)二級有很大的幫助。
很快這一學(xué)期馬上就要結(jié)束了,數(shù)據(jù)庫這一門課也很快就要結(jié)束了,但這一學(xué)期的學(xué)習(xí)讓我知道了很多,也告訴了我在以后的人生中如何去做事,如何去做人。尤其是老師的耐心,老師的敬業(yè)精神感動了我,再做任何事時都應(yīng)該認(rèn)真負(fù)責(zé),任何一個人都應(yīng)該被尊重。
第二篇:SQL數(shù)據(jù)庫學(xué)習(xí)筆記與心得(定稿)
SQL數(shù)據(jù)庫學(xué)習(xí)筆記與心得
0961140107
SQL是市場占有率最大的數(shù)據(jù)庫之一,是信息化社會的產(chǎn)物,是整理、查詢、分析數(shù)據(jù)的強(qiáng)有力工具。我對于SQL數(shù)據(jù)庫的學(xué)習(xí)是在實驗與探索之中度過的。
下面將我本學(xué)期所學(xué)的主要知識簡單總結(jié)如下:
共分四大塊:
一、數(shù)據(jù)庫基本原理;
二、SQL標(biāo)準(zhǔn)語言;
三、數(shù)據(jù)庫設(shè)計;
四、數(shù)據(jù)庫安全。
一、數(shù)據(jù)庫基本原理
數(shù)據(jù)庫技術(shù)是計算機(jī)領(lǐng)域中發(fā)展最快的技術(shù)之一。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?、對象關(guān)系模型。其中關(guān)系模型是目前最重要的一種數(shù)據(jù)模型。關(guān)系數(shù)據(jù)庫是我們需要掌握的重點。
關(guān)系模型中常用的關(guān)系操作包括:查詢操作和插入、刪除、修改操作兩大部分。關(guān)系的查詢表達(dá)能力很強(qiáng),是關(guān)系操作中最主要的部分。
二、SQL標(biāo)準(zhǔn)語言
SQL(Structured Query Language),即結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。SQL標(biāo)準(zhǔn)語言從1986年公布以來隨著數(shù)據(jù)庫技術(shù)的發(fā)展不斷發(fā)展,不斷豐富。
SQL 功能動詞
數(shù) 據(jù) 定 義 CREATE,DROP,ALTER
數(shù) 據(jù) 查 詢 SELECT
數(shù) 據(jù) 操 縱 INSERT,UPDATE,DELETE
數(shù) 據(jù) 控 制 GRANT,REVOKE
SQL之所以能夠為用戶和業(yè)界所接受,并成為國際標(biāo)準(zhǔn),是因為它是一個綜合的、功能極強(qiáng)同時又簡潔易學(xué)的語言。SQL集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義林巧
和數(shù)據(jù)控制功能于一體。有如下特點:1)綜合統(tǒng)一;2)高度過程化;3)面向集合的操作方式;4)以同一種語法結(jié)構(gòu)提供多種使用方式;5)語言簡潔,易學(xué)易用。
SQL的數(shù)據(jù)定義語句:
創(chuàng)建刪除修改
表CREATE TABLEDROP TABLEALTER TABLE
視圖 CREATE VIEWDROP VIEW
索引 CREATE INDEXDROP INDEX
數(shù)據(jù)庫查詢是數(shù)據(jù)庫的核心操作。也是數(shù)據(jù)庫學(xué)習(xí)的重點和難點。SQL提供了SELECT語句進(jìn)行數(shù)據(jù)庫的查詢,該語句具有靈活的使用方式和豐富的功能。其一般格式為:
SELECT [ALL|DISTINCT] <目標(biāo)列表達(dá)式>
FROM <表名或視圖名>[,<表名或視圖名> ] …
[ WHERE <條件表達(dá)式> ]
[ GROUP BY <列名1> [ HAVING <條件表達(dá)式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ];
SELECT語句既可以完成簡單的單表查詢,也可以完成復(fù)雜的連接查詢和嵌套查詢。
(一)、單表查詢
1、選擇表中的若干列:
2、選擇表中的若干元組;
2)查詢滿足條件的元組。WHERE子句常用的查詢條件有
3、ORDER BY子句。
4、聚集函數(shù)。
5、ORDER BY子句
(二)、連接查詢
1、等值與非等值連接查詢;
2、自然連接;
3、外連接;
4、復(fù)合條件連接。
(三)、嵌套查詢
1、帶有IN謂語的子查詢;
2、帶有比較運(yùn)算符的子查詢;
3、帶有ANY(SOME)或ALL謂語的子查詢;
4、帶有EXISTS謂詞的子查詢。
(四)、集合查詢。
數(shù)據(jù)的更新操作有三種:向表中添加若干行數(shù)據(jù)、修改表中的數(shù)據(jù)和刪除表中的若干行數(shù)據(jù)。
三、數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求
數(shù)據(jù)庫設(shè)計的基本步驟:
1、數(shù)據(jù)庫設(shè)計的準(zhǔn)備工作;
2、數(shù)據(jù)庫設(shè)計的過程(六個階段): 1)需求分析階段;2)概念結(jié)構(gòu)設(shè)計階段;3)邏輯結(jié)構(gòu)設(shè)計階段;4)數(shù)據(jù)庫物理設(shè)計階段;5)數(shù)據(jù)庫實施階段;6)數(shù)據(jù)庫運(yùn)行和維護(hù)階段.
四、數(shù)據(jù)庫安全
數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。課本中講述了三類計算機(jī)系統(tǒng)安全性問題:技術(shù)安全類、管理安全類和政策法律類。
如何控制數(shù)據(jù)庫的安全性? 其常用的方法有:1)用戶標(biāo)識和鑒定2)存取控制;3)視圖;4)審計;5)密碼存儲.
數(shù)據(jù)庫的完整性:即數(shù)據(jù)的正確性和相容性防止不合語義的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫。例如:學(xué)生的年齡必須是整數(shù),取值范圍為14--29;學(xué)生的性別只能是男或女;學(xué)生的學(xué)號一定是唯一的; 學(xué)生所在的系必須是學(xué)校開設(shè)的系;
以上是我對SQL數(shù)據(jù)庫重點知識的理解。通過學(xué)習(xí)本課程和上機(jī)實驗,我了解了數(shù)據(jù)庫的概念及其重要性,還有其今后的發(fā)展方向,這將有利于我今后更好地把握時代之脈搏。
第三篇:SQL數(shù)據(jù)庫選擇題及答案
1、在數(shù)據(jù)庫技術(shù)中,獨立于計算機(jī)系統(tǒng)的模型是_C__。A、面向?qū)ο蟮哪P虰、關(guān)系模型C、E-R模型D、層次模型
2、數(shù)據(jù)庫系統(tǒng)的控制中樞是__B_。A、數(shù)據(jù)庫、b、數(shù)據(jù)庫管理系統(tǒng)C、數(shù)據(jù)庫管理員D、數(shù)據(jù)庫應(yīng)用系統(tǒng)
3、使用SQL命令將學(xué)生表STUDENT中的學(xué)生年齡AGE字段的值增加1歲,應(yīng)該使用的命令是__C_。
A、UPDATE SET AGE WITH AGE+1
B、REPLACE AGE WITH AGE+1
C、UPDATE STUDENT SET AGE=AGE+1
D、UPDATE STUDENT AGE WITH AGE+1
4、在關(guān)系數(shù)據(jù)庫中,建立數(shù)據(jù)庫表時,將年齡字段值限制在12~40歲之間的這種約束屬于__B__。
A、視圖完整性約束B、域完整性約束C、參照完整性約束D、實體完整性約束
5、在 SQL 語句中,與 X BETWEEN 20 AND 30 等價的表達(dá)式是__D_。A、X>=20 AND X<30
B、X>20 AND X<30
C、X>20 AND X<=30
D、X>=20 AND X<=30
6、在數(shù)據(jù)庫中,概念模型是_D__。A、用于現(xiàn)實的建模,與具體的DBMS有關(guān)B、用于信息世界的建模,與具體的DBMS有關(guān)
C、用于現(xiàn)實的建模,與具體的DBMS無關(guān)D、用于信息世界的建模,與具體的DBMS無關(guān)
7、數(shù)據(jù)庫的并發(fā)操作可能帶來的問題包括__B_。A非法用戶的使用B丟失更新C數(shù)據(jù)獨立性會提高D增加數(shù)據(jù)冗余度
8、在關(guān)系數(shù)據(jù)庫中,模式對應(yīng)的是__A___。A、視圖和所有基本表
B、視圖和部分基本表
C、基本表
D、索引
9、能實現(xiàn)絕對的與平臺無關(guān)性的Web數(shù)據(jù)庫訪問技術(shù)是_D_。A、ADO
B、ActiveX
C、WebbaseAPI
D、JDBC
10、在下列描述中,正確的描述是__B___。
A、SQL 是一種過程化語言B、SQL 采用集合操作方式
C、SQL 不能嵌入到高級語言程序中
D、SQL 是一種 DBMS
11、數(shù)據(jù)庫系統(tǒng)是由__A__組成的。A、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和用戶
B、數(shù)據(jù)文件、命令文件和報表
C、數(shù)據(jù)庫文件結(jié)構(gòu)和數(shù)據(jù)
D、常量、變量和函數(shù)
12、在SQL查詢時,使用WHERE子句指出的是__B__。A、查詢目標(biāo)B、查詢條件C、查詢視圖D、查詢結(jié)果
13、在下列 RDMBS 產(chǎn)品中,屬于小型數(shù)據(jù)庫系統(tǒng)的是_A_。A、Access B、Oracle C、Sybase D、Informix
14、數(shù)據(jù)庫類型是按照_A_來劃分的。
A、數(shù)據(jù)模型B、記錄形式C、數(shù)據(jù)存取方法D、文件形式
15、作為Microsoft Office家族成員之一的_A_數(shù)據(jù)庫,能夠與其他Office組件進(jìn)行數(shù)據(jù)交換共享數(shù)據(jù)資源,易于生成集文字處理、圖表生成和數(shù)據(jù)管理于一體的辦公自動化系統(tǒng)。A、Access
B、Oracle
C、Sybase
D、Informix
16、數(shù)據(jù)庫管理系統(tǒng)更適合于_D_方面的應(yīng)用。A、CAD
B、過程控制C、科學(xué)計算D、數(shù)據(jù)處理
17、下列四組SQL命令,全部屬于數(shù)據(jù)定義語句的命令是_C__。A、CREATE,DROP,ALTER
B、CREATE,DROP,UPDATE
C、CREATE,DROP,GRANT
D、CREATE,DROP,SELECT
18、通過Internet及瀏覽器處理的數(shù)據(jù)庫,應(yīng)該是_C__處理。A、集中式
B、分布式
C、主從結(jié)構(gòu)式D、以上3種模式
19、數(shù)據(jù)的邏輯獨立性是指__D_。A、數(shù)據(jù)與存儲結(jié)構(gòu)的邏輯獨立性 B、數(shù)據(jù)元素之間的邏輯獨立性
C、存儲結(jié)構(gòu)與物理結(jié)構(gòu)的邏輯獨立性
D、數(shù)據(jù)與程序的邏輯獨立性
20、在數(shù)據(jù)庫技術(shù)中,獨立于計算機(jī)系統(tǒng)的模型是_C__。A面向?qū)ο蟮哪P?/p>
B關(guān)系模型
C、E-R模型
D、層次模型
21、關(guān)系代數(shù)的3個基本運(yùn)算是–D--、投影、連接。A、關(guān)系與B、蘊(yùn)含C、關(guān)系或D、選擇
22、下面命題不正確的是:A、若冗余數(shù)據(jù)可以控制,則數(shù)據(jù)更新的一致性得以保證
B、數(shù)據(jù)庫減少了不必要的數(shù)據(jù)冗余C、數(shù)據(jù)庫的數(shù)據(jù)可以共享D、數(shù)據(jù)庫中不存在數(shù)據(jù)冗余
23、在基本SQL中不可以實現(xiàn): A、定義視圖B、并發(fā)控制C、定義基表D、查詢視圖和基表
24、用二維表來表示實體及實體之間聯(lián)系的數(shù)據(jù)模型稱為_C___。
A、實體-聯(lián)系模型B、層次模型C、關(guān)系模型D、網(wǎng)狀模型
25、查找工資在600元以上并且職稱為工程師的紀(jì)錄,邏輯表達(dá)式為_D___。
A、“工資”>600.OR.職稱=“工程師”
B、工資>600.AND.職稱=工程師
C、“工資”>600.AND.“職稱”=“工程師”
D、工資>600.AND.職稱=“工程師”
26、數(shù)據(jù)庫鏡像可以用于__C_。(1分)
A、實現(xiàn)數(shù)據(jù)庫的安全性
B、實現(xiàn)數(shù)據(jù)共享C、進(jìn)行數(shù)據(jù)庫恢復(fù)或并發(fā)操作D、保證數(shù)據(jù)庫的完整性
27、在下列類型的數(shù)據(jù)庫系統(tǒng)中,應(yīng)用最廣泛的是__C___。(1分)
A、分布型數(shù)據(jù)庫系統(tǒng)B、邏輯型數(shù)據(jù)庫系統(tǒng)C、關(guān)系型數(shù)據(jù)庫系統(tǒng)D、層次型數(shù)據(jù)庫系統(tǒng)
28、在下列描述中,正確的描述是__B__。(1分)A、SQL 是一種過程化語言B、SQL 采用集合操作方式
C、SQL 不能嵌入到高級語言程序中
D、SQL 是一種 DBMS
第四篇:數(shù)據(jù)庫sql語言總結(jié)
插入句型:
insertinto<表名> [各屬性名]values(<常量1>,<常量2>……)
刪除元組或者二維表:
delete from<表名>[ where <條件> ]
刪除屬性:
altertable<表名>dropcolumn<列名>
增加某表的屬性:
altertable<表名>add<列名> 類型
修改句型:
update<表名>set<列名> =<表達(dá)式>[where<條件>]
修改某表當(dāng)中的屬性類型:
altertable<表名>altercolumn<列名><轉(zhuǎn)換的類型>;
顯示表的一些基本情況
EXEC sp_help'<表名>'
更改當(dāng)前數(shù)據(jù)庫中用戶創(chuàng)建對象(如表、列或用戶定義數(shù)據(jù)類型)的名稱 sp_rename ‘<舊的表名>’, ‘<新的表名>’
修改表的列名 sp_rename'<表名>.
小注:上面的語句最后不需要加分號
判斷表中是否存在某列的語句
if exists(select * from syscolumns where id = object_id('stu')and name='Sno')
print 'stu exists'
else print 'stu not exists'
將表中的某列設(shè)置為主碼:
alter table stu addSno char primary key;
判斷表是否存在if exists(select count(*)from sysobjects where type='U' and name='stu')
查詢某個表中字段的列名和數(shù)據(jù)類型
select column_name,data_type from information_schema.columns where table_name = '表名';
第五篇:SQL數(shù)據(jù)庫學(xué)習(xí)心得
SQL數(shù)據(jù)庫學(xué)習(xí)心得
一 數(shù)據(jù)庫課程總結(jié)
(一)數(shù)據(jù)庫概述數(shù)據(jù)
(1)數(shù)據(jù)庫中存儲的基本對象,是描述事物的符號記錄(如存儲某一個人
(2)數(shù)據(jù)的種類包括文字、圖形、圖象、聲音
(3)數(shù)據(jù)的特點是數(shù)據(jù)與其語義是不可分的。數(shù)據(jù)庫
(1)(database,簡稱DB)是指長期存儲在電腦內(nèi)有組織的、可共享的數(shù)據(jù)集合;
(2)數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagement System,簡稱DBMS),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。關(guān)系數(shù)據(jù)庫基礎(chǔ)
(1)元組(Tuple)表中的一行即為一個元組。
(2)屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性
名。
(3)主碼(Key)表中的某個屬性組,它可以唯一確定一個元組。
(4)域(Domain)屬性的取值范圍。
(5)分量元組中的一個屬性值。
(二)SQL Server概述SQL Server的版本
(1)企業(yè)版,作為生產(chǎn)使用
(2)個人版,供移動用戶使用
(3)標(biāo)準(zhǔn)版,作為小工作組或部門使用
(4)開發(fā)板,供程序員開發(fā)測試使用SQL數(shù)據(jù)庫的創(chuàng)建
(1)創(chuàng)建數(shù)據(jù)庫的過程就是確定數(shù)據(jù)庫名稱、大小、存放位置等信息。
(2)數(shù)據(jù)庫文件包括主數(shù)據(jù)庫文件(.mdf)、次數(shù)據(jù)文件(.ndf)、事務(wù)日志文件(.ldf)
(3)3種方式創(chuàng)建數(shù)據(jù)庫:使用數(shù)據(jù)庫創(chuàng)建向?qū)?、使用企業(yè)管理器、使用SQL語句在查
詢分析器中創(chuàng)建。
(三)數(shù)據(jù)庫中的表創(chuàng)建表兩種方式:使用企業(yè)管理器、使用SQL語句
2修改表,修改操作包括:增加字段、刪除字段、修改字段(名稱、修改其已有的屬性)兩種方式,使用企業(yè)管理器、使用SQL語句
(四)數(shù)據(jù)查詢
1基本的SELECT語句,例查詢Readers表中所有記錄的信息SELECT*FROM Readers 2查詢語句的統(tǒng)計功能
3數(shù)據(jù)的連接
外連接的結(jié)果集中,不僅包括滿足連接條件記錄,還包括不滿足連接條件的記錄。連接方式分為:左外連接、右外連接、全外連接。
(五)數(shù)據(jù)完整性
1定義:數(shù)據(jù)完整性是指存儲在數(shù)據(jù)庫中的數(shù)據(jù)的一致性和準(zhǔn)確性。
2實體完整性
又稱行完整性,要求表中不能存在完全相同的記錄,而且每條記錄都要具有一個非空且不重復(fù)的主鍵值。
3使用約束:約束是保證數(shù)據(jù)完整性的有效方法,(1)PRIMARY KEY(主鍵約束)特點:每個表只能定義一個主鍵、主鍵值不可為空、主鍵值不可重復(fù)。
(2)UNIQUE(唯一約束)確保表中的某非主鍵列不輸入重復(fù)值,PRIMARY KEY 與 UNIQUE的區(qū)別、約束數(shù)量、是否允許NULL值
(3)CHECK(檢查約束),用于限制輸入到列中的值的范圍
(六)數(shù)據(jù)庫的安全
1對于SQL Server來說,提供身份驗證和權(quán)限驗證兩種保護(hù)方式。
(1)身份驗證模式: Windows驗證模式,只限于本機(jī)使用; 混合驗證模式,本機(jī)或遠(yuǎn)程均可訪問角色管理是一種權(quán)限管理的方法,角色中的每一用戶都擁有此角色中的所有權(quán)限。3數(shù)據(jù)庫角色提供了在數(shù)據(jù)庫級別上的管理權(quán)限組。
(七)備份與恢復(fù)
1備份數(shù)據(jù)庫,使用SQL語句備份
步驟:(1)創(chuàng)建備份設(shè)備
(2)備份數(shù)據(jù)庫(完全數(shù)據(jù)庫備份、差異備份、日志備份、文件與文件組備份)2恢復(fù)數(shù)據(jù)庫(使用企業(yè)管理器恢復(fù)、使用SQL語句恢復(fù))
二 數(shù)據(jù)庫課程心得
在學(xué)習(xí)數(shù)據(jù)庫和數(shù)據(jù)表創(chuàng)建和修改時,了解到表是建立關(guān)系數(shù)據(jù)庫的基本結(jié)構(gòu),用來存儲數(shù)據(jù)具有已定義的屬性,在表的操作過程中,有查看表信息、查看表屬性、修改表中的數(shù)據(jù)、刪除表中的數(shù)據(jù)及修改表和刪除表的操作。從課程中中讓我更明白一些知識,表是數(shù)據(jù)最重要的一個數(shù)據(jù)對象,表的創(chuàng)建好壞直接關(guān)系到數(shù)數(shù)據(jù)庫的成敗,表的內(nèi)容是越具體越好,但是也不能太繁瑣,以后在實際應(yīng)用中多使用表,對表的規(guī)劃和理解就會越深刻。我們上機(jī)的另一個內(nèi)容是數(shù)據(jù)庫的約束、視圖、查詢。從中我們了解到查詢語句的基本結(jié)構(gòu),和簡單SELECT語句的使用,多表連接查詢。而在視圖的操作中,也了解到了視圖是常見的數(shù)據(jù)庫對象,是提供查看和存取數(shù)據(jù)的另一種途徑,對查詢執(zhí)行的大部分操作,使用視圖一樣可以完成。使用視圖不僅可以簡化數(shù)據(jù)操作,還可以提高數(shù)據(jù)庫的安全性,不僅可以檢索數(shù)據(jù),也可以通過視圖向基表中添加、修改和刪除數(shù)據(jù)。存儲過程、觸發(fā)器也是我們學(xué)習(xí)的內(nèi)容之一,在操作中有建立存儲過程,執(zhí)行存儲過程,及查看和修改存儲過程,這些都是非?;A(chǔ)的東西,但對用戶卻是非常重要的呢,只有熟悉了T_SQL語言,才能更好的掌握更多的東西。我們還學(xué)習(xí)了,SQL管理、數(shù)據(jù)的導(dǎo)入、導(dǎo)出、備份和還原。有SQL Server 安全訪問控制;登錄賬戶的管理;數(shù)據(jù)庫角色的管理;用戶權(quán)限管理。維護(hù)數(shù)據(jù)庫的安全是確保數(shù)據(jù)庫正常運(yùn)行的重要工作。數(shù)據(jù)的備份是對SQL Server數(shù)據(jù)事務(wù)日志進(jìn)行拷貝,數(shù)據(jù)庫備份記錄了在進(jìn)行備份操作的數(shù)據(jù)庫中所有數(shù)據(jù)的狀態(tài)。而數(shù)據(jù)的備份還分為數(shù)據(jù)庫完整備份、差異備份、事務(wù)日志備份、文件及文件組備份。做數(shù)據(jù)備份就是為了以后的數(shù)據(jù)庫恢復(fù)用。我們還做了倉庫管理數(shù)據(jù)庫,其中的要求包含了許多數(shù)據(jù)庫的對象,綜合了我們所學(xué)的許多知識,讓我們更努力的把所學(xué)到的東西運(yùn)用上去。