當前位置:首頁 » 數據倉庫 » 資料庫筆記總結
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫筆記總結

發布時間: 2023-07-20 14:17:51

資料庫實習心得體會

資料庫是一門非常實用的技術語言,通過實習的方式能夠快速提升我們對這門語言的掌控,下面是由我為大家整理的「資料庫實習心得體會」,僅供參考,歡迎大家閱讀。

資料庫實習心得體會(一)

時間一晃而過來公司x個月的時間,以快速了解xx銀行實物資產系統的業務需求,進行對系統的分析,這是我人生中彌足珍貴的一段經歷。在這段時間里領導在工作上給予了我極大的幫助,讓我充分感受到了領導們「海納百川」的胸襟悉伍,感受到了大發人「不經歷風雨,怎能見彩虹」的豪氣。肅然起敬的同時,也為我有機會成為一份子而自豪。每個人都是在不斷的總結中成長,在不斷的審視中完善自己。在這段時間里自己也是在總結、審視中腳踏實地地完成好本職工作,現將這段時間總結如下:

1、對xx銀行的實物資產系統的整個資料庫的規劃;

2、分拆庫設計,登陸及許可權庫,全行庫,分行庫,批處理庫,建示意圖,開發部和業務部開會討論確認,最後按方案設計;

3、資料庫設計、數據分析、系統開發維護和管理工作;

4、設計備份與恢復策略並貫徹實施、設計資料庫高可用性方案並貫徹實施;

5、設計資料庫高可用性方案並貫徹實施、根據業務及應用開發需求進行數據建模、開發較復雜的後台存儲過程及觸發器;

6、主持開發過大型資料庫系統,能夠通過良好資料庫結構設計解決海量數據的高效處理;

7、我以前一直從事編程方面,在編程的思想上去考慮問題,在公司緊缺資料庫設計工程師,在項目經理的安排下,我主要負責資料庫設計,在資料庫設計方面,我學會資料庫優化,准確理解需求;掌握常見互聯網應用服務的配置與管理,開發過大容量資料庫、高性能的服務。

我有一個人生目標:做最有影響力的自己。它不是靠嘩眾取寵能夠得來的,而是需要不斷提升夢想的高度、拓展心靈的寬度、累積思想的厚度!我相信,我的人生目標在以後的路上會一直影響我的職業生涯。熟練掌握我們的產品。力爭做個技術骨幹!這是我對自己一個總體要求!

資料庫實習心得體會(二)

一個月的資料庫實訓就轉眼間就上完了,期間講解了一個學生管理系統,最後還做了一個小的資料庫鏈接作業。現在就說說關於vb鏈接的資料庫的一些方法。

首先說資料庫,簡單的說就是建表格,然後把一張一張的表格和在一起,成為一大堆的數據集合。他是依照某種數據結構組織起來並存放二級存儲器中的數據集合,基本分為三個層次,物理數據層,概念數據層和邏輯數據層。不同層次間的聯系是通過映射來轉換的。

大多數vb鏈接資料庫都使用ado控制項,他可以分為分為有源資料庫和無源資料庫,即是否使用了dsn數據源。在連接資料庫前首先要在vb菜單中「工程「「引用」或「部件」從中選擇microsoft activex data objects 2.6 library和microsoft activex data objects recordset 2.6兩個組件,然後定義鏈接的對象,用什麼名字由自己決定。這樣資料庫也就基本上鏈接好了。

x月x號進入宏天實訓公司參加軟體開發實訓的,在此次實訓中,除了讓我明白工作中需要能力,素質,知識之外,更重要的是學會了如何去完成一個任務,懂得了享受工作。當遇到問題,冷靜,想辦法一點一點的排除障礙,到最後獲取成功,一種自信心就由然而生,這應該就是工作的樂趣。有時岩清候不懂的就需要問別人了,虛心請教,從別人的身上真的能學到自己沒有的東西,每一次的挫折都會使我更接近成功。還有學會了在工作中與人的合作與交流,同樂同累,合作互助,這是團體的精神,也是必須學習的東西。

經過之前的在校學習,對程序設計有了一定的認識與理解。在校期間,一直都是學習理論知識,沒有機會去參與項目的開發。所以說實話,在實訓之前,軟體項目開發對我來說是比較抽象的,一個完整的項目要怎麼分工以及完成該項目所要的步驟也不是很明確。而經過這次實訓,讓我明白了一個完整項目的開發,必須由團隊來分工合作,並在每個階段中進行必要的總結與論證。

一個完整項目的開發它所要經歷的階段包括:遠景范圍規劃和用例說明睜棗或、項目結構和風險評估、業務功能說明書、詳細設計說明書、代碼實現、測試和安裝包等等。一個項目的開發所需要的財力、人力都是很多的,如果沒有一個好的遠景規劃,對以後的開發進度會有很大的影響,甚至會出現在預定時間內不能完成項目或者完成的項目跟原來預想的不一樣。一份好的項目結構、業務功能和詳細設計說明書對一個項目的開發有明確的指引作用,它可以使開發人員對這個項目所要實現的功能在總體上有比較明確的認識,還能減少在開發過程中出現不必要的麻煩。代碼的實現是一個項目開發成功與否的關鍵,也就是說,前期作業都是為代碼的實現所做的准備。

我深刻的認識到要成為一名優秀的軟體開發人員不是一件容易的事情,不僅要有足夠的干勁和熱情,還要有扎實的編寫代碼基礎,必須要有事先對文檔進行可靠性報告,功能說明書,詳細設計說明書等的編寫和一些風險評估的編寫的能力。

除了圖書館,最能讓我感覺到身在大學的就是實訓機房,在匆匆過去的兩個月內,我往返於實訓機房與宿舍之間,使我享受了一個充實的學習時期,讓我感受到了大學的魅力,對自己充滿信心,對大學充滿信心,以積極的心態迎接明天挑戰。

實訓中要求有扎實的理論基本知識,操作起來才順心應手,我這時才明白什麼是「書到用時方恨少」。這就激發了學習的慾望。

「學以致用」,就是要把學來的知識能運用到實際操作當中,用實踐來檢驗知識的正確性。我想,這是實訓的最根本目的。

「紙上得來終覺淺,絕知此事要躬行!」,在短暫的實訓過程中,讓我深深感受到自己在實際運用中專業知識的匱乏。以前總以為自己學的還不錯,一旦應用到實際就大不一樣了,這時才真正領悟「學無止境」的含義。

資料庫實習心得體會(三)

在我看來,資料庫課程設計主要的目標是利用課程中學到的資料庫知識和技術較好的開發設計出資料庫應用系統,去解決各行各業信息化處理的要求。通過這次的課程設計,可以鞏固我們對資料庫基本原理和基礎理論的理解,掌握資料庫應用系統設計開發的基本方法,進一步提高我們綜合運用所學知識的能力。

當我們這組決定做大學生就業咨詢系統時,我們並沒有著手寫程序。而是大家一起商量這個系統概述、系統目標、系統需求、業務流程分析、數據流程分析和數據詞典。當這些都准備好了之後,我們進行模塊的分工。每個人都有自己的模塊設計,而且寫出來的代碼要求可以實現相應模塊的功能,得到理想的效果。當每個人都把自己的分工做好了,最後會由一個人把這些全部組合搭建在一起。我們使用的是html和php相互嵌套使用,當一個系統做好了之後,我會好好地把程序都看一遍,理會其中的奧秘。

我所負責的是資料庫的備份和還原還有一些界面的實現。還記得自己剛接觸html的時候,覺得很感興趣,所以有一段時間幾乎到了痴迷的程度。然而php是我剛接觸不久的一種編程語言。不過覺得它的功能真的很強大,可以開發出很多大型的系統。但是在做備份和還原的時候,要考慮的東西還是很多的。當我遇到錯誤的時候,感到很受打擊。值得欣慰的是,在同學的幫助和大量參考書的查閱下,我把自己的模塊做好了。這就是我收獲最大的地方。而且,我明白了遇到困難永不放棄的重要性,我知道了團隊合作的重要性,我領悟了只有堅持不懈才會取得勝利。

知識的獲得是無止境的,只要你想學,只要你行動,沒有什麼會難倒我們的。回首這一個多星期的課程設計,我很欣慰。因為我有了動力,有了勇氣。謝謝老師對我們的不懈幫助,謝謝學校給了我們這一次實踐的機會,也謝謝組員們的關懷。這些美好的回憶美好的東西將永遠伴隨著我。

㈡ 資料庫實驗總結

資料庫實驗總結【一】

試驗內容

春茄消1、 數據表的建立

基本表《簡單的》帶有主鍵

帶有外碼約束的(外碼來自其他表或者本表)

2、 數據表的修改

添加刪除列

修改列屬性類型

添加刪除約束(約束名)

元組的添加,修改,刪除

刪除數據表

試驗過程

1、create table student

(

sno char(9) primary key , /*sno是主碼 列級完整性約束條件*/

sname char(20) unique, /*sname取唯一值*/

ssex char(2),

sage smallint, /*類型為smallint*/

sdept char(20) /*所在系*/

);

扒知create table course

(

cno char(4) primary key, /*列級完整性約束條件,cno是主碼*/

cname char(40),

cpno char(4), /*cpno的含義是先行課*/

ccredit smallint,

foreign key (cpno) references course(cno)

/*表級完整性約束條件,cpno是外碼,被參照表是course,被參照列是cno*/

);

create table sc

(

sno char(9),

cno char(4),

grade smallint,

primary key (sno,cno),

/*主碼有兩個屬性構成,必須作為表級完整性進行定義*/

foreign key (sno) references student(sno),

/*表級完整性約束條件,sno是外碼,被參照表是student*/

foreign key (cno) references course(cno),

/*表級完整性約束納彎條件,cno是外碼,被參照表示course*/

);

例1、create table s

(

cno varchar(3), /*變長的字元串,輸入2個字元就是兩個字元不會補空格*/

sname varchar(20),

status int,

city varchar(20),

constraint pk_sno primary key(sno), /*約束條件的名字為pk_sno*/

);

create table p

(

pno varchar(3),

pname varchar(20),

color varchar(3),

weight int,

constraint pk_pno primary key (pno), /*約束條件的名字是pk_pno*/

);

create table j

(

jno varchar(3),

jname varchar(20),

city varchar(20),

constraint pk_jno primary key(jno) /*約束條件的名字為pk_jno*/

);

例2、create table spj

(

sno varchar(3), /*第一個表中的主碼*/

pno varchar(3),

jno varchar(3),

qty int, /*數量*/

constraint pk_spj primary key(sno,pno,jno), /*主碼由3個屬性組成*/

foreign key(sno) references s(sno),

/*表級完整性約束條件,sno是外碼,被參照表是s*/

foreign key(pno) references p(pno),

/*表級完整性約束條件,pno是外碼,被參照表是p*/

foreign key(jno) references j(jno),

/*表級完整性約束條件,jno是外碼,被參照表是j*/

);

2、數據表的更改

在s表中添加一個concat 列

alter table s add concat varchar(20)

在s表中刪除concat 列

alter table s drop column concat

更改s表 concat列的屬性 把長度由20改為30

alter table s alter column concat varchar(30)

聯系方式 名字為concat 修改屬性為唯一的 屬性名為con_concat

alter table s add constraint con_concat unique(concat)

刪除約束關系con_concat

alter table s drop constraint con_concat

/*插入一個元組*/

insert into s valus(‘s1’,’精益’,20,’天津’) /*20不能寫成’20’*/

試驗中的問題的排除與總結:

1、在創建spj時

有三個實體所以從3個實體中取主碼,還有一個數量屬性也要寫上

主碼由那3個主碼確定

2、更改一個資料庫中數據表時一定要先使該資料庫處於正在使用狀態

3、constraint

是可選關鍵字,表示 primary key、not null、unique、foreign key 或 check 約束定義的開始。約束是特殊屬性,用於強制數據完整性並可以為表及其列創建索引。

4、--go可以不加但是要注意順序 註:go --注釋 提示錯誤

5、注意添加一個空元素用 null

sql備份

--創建一個資料庫 student

create database student

go

--在資料庫student中創建表student course sc 注意順序

use student

----------------------------------------------------------------

create table student

(

sno char(9) primary key, /*sno是主碼 列級完整性約束條件*/

sname char(10) unique, /*sname取唯一值*/

ssex char(2),

sage smallint, /*類型為smallint*/

sdept char(20) /*所在系*/

); /*;要加*/

-----------

資料庫實驗總結【二】

我在sql server 索引基礎知識系列中,第一篇就講了記錄數據的基本格式。那裡主要講解的是,資料庫的最小讀存單元:數據頁。一個數據頁是8k大小。

對於資料庫來說,它不會每次有一個數據頁變化後,就存到硬碟。而是變化達到一定數量級後才會作這個操作。 這時候,資料庫並不是以數據頁來作為操作單元,而是以64k的數據(8個數據頁,一個區)作為操作單元。

區是管理空間的基本單位。一個區是八個物理上連續的頁(即 64 kb)。這意味著 sql server 資料庫中每 mb 有 16 個區。

為了使空間分配更有效,sql server 不會將所有區分配給包含少量數據的表。sql server 有兩種類型的區:

統一區,由單個對象所有。區中的所有 8 頁只能由所屬對象使用。

混合區,最多可由八個對象共享。區中八頁的每頁可由不同的對象所有。

通常從混合區向新表或索引分配頁。當表或索引增長到 8 頁時,將變成使用統一區進行後續分配。如果對現有表創建索引,並且該表包含的行足以在索引中生成 8 頁,則對該索引的所有分配都使用統一區進行。

為何會這樣呢?

其實很簡單:

讀或寫 8kb 的時間與讀或寫 64 kb的時間幾乎相同。

在 8 kb 到 64 kb 范圍之內,單個磁碟 i/o 傳輸操作所花的時間主要是磁碟取數臂和讀/寫磁頭運動的時間。

因此,從數學上來講,當需要傳輸 64 kb 以上的 sql 數據時,

盡可能地執行 64 kb 磁碟傳輸是有益的,即分成數個64k的操作。

因為 64 kb 傳輸基本上與 8 kb 傳輸一樣快,而每次傳輸的 sql server 數據是 8 kb 傳輸的 8 倍。

我們通過一個實例來看 有and 操作符時候的最常見的一種情況。我們有下面一個表,

create table [dbo].[member]( [member_no] [dbo].[numeric_id] identity(1,1) not null, [lastname] [dbo].[shortstring] not null, [firstname] [dbo].[shortstring] not null, [middleinitial] [dbo].[letter] null, [street] [dbo].[shortstring] not null, [city] [dbo].[shortstring] not null, [state_prov] [dbo].[statecode] not null, [country] [dbo].[countrycode] not null, [mail_code] [dbo].[mailcode] not null, [phone_no] [dbo].[phonenumber] null, [photograph] [image] null, [issue_dt] [datetime] not null default (getdate()), [expr_dt] [datetime] not null default (dateadd(year,1,getdate())), [region_no] [dbo].[numeric_id] not null, [corp_no] [dbo].[numeric_id] null, [prev_balance] [money] null default (0), [curr_balance] [money] null default (0), [member_code] [dbo].[status_code] not null default (' '))

這個表具備下面的四個索引:

索引名 細節 索引的列

member_corporation_link nonclustered located on primary corp_no

member_ident clustered, unique, primary key located on primary member_no

member_region_link nonclustered located on primary region_no

memberfirstname nonclustered located on primary firstname

當我們執行下面的sql查詢時候,

select m.member_no, m.firstname, m.region_nofrom dbo.member as mwhere m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

sql server 會根據索引方式,優化成下面方式來執行。

select a.member_no,a.firstname,b.region_nofrom(select m.member_no, m.firstname from dbo.member as m where m.firstname like 'k%' and m.member_no < 5000) a , -- 這個查詢可以直接使用 memberfirstname 非聚集索引,而且這個非聚集索引覆蓋了所有查詢列-- 實際執行時,只需要 邏輯讀取 3 次

(select m.member_no, m.region_no from dbo.member as mwhere m.region_no > 6) b

-- 這個查詢可以直接使用 member_region_link 非聚集索引,而且這個非聚集索引覆蓋了所有查詢列-- 實際執行時,只需要 邏輯讀取 10 次

where a.member_no = b.member_no

不信,你可以看這兩個sql 的執行計劃,以及邏輯讀信息,都是一樣的。

其實上面的sql,如果優化成下面的方式,實際的邏輯讀消耗也是一樣的。為何sql server 不會優化成下面的方式。是因為 and 操作符優化的另外一個原則。

1/26 的數據和 1/6 的數據找交集的速度要比 1/52 的數據和 1/3 的數據找交集速度要慢。

select a.member_no,a.firstname,b.region_nofrom(select m.member_no, m.firstname from dbo.member as mwhere m.firstname like 'k%' -- 1/26 數據) a,

(select m.member_no, m.region_no from dbo.member as mwhere m.region_no > 6 and m.member_no < 5000-- 1/3 * 1/ 2 數據) bwhere a.member_no = b.member_no

當然,我們要學習sql 如何優化的話,就會用到查詢語句中的一個功能,指定查詢使用哪個索引來進行。

比如下面的查詢語句

select m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (0))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

select m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (1))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000goselect m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (membercovering3))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000goselect m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (memberfirstname, member_region_link))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

這里 index 計算符可以是 0 ,1, 指定的一個或者多個索引名字。對於 0 ,1 的意義如下:

如果存在聚集索引,則 index(0) 強制執行聚集索引掃描,index(1) 強制執行聚集索引掃描或查找(使用性能最高的一種)。

如果不存在聚集索引,則 index(0) 強制執行表掃描,index(1) 被解釋為錯誤。

總結知識點:

簡單來說,我們可以這么理解:sql server 對於每一條查詢語句。會根據實際索引情況(sysindexes 系統表中存儲這些信息),分析每種組合可能的成本。然後選擇它認為成本最小的一種。作為它實際執行的計劃。

成本代價計算的一個主要組成部分是邏輯i/o的數量,特別是對於單表的查詢。

and 操作要滿足所有條件,這樣,經常會要求對幾個數據集作交集。數據集越小,數據集的交集計算越節省成本。

的項目中,竟然出現了濫用聚集索引的問題。看來沒有培訓最最基礎的索引的意義,代價,使用場景,是一個非常大的失誤。這篇博客就是從這個角度來羅列索引的基礎知識。

使用索引的意義

索引在資料庫中的作用類似於目錄在書籍中的作用,用來提高查找信息的速度。

使用索引查找數據,無需對整表進行掃描,可以快速找到所需數據。

使用索引的代價

索引需要佔用數據表以外的物理存儲空間。

創建索引和維護索引要花費一定的時間。

當對表進行更新操作時,索引需要被重建,這樣降低了數據的維護速度。

創建索引的列

主鍵

外鍵或在表聯接操作中經常用到的列

在經常查詢的欄位上最好建立索引

不創建索引的列

很少在查詢中被引用

包含較少的惟一值

定義為 text、ntext 或者 image 數據類型的列

heaps是staging data的很好選擇,當它沒有任何index時

excellent for high performance data loading (parallel bulk load and parallel index creation after load)

excellent as a partition to a partitioned view or a partitioned table

聚集索引提高性能的方法,在前面幾篇博客中分別提到過,下面只是一個簡單的大綱,細節請參看前面幾篇博客。

何時創建聚集索引?

clustered index會提高大多數table的性能,尤其是當它滿足以下條件時:

獨特, 狹窄, 靜止: 最重要的條件

持續增長的,最好是只向上增加。例如:

identity

date, identity

guid (only when using newsequentialid() function)

聚集索引唯一性(獨特型的問題)

由於聚集索引的b+樹結構的葉子節點必須指向具體數據。如果你要建立聚集索引的列不唯一,並且你指定的創建的聚集索引是非唯一的聚集索引,則會有以下情況:

如果未使用 unique 屬性創建聚集索引,資料庫引擎 將向表自動添加一個四位元組 uniqueifier 列。必要時,資料庫引擎 將向行自動添加一個 uniqueifier 值,使每個鍵唯一。此列和列值供內部使用,用戶不能查看或訪問

㈢ 「筆記」資料庫查詢機制以及select的使用

查詢語法

asc升序(從小到大,默認就是升序,可以不寫) desc降序(從大到小) order by這句一定是放在最後。如果有多個列名,使用英文逗號分開,優先排序前面的,先排列前面的列名,然後再排序後面的列名。

查詢全部行和列:

查詢部分行業列:

select Sname,SGrade from Students

where

as取別名

取別名,再給領導匯報數據的時候,欄位都是是用自己定義的數據,領導可能看不懂,怎麼辦?把欄位換成中文來顯示:

判斷空值有兩種,一種是有值刪除後,使用=,where Name=』『

如果是值默認的空值NULL,只能使用is,where Name is NULL

使用 top 數字 取前幾條查詢語句

使用百分比 top 數字 percent

另外只有日期類型比較特殊,可以使用大於等於小於的,帶引號,格式不能寫錯。

系統函數:

字元串函數

charindex

select charindex(參數1需要找的,數據源,起始位置數字)

LEN 返回長度。(去掉最右邊的空格,中間和前面的空格去不掉)

selcet len(』 M y 『)

LTRIM 去左邊的空格,嵌套使用

select len(ltrim(' M y ') //去掉左邊的空格,返回

……太多了,記不住,需要的時候,到網上搜索

還有日期函數,數學函數,……

cast數據轉換

select cast(文本數字 as int)

convert有格式的轉換

㈣ 計算機三級資料庫技術筆記

網路資料庫技術
一、單項選擇題
1. 存儲在計算機內有結構的數據的集合,稱為資料庫。
2. 以二維表格的形式組織資料庫中的數據,這種數據模型是關系模型
3. 下面哪個資料庫屬於中小規模資料庫管理系統Access。
4. SQL Server 2000有兩類資料庫,分別是用戶資料庫和系統資料庫。
5. 兩個實體:學院和學生之間的聯系應為一對多聯系。
6. 錯誤的對象部分限定名是伺服器名.對象名。
7. SQL Server字元型包括char和varchar。
8. 下列SQL語句中,修改表結構的是ALTER TABLE。
9. 下列SQL語句中,向表中插入數據的是INSERT。
10. 關系運算的特點是運算的對象和結果都是表。
11. 兩個表連接最常用的條件是兩個表的某些列值相等,這樣的連接稱為等值連接。
12. 在資料庫查詢語句SELECT中,指定分組表達式的子句是GROUP BY子句。
13. 用以限制查詢結果集中的行數過多,僅指定部分結果所採用的關鍵字是TOP。
14. 能夠在LIKE子句中匹配多個字元的通配符是%。
15. 統計組中滿足條件的行數或總行數的聚合函數是COUNT。
第16到第19題基於這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結構如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。
16. 檢索所有比「王華」年齡大的學生姓名、年齡和性別。正確的SELECT語句是SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=『王華』)
17. 檢索選修課程「C2」的學生中成績最高的學生的學號。正確的SELECT語句是SELECT S# FROM SC WHERE C#=『C2』 AND GRADE>= ALL (SELECT GRADE FROM SC WHERE C#=『C2』)
18. 檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
19. 檢索選修四門以上課程的學生總成績(不統計不及格的課程),並要求按總成績的降序排列出來。正確的SELECT語句是SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=4 ORDER BY 2 DESC
20. 創建視圖的SQL命令是CREATE VIEW
22. 打開游標所使用的SQL命令是OPEN。
23. 請選出不屬於T-SQL語言組成部分的是數據轉換語言。
24. 聲明變數所使用的關鍵字為DECLARE。
25. 按照索引的組織方式,可以將索引分為聚集索引和非聚集索引。
26. 又稱為列完整性,指給定列輸入的有效性的是域完整性。
27. 創建存儲過程的SQL命令是CREATE PROCEDURE。
28. 不屬於維護數據的觸發器的是SELECT。
29. 只備份自上次備份以來發生過變化的資料庫的數據,也稱增量備份的是差異備份。
30. 資料庫系統與外部進行數據交換的操作是導入/導出。
31. 具有數據表達方式簡潔、直觀,插入、刪除、修改操作方便等特點的數據模型是關系模型.
32. 按一定的數據模型組織數據,對資料庫進行管理的是資料庫管理系統.
33. 對於這樣一個關系:學生(學號、姓名、專業名、性別、出生日期、總學分),請選出關系的碼(關鍵字)為學號
34. 兩個實體:學院和學生之間的聯系應為一對多聯系.
35. 資料庫對象的名稱中各部分使用何種符號隔開「.」。
36. 每個表可以有多少個列設置為標識屬性identity1。
37. 下列SQL語句中,創建表結構的是CREATE TABLE。
38. 下列SQL語句中,刪除表中的指定數據的是DELETE。
39. 關系運算的特點是運算的對象和結果都是表。
40. 從表中選出指定的屬性值(列名)組成一個新表,這樣的關系運算是投影。
41. 在資料庫查詢語句SELECT中,指定表或視圖的子句是FROM子句。
42. 在資料庫查詢語句中,為使用自己選擇的列標題而更改查詢結果的列標題名,所使用的關鍵字是AS。
43. 在WHERE子句中,可以使用通配符來對字元串進行模糊匹配的關鍵字是LIKE。
44. 在學生表XS表中查詢總學分尚未定的學生情況,正確的查詢語句是SELECT * FROM XS WHERE 總學分 IS NULL。
45. 在查詢語句中對查詢的結果進行排序,用於升序排序的關鍵字是ASC。
第16到第19題基於這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結構如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。
46. 檢索所有比「王華」年齡大的學生姓名、年齡和性別。正確的SELECT語句是;SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=『王華』)
47. 檢索選修課程「C2」的學生中成績最高的學生的學號。正確的SELECT語句是;SELECT S# FROM SC WHERE C#=『C2』 AND GRADE>= ALL (SELECT GRADE FROM SC WHERE C#=『C2』)
48. 檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是;SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
49. 檢索選修四門以上課程的學生總成績(不統計不及格的課程),並要求按總成績的降序排列出來。正確的SELECT語句是;SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=4 ORDER BY 2 DESC
50. 修改視圖的SQL命令是ALTER VIEW。
51. 若用如下的SQL語句創建一個student表:(『1031』, 『曾華』, NULL, NULL)
52. 在使用游標時首先要執行的是聲明游標。
53. SQL語言是一種用於資料庫查詢的結構化語言。
54. 請選出不屬於T-SQL語言組成部分的是數據轉換語言。
55. T-SQL中局部變數用哪種符號進行標識@。
56. 請選擇不是索引的作用的是使表中數據排列更為美觀。
57. 如果一個表中的一個欄位或若干個欄位的組合是另一個表的碼,則稱該欄位或欄位組合為該表的外碼。
58. 執行存儲過程的SQL命令是EXEC 。
59. SQL Server 2000中不允許使用的備份介質是只讀光碟。
60. 從外部數據源中檢索數據,並將數據插入到SQL Server表的過程,稱為導入數據。
61、表格中的一行稱為一個記錄,一列稱為一個欄位,每列的標題稱為欄位名。
62、SQL Server 2000有兩類資料庫:系統資料庫和用戶資料庫。
63、在設計表時列的identity屬性:實現的是自動增長的功能。
64、創建資料庫的SQL命令:CREATE DATABASE。
65、刪除資料庫的SQL命令:DROP DATABASE。
66、創建表的SQL命令:CREATE TABLE。
67、刪除表的SQL命令:DROP TABLE。
68插入表數據的SQL 命令:INSERT。
69、刪除表數據的SQL命令:DELETE和TRUNCATE TABLE,了解二者的區別。
70、修改表數據的SQL命令:UPDATE。
71、使用SQL命令創建視圖:CREATE VIEW。
72、使用SQL命令修改視圖:ALTER VIEW。
73、當視圖所依賴的基本表有多個時,不提倡向該視圖插入數據,因為這會影響多個基本表。
74、使用SQL命令刪除視圖:DROP VIEW。
75、使用SQL命令聲明游標:DECLARE。
76、聲明游標時SCROLL的用法:可以使游標向前、向後滾動。
77、使用SQL命令打開游標:OPEN。
78、使用SQL命令利用游標讀取數據:FETCH。
79、控制游標的關鍵字:NEXT| PRIOR| FIRST | LAST| ABSOLUTE n| RELATIVE n。
80、使用SQL命令關閉游標:CLOSE。
81、使用SQL命令刪除游標:DEALLOCATE。
82、 SQL語言是用於資料庫查詢的結構化語言。
83、T-SQL語言的組成部分:數據定義語言、數據操縱語言和數據控制語言。
84、變數的命名:以字母、_、@或#開頭,後接多個字母、數字、_、@或#構成。
85、運算符與表達式:AND和OR
86、按照索引的組織方式,可將索引分為聚集索引和非聚集索引。
87、惟一索引:不會有兩行記錄相同的索引鍵值。
88、使用SQL命令刪除索引:DROP INDEX。
89、使用SQL命令創建帶參數的存儲過程的格式:
CREATE PROCEDURE procere_name @variable_name datatype
AS
<sql_statement>
90、使用SQL命令執行帶參數的存儲過程:EXEC procere_name value。
91、使用SQL命令修改存儲過程的格式:
ALTER PROCEDURE procere_name
AS
<sql_statement>
92、使用SQL命令刪除存儲過程:DROP PROCEDURE。
93、設計備份策略的指導思想是:以最小的代價恢復數據。
94. 假定學生關系是S(S#, SNAME, SEX, AGE),課程關系是C(C#, CNAME, TEACHER),學生選課關系是SC(S#, C#, GRADE)。要查找選修課程名「COMPUTER」的性別為「女」的學生姓名,將涉及到的關系是:S, C, SC。
95. 資料庫對象的名稱中各部分使用何種符號隔開「.」。
96. 在SQL Server 2000中,精確整數型包括decimal和numeric。
97. 下列SQL語句中,實現刪除資料庫的語句是DROP DATABASE。
98. 下列SQL語句中,向表中插入數據的是INSERT。
99. 把兩個表中的行按照給定的條件進行拼接而形成新表,這樣的關系運算是連接。
100. 在資料庫查詢語句SELECT中,指定表或視圖的子句是FROM子句。
101. 在資料庫查詢中,消除結果集中的重復行所使用的關鍵字是DISTINCT。
102. 能夠在LIKE子句中匹配單個字元的通配符是「_」。
103. 在查詢語句中對查詢的結果進行排序,用於降序排序的關鍵字是。DESC
104. 若用如下的SQL語句創建一個student表:
CREATE TABLE student(NO C(4) NOT NULL,
NAME C(8) NOT NULL,
SEX C(2),
AGE N(2))
可以插入到student表中的是(『1031』, 『曾華』, NULL, NULL)
第16到第19題基於這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結構如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。
105. 檢索所有比「王華」年齡大的學生姓名、年齡和性別。正確的SELECT語句是
SELECT SN, AGE, SEX FROM S
WHERE AGE>(SELECT AGE FROM S
WHERE SN=『王華』)
106. 檢索選修課程「C2」的學生中成績最高的學生的學號。正確的SELECT語句是
SELECT S# FROM SC
WHERE C#=『C2』 AND GRADE>= ALL
(SELECT GRADE FROM SC
WHERE C#=『C2』)
107. 檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是
SELECT S.SN, SC.C#, SC.GRADE
FROM S, SC
WHERE S.S#=SC.S#
108. 檢索選修四門以上課程的學生總成績(不統計不及格的課程),並要求按總成績的降序排列出來。正確的SELECT語句是
SELECT S#, SUM(GRADE) FROM SC
WHERE GRADE>=60
GROUP BY S#
HAVING COUNT(*)>=4
ORDER BY 2 DESC
109. 創建視圖的SQL命令是
CREATE VIEW
110、局部變數在聲明後初始化為NULL。

二、多項選擇題
1. 關系資料庫模型的優勢在於;數據表達方式簡潔、直觀;插入、刪除、修改操作方便。
2. 請選出SQL Server 2000的兩種常用工具;企業管理器;查詢分析器。
3. 設計表時空值的作用;表示不需要添加的數據;表示將在以後添加的數據。
4. 資料庫的查詢語句SELECT的語法格式中不包含以下哪些內容;DROP子句;UPDATE子句。
5. 在比較子查詢可以使用的比較關鍵字包括;ALL ; ANY。
6. 在使用游標讀取數據時,可用來滾動記錄的關鍵字是;NEXT;LAST;PRIOR;FIRST。
7. 索引的功能包括;快速存取數據;保證數據記錄的惟一性;實現表與表之間的參照完整性;利用索引可減少排序和分組的時間。
8. 資料庫中的數據丟失或被破壞的原因是;計算機軟、硬體故障;誤操作;自然災害;盜竊。
9. 確定備份頻率主要考慮的是;系統恢復的工作量;系統執行的事務量。
10. 導入/導出操作包括數據傳輸;數據轉換。
11. 目前,大型的資料庫管理系統主要包括;Oracle;SQL Server;DB2。
12. SQL Server 2000的資料庫可以分為;系統資料庫;用戶資料庫。
13. 資料庫對象包括;表;視圖;索引;存儲過程;觸發器。
14. 設計表時空值的作用;表示不需要添加的數據;表示將在以後添加的數據。
15. 資料庫的查詢語句SELECT的語法格式中包括以下哪些內容;FROM子句;WHERE子句;GROUP BY子句;HAVING子句;ORDER BY子句。
16. 可以用於SELECT語句的聚合函數包括;SUM和AVG;MAX和MIN;COUNT。
17. T-SQL語言包含以下哪些重要部分;數據定義語言 ;數據操縱語言;數據控制語言。
18. 數據完整性包括;域完整性;實體完整性;參照完整性。
19. 資料庫中的數據丟失或被破壞的原因是;計算機軟、硬體故障;誤操作;自然災害;盜竊。
20. 對導入/導出操作描述正確的是;導入/導出是資料庫系統與外部進行數據交換的操作;導入數據是把其他系統的數據引入到SQL Server的資料庫中;導出數據是把資料庫從SQL Server資料庫中引導其他欄位。
21、流行的中小型資料庫包括Access和Visual Foxpro。大型資料庫管理系統包括Oracle,Microsoft的SQL Server,Sybase和IBM的DB2。
22、數據模型分為關系模型、層次模型、網狀模型。所劃分原則是數據之間的聯系。關系模型優勢:數據表達方式簡潔、直觀,插入、刪除、修改操作方便。
23、實體之間的聯系有如下幾種:一對一的聯系(1: 1)、一對多的聯系(1: n)、多對多的聯系(m: n)。
24、 SQL Server 2000的兩種常用工具:企業管理器,查詢分析器。
25、SQL Server 2000的資料庫對象包括:表、視圖、索引、存儲過程、觸發器和約束。
26、資料庫對象的完全限定名包括:伺服器名、資料庫名、所有者名和對象名。其中前三個可以省略,掌握省略的格式。
27、常用的關系運算包括:連接、選擇和投影。關系運算的特點是運算的對象和結果都是表。
28、SQL Server對游標的使用要遵循的步驟:聲明游標;打開游標;讀取數據;關閉游標;刪除游標。
29、全局變數和局部變數分別用@@和@進行標識。
30、數據完整性的分類:域完整性、實體完整性和參照完整性。
31. 資料庫管理系統採用的數據模型有;層次模型;網狀模型;關系模型。
32. SQL Server 2000的資料庫可以分為;系統資料庫;用戶資料庫。
33. 資料庫對象包括;表;視圖;索引;;存儲過程;觸發器。
34. 常見的連接操作包括;等值連接;自然連接。
35. 資料庫的查詢語句SELECT的語法格式中不包含以下哪些內容;DROP子句;UPDATE子句。
36. 請從下面的關鍵字中選出能夠用於WHERE子句中進行范圍比較的是;IN;BETWEEN。
37. 請選出對視圖描述正確的項;資料庫中只存儲視圖的定義;對視圖的數據進行操作時,系統根據視圖的定義去操作與視圖相關聯的基本表。
38. 按照索引的組織方式,可將索引分為;聚集索引;非聚集索引。
39. 存儲過程包括以下哪些類型;系統存儲過程;本地存儲過程;臨時存儲過程;遠程存儲過程;擴展存儲過程。
40.SQL Server 2000中,允許使用的備份介質包括;硬碟;磁帶;命名管道。

三、名詞解釋
1、碼:在關系表中,如果一個欄位或幾個欄位組合的值可惟一標識其對應記錄,則稱該欄位或欄位組合為碼。
2、記錄:每個表包含了若干行數據,它們是表的「值」,表中的一行稱為一個記錄。
3. 投影:投影運算從表中選出指定的屬性值(列名)組成一個新表,記為:∏A(R)。
4. 索引: 根據表中一列或若干列按照一定順序建立的列值與記錄行之間的對應關系表。
5. 參照完整性: 又稱為引用完整性。參照完整性保證主表中的數據與從表中數據的一致性。
6. 資料庫:是存放數據及相關信息的倉庫。
7. 欄位:每個記錄由若干個數據項構成,將構成記錄的每個數據項稱為欄位。
8. 連接:連接運算把兩個表中的行按照給定的條件進行拼接而形成新表,記為: 。
9. 數據的完整性:是指資料庫中的數據在邏輯上的一致性和准確性。
10. 資料庫恢復:就是當資料庫出現故障時,將備份的資料庫載入到系統,從而使資料庫恢復到備份時的正確狀態。
11、資料庫(DB):資料庫是存放數據及相關信息的倉庫。
12、資料庫管理系統(DBMS):資料庫管理系統是管理資料庫的系統,它按一定的數據模型組織數據。
13、實體和實體集:每一類數據對象的個體稱為實體,而每一類對象個體的集合稱為實體集。
14、記錄:每個表包含了若干行數據,它們是表的「值」,表中的一行稱為一個記錄。
15、欄位:每個記錄由若干個數據項構成,將構成記錄的每個數據項稱為欄位。
16、選擇運算:選擇運算按給定的條件,從表中選出滿足條件的行形成一個新表作為運算結果,選擇運算的記號為σF(R)。
17、投影運算:投影運算從表中選出指定的屬性值(列名)組成一個新表,記為:∏A(R)。
18、連接運算:連接運算把兩個表中的行按照給定的條件進行拼接而形成新表,記為: 。
19、等值連接:兩個表的某些列值相等,這樣的連接稱為等值連接。
20、自然連接:自然連接運算要求兩個表有共同屬性,自然連接運算的結果表是在參與操作兩個表的共同屬性上進行等值連接後再去除重復的屬性後所得的新表,自然連接運算記為: 。
21、局部變數:DECLARE @local_variable data_type,所有局部變數在聲明後均初始化為NULL。
22、域完整性:域完整性又稱為列完整性,指給定列輸入的有效性。
23、實體完整性:實體完整性又稱為行的完整性,要求表中有一個主鍵,其值不能為空且能惟一地標識對應的記錄。
24、參照完整性:參照完整性又稱為引用完整性。參照完整性保證主表中的數據與從表中數據的一致性。
25、外碼:如果一個表中的一個欄位或若干個欄位的組合是另一個表的碼則稱該欄位或欄位組合為該表的外碼。
26、存儲過程:在SQL Server中,可以定義子程序存放在資料庫中,這樣的子程序稱為存儲過程。
27、觸發器:觸發器是一類特殊的存儲過程。觸發器與表的關系密切,用於保護表中的數據。當有操作影響到觸發器保護的數據時,觸發器自動執行。
28、導入/導出:導入/導出是資料庫系統與外部進行數據交換的操作。
導入數據是從外部數據源中檢索數據,並將數據插入到SQL Server表的過程,即把其他系統的數據引入到SQL Server的資料庫中。
導出數據是將SQL Server資料庫中的數據轉換為某些用戶指定格式的過程,即把資料庫從SQL Server資料庫中引到其他系統。

四、簡答題
1. 請列舉SQL Server 2000的資料庫對象。
表、視圖、索引、存儲過程、觸發器和約束。
2. 簡述存儲過程的優點。
(1)存儲過程在伺服器端運行,執行速度快。
(2)存儲過程執行一次後,其執行規劃就駐留在高速緩沖存儲器,在以後的操作中,只需從高速緩沖存儲器中調用已編譯好的二進制代碼執行,提高了系統性能。
(3)確保資料庫的安全。
(4)自動完成需要預先執行的任務。
3. 請根據以下表的定義寫出創建表的語句。
表名:Student
列名 數據類型 長度 是否允許為空
學號 定長字元型(char) 6 否
姓名 定長字元型(char) 8 否
專業名 定長字元型(char) 10 允許
性別 位型(bit) 1(系統默認值) 否
出生時間 日期時間類型(smalldatetime) 4(系統默認值) 否
總學分 整數型(tinyint) 1(系統默認值) 允許
備注 文本型(text) 16(系統默認值) 允許
CREATE TABLE student(
學號 char(6) NOT NULL,
姓名 char(8) NOT NULL,
專業名 char(10) NULL,
性別 bit NOT NULL,
出生日期 smalldatetime NOT NULL,
總學分 tinyint NULL,
備注 text NULL)
4. 根據以下要求寫出實現表操作的SQL語句。
假設資料庫中已經建立好以下表結構。
表名:Student
列名 數據類型 長度 是否允許為空
學號 定長字元型(char) 6 否
姓名 定長字元型(char) 8 否
專業名 定長字元型(char) 10 允許
性別 位型(bit) 1(系統默認值) 否
出生時間 日期時間類型(smalldatetime) 4(系統默認值) 否
總學分 整數型(tinyint) 1(系統默認值) 允許
備注 文本型(text) 16(系統默認值) 允許
請分別寫出如下操作的SQL語句:
(1) 增加新列 「獎學金等級」,數據類型為tinyint,允許為空;
(2) 刪除「備注」列;
(3) 將「出生日期」列的數據類型由原來的smalldatetime修改為datetime。
(1)ALTER TABLE Student ADD 獎學金等級 tinyint NULL
(2)ALTER TABLE Student DROP COLUMN 備注
(3)ALTER TABLE Student ALTER COLUMN 出生日期 datetime
5. 資料庫中已經存在下表。
表名:Student
列名 數據類型 長度 是否允許為空
學號 定長字元型(char) 6 否
姓名 定長字元型(char) 8 否
專業名 定長字元型(char) 10 允許
總學分 整數型(tinyint) 1(系統默認值) 允許
備注 文本型(text) 16(系統默認值) 允許
請寫出如下對表中數據進行操作的SQL語句:
(1)插入一條學生信息,學號為「532241」,姓名為「張鑫」,專業名為「計算機」;
(2)從表中刪除學號為「532240」的學生記錄;
(3)將表中所有記錄的專業名由「計算機」改為「計算機應用技術」。
(1)INSERT INTO Student(學號, 姓名, 專業名) VALUES(『532241』, 『張鑫』, 『計算機』)
或 INSERT INTO Student VALUES(『532241』, 『張鑫』, 『計算機』, NULL, NULL)
(2)DELETE FROM Student WHERE 學號=『532240』
(3)UPDATE Student SET 專業名=『計算機應用技術』 WHERE 專業名=『計算機』
6. 請列舉設計表時包括的內容。
確定表的名字、所包含的列名、列的數據類型、長度、是否可為空值、默認值情況、是否要使用以及何時使用約束、默認設置或規則以及所需索引、哪些列是主鍵、哪些列是外鍵。
7. 簡述索引的作用。
(1)快速存取數據。
(2)保證數據記錄的惟一性。
(3)實現表與表之間的參照完整性。
(4)在使用ORDER BY, GROUP BY子句進行數據檢索時,利用索引可減少排序和分組的時間。

8. 請根據以下表的定義寫出創建表的語句。
表名:Course
列名 數據類型 長度 是否允許為空
課程號 定長字元型(char) 3 否
課程名 定長字元型(char) 16 否
開課學期 整數型(tinyint) 1(系統默認值) 否
學時 整數型(tinyint) 1(系統默認值) 否
學分 整數型(tinyint) 4(系統默認值) 允許
CREATE TABLE course(
課程號 char(3) NOT NULL,
課程名 char(16) NOT NULL,
開課日期 tinyint NOT NULL,
學時 tinyint NOT NULL,
學分 tinyint NULL)
9. 根據以下要求寫出實現表操作的SQL語句。
假設資料庫中已經建立好以下表結構。
表名:Course
列名 數據類型 長度 是否允許為空
課程號 定長字元型(char) 3 否
課程名 定長字元型(char) 16 否
開課學期 整數型(tinyint) 1(系統默認值) 否
學時 整數型(tinyint) 1(系統默認值) 否
學分 整數型(tinyint) 4(系統默認值) 允許
請分別寫出如下操作的SQL語句:
(1) 增加新列「授課教師」,數據類型為char,長度為10,不允許為空;
(2) 刪除「學時」列;
(3) 將「課程名」列的長度由原來16改為20。
(1)ALTER TABLE Course ADD 授課教師 char(10) NOT NULL
(2)ALTER TABLE Course DROP COLUMN 學時
(3)ALTER TABLE Course ALTER COLUMN 課程名 char(20)
10. 資料庫中已經存在下表。
表名:Course
列名 數據類型 長度 是否允許為空
課程號 定長字元型(char) 3 否
課程名 定長字元型(char) 16 否
開課學期 整數型(tinyint) 1(系統默認值) 否
學時 整數型(tinyint) 1(系統默認值) 否
學分 整數型(tinyint) 4(系統默認值) 允許
繼續需要請留郵箱&上我空間留郵箱