久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

文管二級(jí)Access數(shù)據(jù)庫(kù)SQL語(yǔ)句詳解

時(shí)間:2019-05-13 18:33:58下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《文管二級(jí)Access數(shù)據(jù)庫(kù)SQL語(yǔ)句詳解》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《文管二級(jí)Access數(shù)據(jù)庫(kù)SQL語(yǔ)句詳解》。

第一篇:文管二級(jí)Access數(shù)據(jù)庫(kù)SQL語(yǔ)句詳解

第一講

上面是Access數(shù)據(jù)庫(kù)中所涉及的兩個(gè)表

下面我們介紹Access數(shù)據(jù)庫(kù)中用于查詢數(shù)據(jù)的語(yǔ)句:

1、SELECT 語(yǔ)句

SELECT語(yǔ)句是數(shù)據(jù)庫(kù)中使用頻率最高的語(yǔ)句,就是我們通常說(shuō)的查詢語(yǔ)句。

其格式如下:

SELECT+需要查詢的對(duì)象+FROM+表名+WHERE+條件。

1、查詢上表中所有男性職工的“工號(hào)”“姓名”“部門”和“應(yīng)發(fā)工資”。SELECT 工號(hào),姓名,部門,應(yīng)發(fā)工資 FROM rsda where 性別=”男”

注意事項(xiàng):

1):寫查詢語(yǔ)句時(shí)英文部分不區(qū)分字母大小寫。

2):除漢字外,所有字符標(biāo)點(diǎn)和數(shù)字都必須使用半角英文狀態(tài)下輸入。

3):SELECT查詢語(yǔ)句中如果沒(méi)有條件限制,“WHERE+條件”部分可以省略。

4):需要查詢的項(xiàng)目在表中必須存在。

5):如果要輸出表中所有項(xiàng)目可以用“*”代替。

例如:查詢上表中所有人員的姓名,出生年月及部門

SELECT 姓名,出生年月,部門 FROM rsda;

顯示表中的所有信息

Select * from rsda;顯示表中所有女性職工的信息 Select * from rsda where 性別=”女”;

要求:查詢表中所有“未婚”男性職工的信息。

Select * from rsda where(性別=”男”)and(婚否=no);有兩個(gè)知識(shí)點(diǎn)需要掌握:

1):運(yùn)算符:

A、算術(shù)運(yùn)算符:加(+)、減(-)、乘(*)、除(/)、和取模(%)。算術(shù)運(yùn)算符可以完成對(duì)兩個(gè)表達(dá)式的數(shù)學(xué)運(yùn)算。

B:賦值運(yùn)算符:等號(hào)(=)

C:比較運(yùn)算符:等于(=)、大于(>)、大于或等于(>=)、小于(<)、小于或等于(<=)、不等于(<>或!=)、不小于(!<)、不大于(!>).D:邏輯運(yùn)算符:與(and)、或(or)和非(not)。對(duì)于AND運(yùn)算,只有當(dāng)運(yùn)算符兩端的表達(dá)式的值都為真時(shí),結(jié)果才返回真,只要有一股表達(dá)式的值為假,結(jié)果就是假;對(duì)于or運(yùn)算,只要運(yùn)算符兩端的表達(dá)式的值有一個(gè)位真,結(jié)果就返回真,只有兩個(gè)表達(dá)式的值都是假,結(jié)果才為假;NOT運(yùn)算是對(duì)表達(dá)式的值取反。

2):數(shù)據(jù)類型:文本、備注、數(shù)字、日期/時(shí)間、貨幣、自動(dòng)編號(hào)、是/否、超鏈接等。本例中“婚否”選項(xiàng),使用的是“是/否”類型,即我們常說(shuō)的布爾型,判斷的時(shí)候“是”用yes表示,“否”用no表示。

Select語(yǔ)句中各個(gè)參數(shù):

1)、top 如:查詢前3條記錄的工號(hào),姓名,性別 Select top 3 工號(hào),姓名,性別 from rsda;顯示的結(jié)果是前3條記錄。

查詢數(shù)據(jù)表中前50%人員的信息

Select top 50 percent * from rsda;顯示的結(jié)果是表中前50%人員的信息 2):DISTINCT

如:查詢所有記錄的“性別”字段,并去掉重復(fù)值 Select distinct 性別 from rsda;3):別名

如:查詢所有記錄的工號(hào)(別名為number)、姓名(別名為name)、出生年月(別名為birthday)字段

Select number=工號(hào),姓名 as name ,出生年月 birthday from rsda;需要注意的是,在ACCESS中使用 “列名 AS 列別名”形式。4):年齡

如:查詢表中每個(gè)人的年齡。

Select 姓名,(year(now())-year(出生年月))as 年齡 from rsda;now()函數(shù)返回當(dāng)前日期,year()獲取年份。其他函數(shù)有abs(絕對(duì)值)、left(從左側(cè)截取字符串)、right(從右側(cè)截取字符串)、len(獲取字符串的長(zhǎng)度)、ltrim和rtrim(去掉字符串前面或后面的空格)、day(返回日期)、month(返回月份)、year(返回年份)、weekday(返回星期)、hour(返回小時(shí))、date(返回系統(tǒng)日期)、sum(求和)、avg(求平均值)、count(統(tǒng)計(jì)個(gè)數(shù))、max(求最大值)、min(求最小值)等等。

如:顯示表中應(yīng)發(fā)工資的最大值

Select max(應(yīng)發(fā)工資)as 工資 from rsda; 如:查詢表中各人員工號(hào)的前兩位

Select left(工號(hào),2)as 工號(hào)前兩位 from rsda; 如:統(tǒng)計(jì)所有男性職工的人數(shù)

Select count(*)from rsda where 性別=”男”

如:顯示表中應(yīng)發(fā)工資最高的人員信息

select * from rsda where 應(yīng)發(fā)工資>=(select max(應(yīng)發(fā)工資)from rsda);上面是個(gè)嵌套查詢語(yǔ)句

2、into語(yǔ)句

如:創(chuàng)建一個(gè)新表rrr來(lái)顯示上表中前五名人員的信息。

Select top 5 * into rrr from rsda;

第二講

一、from語(yǔ)句

from子句用于指定要查詢的表。

例如:查詢表rsda表和kcm表中的數(shù)據(jù)。

SELECT rsda.編號(hào),rsda.工號(hào),姓名,性別,出生年月,kcm.課程名 from rsda,kcm where rsda.工號(hào)=kcm.工號(hào)

注意:本例子是關(guān)于表間查詢的。表中有共同列的項(xiàng)目必須標(biāo)注表名,格式為“表名”+“.”+“列號(hào)”。當(dāng)兩個(gè)或多個(gè)數(shù)據(jù)表中有共同名稱的字段時(shí)必須使用上面的格式,否則由于系統(tǒng)不清楚應(yīng)該使用哪個(gè)數(shù)據(jù)表中的同名字段,將無(wú)法執(zhí)行此查詢,會(huì)提示錯(cuò)誤。上面例子也可以使用聯(lián)合查詢形式完成,程序如下:

SELECT rsda.編號(hào),rsda.工號(hào),姓名,性別,出生年月,kcm.課程名 from rsda inner join kcm on rsda.工號(hào)=kcm.工號(hào)

練習(xí):顯示擔(dān)任“計(jì)算機(jī)文化基礎(chǔ)”教學(xué)人員的工號(hào),姓名,性別,婚否,基本工資及部門。

二、where語(yǔ)句

where子句是條件子句,用來(lái)限定查詢的內(nèi)容。在where語(yǔ)句中是允許使用比較運(yùn)算符如下:

等于、大于、大于等于、小于、小于等于、不等于、不大于、不小于、不等于。例如:查詢r(jià)sda表中應(yīng)發(fā)工資小于1500的人員信息。

SELECT * from rsda where 應(yīng)發(fā)工資<1500 練習(xí):顯示表中基本工資不大于1200的工號(hào),姓名,出生年月及基本工資。邏輯表達(dá)式如下:

邏輯反、邏輯與、邏輯或。

例如:查詢年齡小于39歲未婚男士的部門信息

SELECT 姓名,部門 from rsda where(year(now())-year(出生年月)<39)and(婚否=no)and(性別=”男”)練習(xí):顯示當(dāng)前未過(guò)生日的已婚人員信息。

三、between關(guān)鍵字

例如:查詢表rsda中應(yīng)發(fā)工資在1000到1500之間的人員信息 SELECT * from rsda where 應(yīng)發(fā)工資 between 1000 and 1500 練習(xí):顯示表中基本工資在800到1200之間人員的姓名,部門及基本工資。

四、in 關(guān)鍵字

使用in關(guān)鍵字可以確定給定的值是否與子查詢或列表中的值相匹配。例如:顯示教務(wù)處、學(xué)生處和總務(wù)處已婚男士人員的補(bǔ)貼信息

SELECT 姓名,補(bǔ)貼 from rsda where(性別=“男”)and(婚否=-1)and(部門 in(“教務(wù)處”,“學(xué)生處”,“總務(wù)處”))練習(xí):查詢表中總務(wù)處和基礎(chǔ)部未婚女性職工的人數(shù)。

五、like關(guān)鍵字

使用like關(guān)鍵字可以確定給定的字符串是否與指定的模式匹配。模式可以包含常規(guī)字符和通配符字符。通過(guò)模式的匹配,達(dá)到模糊查詢的效果。

例如:查詢表中張姓人員的工號(hào),姓名,性別,部門及出生年月

SELECT 工號(hào),姓名,性別,部門,出生年月 from rsda where 姓名 like “張*”

練習(xí):查詢工號(hào)以11開頭的所有人員信息。

六、group by語(yǔ)句

在group by語(yǔ)句中在選擇列表內(nèi)定義的列的別名不能用于指定分組列,此外,select后面的每一列數(shù)據(jù)除了出現(xiàn)在統(tǒng)計(jì)函數(shù)中的列外,都必須在group by子句中應(yīng)用。例如:在表rsda表中按性別進(jìn)行分組,查詢相應(yīng)的人數(shù)。

SELECT 性別,count(性別)as 人數(shù) from rsda group by 性別 練習(xí):統(tǒng)計(jì)已婚和未婚的人數(shù),并按婚否進(jìn)行分組。

七、having語(yǔ)句

having語(yǔ)句為分組或集合指定搜索條件,通常與group by語(yǔ)句一起使用,說(shuō)明:當(dāng)having 與group by all一起使用時(shí),having 語(yǔ)句替代了all。在having語(yǔ)句中不能使用text,image,ntext數(shù)據(jù)類型。

HAVING 子句對(duì) GROUP BY 子句設(shè)置條件的方式與 WHERE 子句和 SELECT 語(yǔ)句交互的方式類似。WHERE 子句搜索條件在進(jìn)行分組操作之前應(yīng)用;而 HAVING 搜索條件在進(jìn)行分組操作之后應(yīng)用。HAVING 語(yǔ)法與 WHERE 語(yǔ)法類似,但 HAVING 可以包含聚合函數(shù)。HAVING 子句可以引用選擇列表中出現(xiàn)的任意項(xiàng)。例如:在表中查詢部門中有兩個(gè)以上人員的部門信息

SELECT 部門,count(部門)as 部門人數(shù) from rsda group by 部門 having count(部門)>=2 練習(xí):顯示表中有兩個(gè)以上補(bǔ)貼相同的人員信息。

八、order by語(yǔ)句

order by語(yǔ)句用于指定對(duì)查詢結(jié)果排序。如果在select中同時(shí)指定了top,則order by語(yǔ)句無(wú)效。在排序過(guò)程中ASC表示按遞增順序排列,即從最低值到最高值對(duì)指定列中的值進(jìn)行排序。是系統(tǒng)默認(rèn)的排列方式,書寫語(yǔ)句時(shí)可省略。DESC表示按遞減順序排列,即從最高值到最低值對(duì)指定列中的值進(jìn)行排序。需要注意的是,空值被視為最低值。例如:顯示表中基本工資為1000的人員信息,并按工號(hào)降序排列。SELECT * from rsda where 基本工資=1000 order by 工號(hào) desc;練習(xí):查詢補(bǔ)貼為500的工號(hào),姓名,部門,并按工號(hào)升序排列。

九、聯(lián)合查詢。

聯(lián)合查詢是指將兩個(gè)或兩個(gè)以上的select語(yǔ)句通過(guò)union運(yùn)算符連接起來(lái)的查詢,聯(lián)合查詢可以將兩個(gè)或者更多查詢的結(jié)果組合為單個(gè)結(jié)果集,該結(jié)果集包含聯(lián)合查詢中所有查詢的全部行。

使用union組合兩個(gè)查詢的結(jié)果集的兩個(gè)基本規(guī)則是:

1、所有查詢中的列數(shù)和列是順序必須相同。

2、數(shù)據(jù)類型必須兼容。

十、嵌套查詢

嵌套查詢主要用于復(fù)雜的查詢。在SQL語(yǔ)言中,一個(gè)select---from---where語(yǔ)句稱為一個(gè)查詢塊,將一個(gè)查詢塊嵌套在另外一個(gè)查詢塊的where子句或having短語(yǔ)的條件中的查詢稱為嵌套查詢。

嵌套查詢中上層查詢塊稱為外層查詢或父查詢,下層查詢塊稱為內(nèi)查詢或子查詢。SQL語(yǔ)言允許多層查詢嵌套,但是在子查詢中不允許出現(xiàn)order by語(yǔ)句,order by語(yǔ)句只能用在最外層的查詢塊中。

嵌套查詢一般按照由里向外的方法處理,即先處理最內(nèi)層的子查詢,然后處理一層一層的向上處理,直到最外層查詢塊。

在某些嵌套查詢中where之后還可以使用any和all兩個(gè)關(guān)鍵字。Any表示子查詢結(jié)果中的某個(gè)值,而all表示子查詢結(jié)果中的所有值。這兩個(gè)關(guān)鍵字可以和算術(shù)運(yùn)算符在一

起構(gòu)成各種查詢條件,如>all表示大于子查詢中的所有值。

例如:查詢所授兩門以上科目的人員基本信息。

SELECT * from rsda where 工號(hào)=any(select 工號(hào) from kcm group by 工號(hào) having count(工號(hào))>=2)練習(xí):顯示表中應(yīng)發(fā)工資最高的人員信息

十一、插入函數(shù)

Insert語(yǔ)句用于向數(shù)據(jù)庫(kù)表或者視圖中加入一行數(shù)據(jù)。

例如:向表rsda中插入一行數(shù)據(jù),只包含工號(hào),姓名,婚否。insert into rsda(工號(hào),姓名,婚否)values(“12039”,“王五”,“-1”)例如:向rsda表中插入一行數(shù)據(jù),所有字段都要給出相應(yīng)的值。

insert into rsda

values(“13”,“12049”,“趙六”,“男”,“1999-12-12”,“-1”,“學(xué)生處”,“2000”,“850”,“60”,“2790”,“")

例如:向表rsda中插入一批數(shù)據(jù),數(shù)據(jù)來(lái)源于另外一個(gè)已有的數(shù)據(jù)表rsda1.Insert into rsda(工號(hào),姓名,性別,出生年月)select工號(hào),姓名,性別,出生年月from rsda1;如果所追加的表不存在請(qǐng)用下面的格式:

Select+所要添加的項(xiàng)目+into+新表名+from+需要查詢的表名+where+條件

例如:要求將所有男性職工的記錄追加到名為“追加表”的表中,只需要其中的4個(gè)字段:姓名、性別、工資、補(bǔ)貼。

SELECT 工號(hào),姓名,性別,部門 into 追加表 from rsda where 性別=”男“

十二、更新數(shù)據(jù)

Update語(yǔ)句用于修改數(shù)據(jù)庫(kù)表中特定記錄或者字段的數(shù)據(jù)。

例如:修改劉龍強(qiáng)的工號(hào)為11027,出生年月為1978年1月3日。update rsda set 工號(hào)=”11027“,出生年月=”1978-1-3“ where 姓名=”劉龍強(qiáng)“ 練習(xí):更新工號(hào)為12009的員工教師課程為“數(shù)據(jù)庫(kù)” 例如:更新表rsda中所有人員為已婚。update rsda set 婚否=-1;

十三、delete語(yǔ)句

Delete語(yǔ)句用于刪除數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。

例如:刪除表中張三的所有信息。delete from rsda where 姓名=”張三" 當(dāng)不指定條件時(shí),將刪除表中的所有行數(shù)據(jù)。要清除表中的所有數(shù)據(jù),只留下數(shù)據(jù)表的定義還可以使用truncate語(yǔ)句。與delete語(yǔ)句相比,通常truncate執(zhí)行速度快,因?yàn)樗遣挥涗浫罩镜膭h除表中全部數(shù)據(jù)的操作。

如:delete from rsda

Truncate table rsda Truncate table 表名 速度快,而且效率高,因?yàn)?

TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語(yǔ)句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少。

DELETE 語(yǔ)句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE 通過(guò)釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁(yè)的釋放。

TRUNCATE TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用 DELETE。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)使用 DROP TABLE 語(yǔ)句。

DROP TABLE table_name 表示刪除表的全部信息。

表所有者可以除去任何數(shù)據(jù)庫(kù)內(nèi)的表。除去表時(shí),表上的規(guī)則或默認(rèn)值將解除綁定,任何與表關(guān)聯(lián)的約束或觸發(fā)器將自動(dòng)除去。如果重新創(chuàng)建表,必須重新綁定適當(dāng)?shù)囊?guī)則和默認(rèn)值,重新創(chuàng)建任何觸發(fā)器并添加必要的約束。如果刪除表內(nèi)的所有行(DELETE tablename)或使用 TRUNCATE TABLE 語(yǔ)句,則表將一直存在到被除去。

課后練習(xí):

1.要求:列出rsda數(shù)據(jù)表中部門為“教務(wù)處”的女性職工的工號(hào),姓名,性別和部門。Select 工號(hào),姓名,性別,部門 from rsda where(部門=”教務(wù)處”)and(性別=”女”)2.顯示基本工資的最小值和最大值,并將結(jié)果分別賦給變量minjbgz、maxjbgz。Select min(基本工資)as minjbgz,max(基本工資)as maxjbgz from rsda 顯示“基礎(chǔ)部”每位老師所講授的所有課程名。Select 姓名,課程名 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(部門=”基礎(chǔ)部”)顯示所有姓張的人員信息。Select * from rsda where 姓名 like “張*” 物理刪除rsda數(shù)據(jù)表中部門為“基礎(chǔ)部”的所有男性職工的記錄。Delete from rsda where(部門=”基礎(chǔ)部”)and(性別=”男”)統(tǒng)計(jì)每位教師講授的課程數(shù)目。SELECT 姓名,count(課程名)as 課程數(shù)目 from rsda,kcm where rsda.工號(hào)=kcm.工號(hào) group by 姓名

列出rsda數(shù)據(jù)表中部門為“總務(wù)處”和“學(xué)生處”的所有男性職工的信息。Select * from rsda where(部門 in(“總務(wù)處”,”學(xué)生處”))and(性別=”男”)按照“出生年月”升序形式顯示所有人員的信息。Select * from rsda order by 出生年月

計(jì)算補(bǔ)貼的平均值、公積金的平均值,并將結(jié)果分別賦給變量rjbt、rjgjj。Select avg(補(bǔ)貼)as rjbt,avg(公積金)as rjgjj from rsda

10.11.顯示講課教師中年齡最大的教師的姓名和性別。Select 姓名,性別 from rsda,kcm where 出生年月=any(select max(出生年月)from rsda)列出rsda數(shù)據(jù)表中部門為“基礎(chǔ)部”的男性職工的工號(hào),姓名,性別和部門。Select 工號(hào),姓名,性別,部門 from rsda where(部門=”基礎(chǔ)部”)and(性別=”男”)按照“基本工資”降序形式顯示所有人員的信息。Select * from rsda order by 基本工資 desc 13.14.統(tǒng)計(jì)男教工中基本工資超過(guò)1000元的人數(shù),并將結(jié)果賦給變量num。select count(基本工資)as num from where(基本工資>1000)and(性別=”男”)統(tǒng)計(jì)講授“計(jì)算機(jī)文化基礎(chǔ)實(shí)驗(yàn)”課程的教師中“補(bǔ)貼”一項(xiàng)的最高值,并將結(jié)果賦給變量A57(或者新字段A57)。Select max(補(bǔ)貼)as A57 from 3.4.5.6.7.8.9.12.rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(課程名=”計(jì)算機(jī)文化基礎(chǔ)實(shí)驗(yàn)”).15.要求:顯示所有本年度已經(jīng)過(guò)完生日(不含當(dāng)日)的人員信息。Select * from rsda where(month(date())>month(出生年月))or((month(date())=month(出生年月))and(day(date())>day(出生年月)))要求:為部門是“總務(wù)處”的職工每人增加15%的補(bǔ)貼(補(bǔ)貼=補(bǔ)貼*1.15)。update rsda set 補(bǔ)貼=補(bǔ)貼*1.15 where 部門=”總務(wù)處” 計(jì)算部門為“基礎(chǔ)部”、補(bǔ)貼不足300元的人員的基本工資的平均值。Select avg(基本工資)from rsda where(部門=”基礎(chǔ)部”)and(補(bǔ)貼<300)計(jì)算并替換每一條記錄中的“補(bǔ)貼”字段(補(bǔ)貼=基本工資*0.05)。update rsda set 補(bǔ)貼=基本工資*0.05 19.顯示應(yīng)發(fā)工資的最小值和最大值,并將結(jié)果分別賦給變量minyfgz、maxyfgz。Select min(應(yīng)發(fā)工資)as minyfgz,max(應(yīng)發(fā)工資)as maxyfgz from 20.21.rsda 按照“公積金”升序形式顯示所有人員的信息。Select * from rsda order by 公積金

統(tǒng)計(jì)30歲(不含30歲)以上的老師各自講授的課程數(shù)目。SELECT 姓名,COUNT(課程名)as 課程數(shù)目 FROM kcm INNER JOIN rsda ON Kcm.工號(hào) = Rsda.工號(hào) WHERE(year(date())-year(出生年月))>= 30 GROUP BY 姓名

或者SELECT 姓名,COUNT(課程名)as 課程數(shù)目 FROM rsda, kcm

where((year(date())-year(出生年月))>= 30)and(Kcm.工號(hào) = Rsda.工號(hào))GROUP BY 姓名

16.17.18.第三講 SQL語(yǔ)句的格式總結(jié)

一、Select語(yǔ)句

SELECT+需要查詢的對(duì)象+FROM+表名+WHERE+條件。

Select語(yǔ)句中的參數(shù):

1.Top 顯示結(jié)果的前幾條記錄

select+Top+數(shù)字+from+表名+WHERE+條件。

顯示結(jié)果的前百分之幾的記錄

select+Top+數(shù)字+percent+from+表名+WHERE+條件。

2.Distinct 在顯示的結(jié)果中去掉重復(fù)值

3.As 給相應(yīng)的列名賦予一個(gè)新的名字,或者給相應(yīng)的字段創(chuàng)建一個(gè)新名字。

select+原列名+as+新列名+from+表名+WHERE+條件。

函數(shù)計(jì)算的結(jié)果+as+新名稱(如:max(基本工資)as 最大工資)

4.函數(shù)的使用

1)Now()返回當(dāng)前的系統(tǒng)時(shí)間,包含年、月、日、時(shí)、分、秒 2)Date()返回當(dāng)前系統(tǒng)日期,包含年、月、日 3)Abs(參數(shù))取數(shù)值的絕對(duì)值

4)Left(列名+,+數(shù)字)從左側(cè)截取相應(yīng)長(zhǎng)度的字符串(如:left

(工號(hào),2)=11(工號(hào) like “11*”)

顯示工號(hào)的前兩位字符)

5)right(列名+,+數(shù)字)從右側(cè)截取相應(yīng)長(zhǎng)度的字符串(如:right(工號(hào),2)

顯示工號(hào)的后兩位字符)

6)len(列名)返回滿足條件的列中字符串的長(zhǎng)度(如:len(工號(hào)))顯示工號(hào)有幾個(gè)字符組成

7)day(日期)返回日期中的天(如:day(date())顯示當(dāng)前系統(tǒng)的日)

8)month(日期)返回日期中的月(如:month(date())顯示當(dāng)前系統(tǒng)的月)

9)year(日期)返回日期中的年(如:year(出身年月)顯示出生的年份)

10)sum(列名)對(duì)列中滿足條件的記錄進(jìn)行求和(如:sum(基本工資)統(tǒng)計(jì)滿足條件的基本工資的總和)

11)avg(列名)對(duì)列中滿足條件的記錄求平均值(如:avg(應(yīng)發(fā)工資)統(tǒng)計(jì)滿足條件的應(yīng)發(fā)工資的平均值)

12)count(列名)統(tǒng)計(jì)個(gè)數(shù)(如count(課程名)統(tǒng)計(jì)滿足條件的課程數(shù)目)有時(shí)候要和group by 及having 一起使用。

13)Max(參數(shù))求滿足條件的最大值(如:max(應(yīng)發(fā)工資)顯示應(yīng)發(fā)工資的最大值)

14)Min(參數(shù))求滿足條件的最小值(如:min(應(yīng)發(fā)工資)顯示應(yīng)發(fā)工資的最大值)

5.Into 把數(shù)據(jù)追加到一個(gè)表中,如果沒(méi)有相應(yīng)的表,系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)滿足條件的表。

在多表之間查詢的時(shí)候一定要在表中有共同列名的前面加上”表名+.”。格式為“表名”+“.”+“列名”。如果表中獨(dú)有的列,前面可以不加表名。隱含的條件是必須共同列中的數(shù)據(jù)相同(如:rsda.工號(hào)=kcm.工號(hào))。

在條件中不能直接使用函數(shù)。(如:where 基本工資>=max(基本工資))

在條件語(yǔ)句中需要判斷多個(gè)條件時(shí)必須使用邏輯表達(dá)式(如:()and())

6.Between關(guān)鍵字

滿足條件的某區(qū)間的內(nèi)容

Between+數(shù)值1+and+數(shù)值2 7.In關(guān)鍵字

使用in關(guān)鍵字可以確定給定的值是否與子查詢或列表中的值相匹配。

列名+in+(參數(shù)1,參數(shù)2…..)

8.Like關(guān)鍵字

使用like關(guān)鍵字可以確定給定的字符串是否與指定的模式匹配。

列名+like+”參數(shù)”

如:工號(hào) like “12*”

9.Group by

對(duì)查詢的列表中對(duì)相應(yīng)主鍵(列)進(jìn)行分組。在group by語(yǔ)句中在選擇列表內(nèi)定義的列的別名不能用于指定分組列,此外,select后面的每一列數(shù)據(jù)除了出現(xiàn)在統(tǒng)計(jì)函數(shù)中的列外,都必須在group by子句中應(yīng)用。Group +by+列名

SELECT 姓名,count(課程名)as 人數(shù) from rsda,kcm where rsda.工號(hào)=kcm.工號(hào)

group by 姓名

10.Having having語(yǔ)句為分組或集合指定搜索條件,通常與group by語(yǔ)句一起使用

SELECT 部門,count(部門)as 部門人數(shù) from rsda group by 部門 having count(部門)>=2

11.Order by order by語(yǔ)句用于指定對(duì)查詢最終結(jié)果進(jìn)行排序。DESC表示按遞減順序排列,ASC表示按遞增順序排列。

SELECT * from rsda where 基本工資=1000 order by 工號(hào) desc;

二、Insert

Insert語(yǔ)句用于向數(shù)據(jù)庫(kù)已有表中追加一行或者多行。Insert+into+表名+(列名1,列名2,列名3…?)+values+(“數(shù)據(jù)1”,”數(shù)據(jù)2”,”數(shù)據(jù)3”…?)Insert+into+表名+values+(所有字段的相應(yīng)值)Insert+into+表名+(列名1,列名2,列名3…?)+select+列名1,列名2,列名3…..+from+表名+where+條件

如果所追加的表不存在,請(qǐng)用下面的格式:

Select+所要添加的項(xiàng)目+into+新表名+from+需要查詢的表名+where+條件

三、Update Update語(yǔ)句用于修改數(shù)據(jù)庫(kù)表中特定記錄或者字段的數(shù)據(jù).Update+表名+set+(列名=”數(shù)據(jù)”, 列名=”數(shù)據(jù)”……)+where+條件

四、Delete

Delete+from+表名+where+條件

五、Drop 刪除表 Drop+ table+表名

課后習(xí)題:

1.要求:顯示公積金的最小值和最大值,并將結(jié)果分別賦給變量mingjj、maxgjj。Select min(公積金)as mingjj,max(公積金)as maxgjj from rsda 2.要求:顯示女教師講授的所有課程名。Select 姓名,課程名 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(性別=”女”)3.要求:徹底刪除kcm數(shù)據(jù)表中工號(hào)為12006的人員。Delect from kcm where 工號(hào)=”12006”

4.要求:統(tǒng)計(jì)講授“程序設(shè)計(jì)”課程的老師的基本工資的平均值,并將結(jié)果賦給變量A54(或者新字段A54)。Select avg(基本工資)as A54 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(課程名=”程序設(shè)計(jì)”)5.要求:計(jì)算教務(wù)處人員的基本工資的平均值和最大值。Select avg(基本工資)as平均值,max(基本工資)as 最大值 where 部門=”教務(wù)處”

6.要求:顯示30歲(含30歲)以下的人員的所有信息。Select * from rsda where(year(date())-year(出生年月))<30 7.要求:按照“公積金”降序形式顯示所有人員的信息。Select * from rsda order by 公積金 desc 8.要求:顯示講授“英語(yǔ)寫作”課程的每位老師的姓名、年齡。Select 姓名,(year(date())-year(出生年月))as 年齡 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(課程名=”英語(yǔ)寫作”)9.要求:統(tǒng)計(jì)每位男老師各自講授的課程數(shù)目。Select 姓名,count(*)as 課程數(shù)目from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and性別=”男”)group by 姓名

10.要求:物理刪除rsda數(shù)據(jù)表中部門為“教務(wù)處”的所有女性職工的記錄。Delete from rsda

where(部門=”教務(wù)處”)and(性別=”女”)11.要求:按照“應(yīng)發(fā)工資”升序形式顯示所有人員的信息。Select * from rsda order by 應(yīng)發(fā)工資 asc 12.要求:列出rsda數(shù)據(jù)表中應(yīng)發(fā)工資大于1500元的男性職工的工號(hào)、姓名、性別、部門和應(yīng)發(fā)工資。Select 工號(hào),姓名,性別,部門,應(yīng)發(fā)工資 from rsda(應(yīng)發(fā)工資>1500)and(性別=”男”)13.要求:按照rsda數(shù)據(jù)表中“部門”升序生成一個(gè)名為“人事表1”的新表,其中包含4個(gè)字段:工號(hào)、姓名、性別和部門。Select 工號(hào),姓名,性別,部門 into 人事表1 from rsda order by 部門 asc 14.要求:顯示講課教師中年齡最小的教師的姓名和性別。select 姓名,性別 from rsda where(Year([出生年月]))=any(SELECT Max(Year(出生年月))FROM rsda, kcm where rsda.工號(hào) = kcm.工號(hào))and((month([出生年月]))=any(SELECT max(month(出生年月))FROM rsda, kcm where rsda.工號(hào) = kcm.工號(hào)))and((day([出生年月]))=any(SELECT max(day(出生年月))FROM rsda , kcm where rsda.工號(hào) = kcm.工號(hào)))15.要求:物理刪除rsda數(shù)據(jù)表中1985年以前(不含1985年)出生的部門為“教務(wù)處”的職工記錄。Delete from rsda where(year(出生年月)<1985)and(部門=”教務(wù)處”)16.要求:統(tǒng)計(jì)“張運(yùn)生”講授的課程門數(shù),并將結(jié)果賦給變量A57(或者新字段A57)。Select count(課程名)as A57 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(姓名=”張運(yùn)生”)17.要求:按照“出生年月”降序形式顯示所有人員的信息。Select * from rsda order by 出生年月 desc 18.要求:統(tǒng)計(jì)講授“英語(yǔ)寫作”課程的老師的應(yīng)發(fā)工資的平均值,并將結(jié)果賦給變量A56(或者新字段A56)。Select avg(應(yīng)發(fā)工資)as A56 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(課程名=”英語(yǔ)寫作”)19.要求:統(tǒng)計(jì)rsda數(shù)據(jù)表中女性職工中補(bǔ)貼一項(xiàng)的最低值,并將結(jié)果賦給變量A58(或者新字段A58)。Select min(補(bǔ)貼)as A58 from rsda where 性別=”女” 20.要求將所有男性職工的記錄追加到名為“追加表”的表中,只需要其中的4個(gè)字段:姓名、性別、工資、補(bǔ)貼。Select 姓名,性別,工資,補(bǔ)貼 into 追加表 from rsda where 性別=”男”

21.要求:顯示講授“英語(yǔ)閱讀”課程的每位老師的姓名、年齡。Select 姓名,(year(date())-year(出生年月))as 年齡 from rsda,kcm where(rsda.工號(hào)=kcm.工號(hào))and(課程名=”英語(yǔ)閱讀”)22.要求:統(tǒng)計(jì)rsda數(shù)據(jù)表中部門為“基礎(chǔ)部”的女性職工的基本工資的平均值,并將結(jié)果賦給變量A53(或者新字段A53)。Select avg(基本工資)as A53 from rsda where(部門=”基礎(chǔ)部”)and(性別=”女”)23.要求:統(tǒng)計(jì)男性職工中基本工資超過(guò)1500元的人數(shù),并將結(jié)果賦給變量A55(或者新字段A55)。Select 基本工資,count(*)as A55 from rsda where(性別=”男”)and(基本工資>1500)24.要求:列出rsda數(shù)據(jù)表中工號(hào)前2位等于“10”的男性職工的信息。Select * from rsda where 工號(hào) like “10*”;或者是Select * from rsda where left(工號(hào),2)=10;25.要求:為rsda數(shù)據(jù)表中部門是“教務(wù)處”的人員每人增加25%的補(bǔ)貼(補(bǔ)貼=補(bǔ)貼*1.35)。update rsda set 補(bǔ)貼=補(bǔ)貼*1.35 where 部門=”教務(wù)處”

第二篇:數(shù)據(jù)庫(kù)SQL語(yǔ)句十題

作業(yè)十題

1.查詢所有學(xué)生的基本信息,并按學(xué)號(hào)降序排列

SELECT * FROM STUDENT

ORDER BY sno DESC;

2.查詢系別代碼為“02”的女同學(xué)信息

SELECT * FROM STUDENT

WHERE ssex=’女’ and sdept=‘02’;

3.查詢學(xué)生的總?cè)藬?shù)

SELECT COUNT(*)AS 學(xué)生總?cè)藬?shù)

FROM STUDENT;

4.所有選修課學(xué)生的姓名,課程名及成績(jī)

SELECT sname,cname,grade

FROM STUDENT,COURSE,SC

WHERE STUDENT.sno=SC.sno and COURSE.cno=SC.cno;

5.不及格學(xué)生姓名(合并重復(fù)項(xiàng))

SELECT distinct sname

FROM SC,STUDENT

WHERE grade<=60 and STUDENT.sno=SC.sno;

6.查詢學(xué)號(hào)為“011110”的學(xué)生的哪些課程的成績(jī)比他數(shù)據(jù)庫(kù)的成績(jī)要高 SELECT cno

FROM COURSE

WHERE sno=’011110’ and grade>(SELECT grade FROM COURSE,SC

WHERE cname=’數(shù)據(jù)庫(kù)’ and sno=‘011110’ and

COURSE.cno=SC.cno);

7.查詢選修課在3門以上(包括3門)的學(xué)生學(xué)號(hào)及選課門數(shù) SELECT sno,COUNT(*)AS 選修門數(shù)

FROM SC

GROUP BY sno HAVING COUNT(*)>=3;

8.查詢學(xué)號(hào)為“011110”的學(xué)生的平均成績(jī),并以平均成績(jī)命名 SELECT AVG(grade)AS average grade

FROM SC

WHERE sno=’011110’;

9.查詢計(jì)算機(jī)系或英語(yǔ)系的所有學(xué)生的個(gè)人信息

SELECT*FROM STUDENT

WHERE sdeptIN(SELECT sdept FROM DEPT

WHERE sdname=’計(jì)算機(jī)系’OR sdname=’英語(yǔ)系’);

10.查詢與“羅宇波”同一個(gè)系的學(xué)生情況

SELECT * FROM STUDENT

WHERE sdept=(SELECT sdept FROM STUDENT

WHERE sname=’羅宇波’);

第三篇:SQL數(shù)據(jù)庫(kù)編程學(xué)習(xí)應(yīng)用語(yǔ)句

SQL數(shù)據(jù)庫(kù)編程學(xué)習(xí)應(yīng)用語(yǔ)句大全

1as 的用處

as可以對(duì)表和列取別名

在開發(fā)過(guò)程中經(jīng)常遇到開始給某一個(gè)的字段去field1的名稱,但后來(lái)有感覺(jué)field1字段指定不確切,于是又把此字段改成了field2,由于開始認(rèn)為field1是常量,于是到處使用字符串field1,而且程序中又含有大量對(duì)field1的處理,此時(shí)就可以使用as

例如原來(lái)的 select field1 from tableA,改為selectfield2 asfield1 from tableA 代碼基本就可以不動(dòng)了。

2自增長(zhǎng)的字段的插入

開發(fā)中經(jīng)常遇到某個(gè)字段類型為IDENTITY,也就是自增長(zhǎng)類型,但由于特殊需要,又要插入數(shù)據(jù)

需要臨時(shí)去掉,可以使用如下語(yǔ)句set IDENTITY_INSERTtablename on,在處理完成后在使用如下語(yǔ)句恢復(fù) set IDENTITY_INSERTtablenameoff

3分組取每組的前N個(gè)數(shù)據(jù)

開發(fā)中還會(huì)遇到需要對(duì)某一組數(shù)據(jù)先分組,然后取每組的前n條記錄的情況

不妨試試如下代碼

[sql] view plaincopy

/*

按CurrentNodeLevel列分組,每組按NodeID排序,取出每個(gè)組中的前3個(gè)元素*/

declare @temp table(NodeIDint, CurrentNodeLevelint ,rowNumberint)--定義臨時(shí)表insert into @temp

selectNodeID,CurrentNodeLevel,ROW_NUMBER()

OVER(partitionby CurrentNodeLevel

order by NodeID)as rowNumber

from SchoolTerminalStruct---給臨時(shí)表中插入數(shù)據(jù)

select * from @temp where rowNumber<=3--從臨時(shí)表中取數(shù)據(jù)

4生成隨機(jī)數(shù)

主意此方法只能寫成存儲(chǔ)過(guò)程,不能寫成函數(shù)

[sql] view plaincopy

-----返回Max,Min之間的隨機(jī)數(shù)不能寫成函數(shù)

createproc [dbo].[getRAND]

(@Max int,--最大值

@Min int--,--最小值)

AS

BEGIN

DECLARE @result int

SELECT @result=RAND()*(@Max-@Min)+@Min

select@result

END

5把滿足一定條件的數(shù)據(jù)用逗號(hào)分隔

這可能也是一個(gè)很常用的語(yǔ)句了,經(jīng)常出現(xiàn)在一對(duì)多的關(guān)系中對(duì)外展示,要求把子表中的數(shù)據(jù)取出來(lái)用逗號(hào)或者其他符號(hào)分隔開

[sql] view plaincopy

/*

把滿足 t2.NodeID=t1.NodeID的tableA 的字段NodeName 以逗號(hào)分隔開合并為一個(gè)字段輸出

*/

select *,stuff((select ',' + t1.NodeName from tableA t1,tableB t2

wheret2.NodeID=t1.NodeID

for xml path('')), 1 , 1 , '')as text

fromtableA

6在數(shù)據(jù)庫(kù)中處理異常

通過(guò)個(gè)參數(shù)附加output標(biāo)志來(lái)輸出參數(shù),通過(guò)TRY,CATCH捕捉異常

[sql] view plaincopy

CREATE PROCEDURE [dbo].[sp_UpdateFunctionTree]

@nodenameint,@Result int output---2,操作失敗;0操作成功

AS

BEGIN

begin

BEGIN TRY

UPDATE FunctionTree SET NodeName=@nodename

set @Result=0--操作成功

END TRY

BEGIN CATCH

set @Result=-2--操作失敗

END CATCH

end

END

7查詢中的條件判斷

經(jīng)常遇到在某些條件下應(yīng)該查詢這個(gè)字段,在另外一些條件下需要其他字段的情況,可以通過(guò)unoin來(lái)完成,但也可以通過(guò)CASE WHEN 完成[sql] view plaincopy

/*

在State=0 時(shí)返回field1 ,在State=1時(shí)返回 field2 ,其他時(shí)返回field3

*/

SELECT(CASE WHENState=0 THEN field1 WHENState=1 THEN field2

ELSE field3 END)as State

FROM tablename

8單引號(hào)的處理

在包含單引號(hào)時(shí)應(yīng)該使用兩個(gè)單引號(hào)轉(zhuǎn)義

[sql] view plaincopy

dbo.sp_executesql @statement = N' select indexID,Sex=(case when Sex=0then ''男'' else ''女'' end)

fromtablename '

9使用游標(biāo)

[sql] view plaincopy

declare @temp table(TaskIDint ,NodeIdint)--聲明臨時(shí)表

insert into @temp select A.TaskID ,A.NodeIdfrom tableAA,tableB B

whereA.TaskID=B.TaskID--//--給聲明的臨時(shí)表中插入記錄

DECLARE tnames_cursor CURSORLOCAL FORWARD_ONLY READ_ONLY--聲明游標(biāo)

FOR select TaskID,NodeId from @temp;--游標(biāo)需要用到的列

open tnames_cursor--打開游標(biāo)

DECLARE @TaskIDint,@NodeIdint;--聲明變量

FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId--移動(dòng)游標(biāo)給變量賦值,應(yīng)該與游標(biāo)需要用到的列一一對(duì)應(yīng),順序類型應(yīng)該一致

WHILE(@@FETCH_STATUS = 0)--循環(huán)

BEGIN

BEGIN

exec TaskType @TaskID,@NodeId--調(diào)用存儲(chǔ)過(guò)程

END

FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId ,@TaskRunCYCType--移動(dòng)游標(biāo)給變量賦值 應(yīng)該與游標(biāo)需要用到的列一一對(duì)應(yīng),順序類型應(yīng)該一致

END

CLOSE tnames_cursor--關(guān)閉游標(biāo)

DEALLOCATE tnames_cursor--釋放游標(biāo)

10合并更新和插入

在開發(fā)中大部分情況下,插入和更新傳遞的參數(shù)基本上是一樣,那為什么不合并呢

[sql] view plaincopy

createproc [dbo].[Save_TableName]

(@field1 varchar(50),@field2varchar(200),@ID int,@insertOrUpdate--小于0插入 大于0更新)

as

begin

if(@insertOrUpdate<0)

begin

INSERT INTOTableName(field1,field2,ID)

values(@field1,@field2,@ID);

end

else

begin

UPDATE TableNameSET field1= @field1, field2 = @field2

where ID =@ID;

end

end

11定義函數(shù)

在沒(méi)有滿足要求的情況時(shí),可以定義函數(shù),但是使用自己定義的函數(shù)時(shí)需要加上架構(gòu)名稱

[sql] view plaincopy

create FUNCTION [dbo].[CheckTime]

(@startTimedatetime,@endTimedatetime--,)

RETURNSint

AS

BEGIN

DECLARE @result int

SET@result=DATEDIFF(hour, @startTime, @endTime)--

if(@result=0)--小時(shí)相同 比較分鐘

begin

SET@result=DATEDIFF(minute, @startTime, @endTime)

if(@result=0)--分鐘相同比較秒

begin

SET@result=DATEDIFF(second, @startTime, @endTime)

end

end

RETURN @result

END

調(diào)用此函數(shù)

[sql] view plaincopy

dbo.CheckTime(@startTime1, @startTime2)--需要加上架構(gòu)名稱

12遞歸讀取數(shù)據(jù)

在實(shí)際的應(yīng)用中經(jīng)常遇到樹結(jié)構(gòu)的表,但讀取會(huì)比較麻煩,這里提夠一個(gè)函數(shù)

[sql] view plaincopy

/*

函數(shù) 返回表,返回給定節(jié)點(diǎn)的所有子孫節(jié)點(diǎn),而不僅僅是子節(jié)點(diǎn)

*/

Create Function [dbo].[GetChildren](@NodeIDInt)

Returns @Tree Table(NodeIDInt, NodeNameVarchar(50), ParentIDInt)

As

Begin

Insert @Tree Select NodeID, NodeName, ParentIDFromTreetable Where ParentID = @NodeID

While @@Rowcount> 0

Insert @Tree Select A.NodeID, A.NodeName, A.ParentID

From Treetable A

Inner Join @Tree B

On A.ParentID = B.NodeIDAndA.NodeID Not In(Select NodeID From @Tree)Return

End

13通過(guò)默認(rèn)值實(shí)現(xiàn)存儲(chǔ)過(guò)程重載

存儲(chǔ)過(guò)程可以使用默認(rèn)值,估計(jì)都知道,但以此就可以實(shí)現(xiàn)類似函數(shù)重載的效果

例如,如下的存儲(chǔ)過(guò)程由于使用了默認(rèn)值,就可以不傳遞參數(shù),傳遞一個(gè)參數(shù),兩個(gè),三個(gè),[sql] view plaincopy

CREATE PROCEDURE dbo.my_proc

@firstint = NULL,--NULL default value

@secondint = 2,--Default value of 2

@thirdint = 3--Default value of 3

AS SELECT @first, @second, @third;

14在數(shù)據(jù)庫(kù)中拼字符串,也可以用參數(shù)

在實(shí)際的開發(fā)中,某些情況下在數(shù)據(jù)庫(kù)中拼字符串不可避免,但又擔(dān)心有特殊字符,導(dǎo)致拼出來(lái)的SQL有問(wèn)題,其實(shí)數(shù)據(jù)庫(kù)中拼字符串也可以使用參數(shù),這就要用到dbo.sp_executesql,這樣就可以避免SQL注入和特殊字符導(dǎo)致的錯(cuò)誤

[sql] view plaincopy

DECLARE @IntVariable INT;--定義變量

DECLARE @SQLString NVARCHAR(500);--存儲(chǔ)拼出來(lái)的SQL

DECLARE @ParmDefinition NVARCHAR(500);---存儲(chǔ)拼出來(lái)的SQL中的參數(shù)

/* Build the SQL string one time.*/

SET @SQLString =

N'SELECT * FROM AdventureWorks.Sales.Store WHERE SalesPersonID = @SalesID';/* Specify the parameter format one time.*/

SET @ParmDefinition = N'@SalesIDint';--賦值

/* Execute the string with the first parameter value.*/

SET @IntVariable = 275;--賦值

EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;

/* Execute the same string with the second parameter value.*/

SET @IntVariable = 276;

EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;

16觸發(fā)器需要注意的問(wèn)題

在使用觸發(fā)器時(shí)有一個(gè)問(wèn)題,或許很少有人注意到,一條更新語(yǔ)句一次更新了十條記錄,會(huì)觸發(fā)幾次觸發(fā)器?只有一次!很奇怪,但卻是事實(shí),所以這需要注意,一不小心就會(huì)把好

多數(shù)據(jù)漏了

第四篇:計(jì)算機(jī)等級(jí)考試二級(jí)ACCESS數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

計(jì)算機(jī)等級(jí)考試二級(jí)ACCESS數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

1.1 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

1.1.1 計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展 一.?dāng)?shù)據(jù)與數(shù)據(jù)處理 數(shù)據(jù):

是指存儲(chǔ)在某種 媒體上能夠識(shí)別的物理符號(hào)。數(shù)據(jù)處理:

是指將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程。

從數(shù)據(jù)處理的角度而言,信息是一種被加工成特定形式的數(shù)據(jù),這種數(shù)據(jù)形式對(duì)于數(shù)據(jù)接受者來(lái)說(shuō)是有意義的。二.計(jì)算機(jī)數(shù)據(jù)管理

計(jì)算機(jī)數(shù)據(jù)管理 是指對(duì)數(shù)據(jù)的 分類、組織、編碼、存儲(chǔ)、檢索和維護(hù)。計(jì)算機(jī)數(shù)據(jù)管理 發(fā)展的幾個(gè)階段: 1 .人工管理 世紀(jì) 50 年代中期以前,計(jì)算機(jī)主要用于科學(xué)計(jì)算。

外部存儲(chǔ)器 只有紙帶、卡片、磁帶,無(wú)像磁盤這樣的可以隨機(jī)訪問(wèn)、直接存取的外部存儲(chǔ)設(shè)備。軟件的狀況 是沒(méi)有操作系統(tǒng),沒(méi)有專門管理數(shù)據(jù)的軟件,數(shù)據(jù)由計(jì)算或處理它的程序自行攜帶。數(shù)據(jù)管理任務(wù),包括存儲(chǔ)結(jié)構(gòu)、存儲(chǔ)方法、輸入/輸出方式等完全由程序設(shè)計(jì)者負(fù)責(zé)。特點(diǎn):

數(shù)據(jù)與程序不具有獨(dú)立性,一組數(shù)據(jù)對(duì)應(yīng)一組程序。數(shù)據(jù)不能長(zhǎng)期保存。

一個(gè)程序中的數(shù)據(jù)無(wú)法被其他程序使用。程序之間存在大量重復(fù)數(shù)據(jù),數(shù)據(jù)冗余大。2 .文件系統(tǒng) 世紀(jì) 50 年代后期到 60 年代中期。計(jì)算機(jī)不僅用于科學(xué)計(jì)算 , 而且還用于大量的數(shù)據(jù)處理。直接存儲(chǔ)設(shè)備,高級(jí)語(yǔ)言,操作系統(tǒng)。

程序和數(shù)據(jù)有一定的獨(dú)立性,數(shù)據(jù)文件可以長(zhǎng)期保存。

數(shù)據(jù)和程序相互依賴。數(shù)據(jù)文件是為滿足特定的業(yè)務(wù),或某部門的專門需要而設(shè)計(jì),服務(wù)于某一特定的應(yīng)用程序。

同一數(shù)據(jù)項(xiàng)可能重復(fù)出現(xiàn)在多個(gè)文件中,數(shù)據(jù)冗余度大。數(shù)據(jù)容易造成不一致。3 .?dāng)?shù)據(jù)庫(kù)系統(tǒng) 世紀(jì) 60 年代后期。計(jì)算機(jī)用于管理的規(guī)模更加龐大,應(yīng)用越來(lái)越廣泛。同時(shí)多種應(yīng)用、多種語(yǔ)言共享數(shù)據(jù)集合的要求越來(lái)越強(qiáng)烈。

標(biāo)志: 1968年IBM的 IMS 是一個(gè)層次模型數(shù)據(jù)庫(kù)。1969年美國(guó)數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)會(huì)公布的 DBTG 報(bào)告,對(duì)研制開發(fā)網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)起到了推動(dòng)作用。自1970年 IBM 公司的研究成果奠定了關(guān)系數(shù)據(jù)庫(kù)理論基礎(chǔ)。數(shù)據(jù)庫(kù)技術(shù)的主要目的:

有效地 管理和存儲(chǔ) 大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的 共享性,使多個(gè)用戶能夠同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù); 減少數(shù)據(jù)冗余,以提高數(shù)據(jù)的 一致性和完整性 ;提高數(shù)據(jù)與程序的 獨(dú)立性,從而 減少 應(yīng)用程序的 開發(fā)和維護(hù)代價(jià)。4 .分布式數(shù)據(jù)庫(kù) 20 世紀(jì) 70 年代以后,網(wǎng)絡(luò)技術(shù)的發(fā)展為數(shù)據(jù)庫(kù)提供了分布式的運(yùn)行環(huán)境,從主機(jī)—終端結(jié)構(gòu)發(fā)展到 C/S(客戶 / 服務(wù)器)系統(tǒng)結(jié)構(gòu)。

數(shù)據(jù)庫(kù)技術(shù)與網(wǎng)絡(luò)技術(shù)的結(jié)合分為 緊密結(jié)合 與 松散結(jié)合 兩大類。

分布式數(shù)據(jù)庫(kù)系統(tǒng)又分為 物理上分布、邏輯上集中 的分布式數(shù)據(jù)結(jié)構(gòu)和 物理上分布、邏輯上分布 的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)兩種。

物理上分布、邏輯上集中的分布式數(shù)據(jù)結(jié)構(gòu)是邏輯上統(tǒng)一、地域上分布的數(shù)據(jù)集合,是計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中各個(gè)節(jié)點(diǎn)局部數(shù)據(jù)庫(kù)的邏輯集合,同時(shí)受分布式數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)一控制和管理。物理上分布、邏輯上分布 的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)是把多個(gè)集中式數(shù)據(jù)庫(kù)系統(tǒng)通過(guò)網(wǎng)絡(luò)連接起來(lái),各個(gè)節(jié)點(diǎn)上計(jì)算機(jī)可以利用網(wǎng)絡(luò)通信功能訪問(wèn)其他節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)資源。5 .面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)

面向?qū)ο髷?shù)據(jù)庫(kù)吸收了面向?qū)ο蟪绦蛟O(shè)計(jì)方法的核心概念和基本思想,采用面向?qū)ο蟮挠^點(diǎn)來(lái) 描述現(xiàn)實(shí)世界實(shí)體(對(duì)象)的邏輯組織、對(duì)象之間的限制和聯(lián)系等??朔藗鹘y(tǒng)數(shù)據(jù)庫(kù)的局限性,能夠自然地存儲(chǔ)復(fù)雜的數(shù)據(jù)對(duì)象以及這些對(duì)象之間的關(guān)系,從而大幅度地提高了 數(shù)據(jù)庫(kù)管理效率、降低了用戶使用的復(fù)雜性。1.1 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí) 1.1.2 數(shù)據(jù)庫(kù)系統(tǒng) 一.有關(guān)數(shù)據(jù)庫(kù)的概念 1 .?dāng)?shù)據(jù)(Data)

描述事物的符號(hào)記錄。2 .?dāng)?shù)據(jù)庫(kù)(Data Base)

存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備中的、結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。它不僅包括描述事物的數(shù)據(jù)本身,而且包括相關(guān)事物之間的關(guān)系。

數(shù)據(jù)庫(kù)中的數(shù)據(jù)不只是面向某項(xiàng)特定的應(yīng)用,而是面向多種應(yīng)用,可以被多個(gè)用戶、多個(gè)應(yīng)用程序共享。3 .?dāng)?shù)據(jù)庫(kù)應(yīng)用系統(tǒng)

利用數(shù)據(jù)庫(kù)系統(tǒng)資源開發(fā)的面向某一類實(shí)際應(yīng)用的軟件系統(tǒng)。如:學(xué)生管理系統(tǒng)、人事管理系統(tǒng)等。.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)(DataBase Management System,DBMS)

位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件,為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件。使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù)庫(kù),并能報(bào)證數(shù)據(jù)的安全性、完整性、多用戶對(duì)數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。.?dāng)?shù)據(jù)庫(kù)系統(tǒng)(DataBase System, DBS)

指引進(jìn)數(shù)據(jù)庫(kù)技術(shù)后的計(jì)算機(jī)系統(tǒng),能實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量相關(guān)數(shù)據(jù)、提供數(shù)據(jù)處理和信息資源共享的便利手段。有 5 部分:硬件系統(tǒng)、數(shù)據(jù)庫(kù)集合、數(shù)據(jù)庫(kù)管理系統(tǒng)和相關(guān)軟件、數(shù)據(jù)庫(kù)管理員(DataBase Administrator , DBA)和用戶。二.?dāng)?shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn) 1 .實(shí)現(xiàn)數(shù)據(jù)共享,減少冗余 2 .采用特定的數(shù)據(jù)模型 3 .具有較高的數(shù)據(jù)獨(dú)立性 4 .有統(tǒng)一的數(shù)據(jù)控制功能 三.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)

支持用戶對(duì)數(shù)據(jù)庫(kù)的基本操作,是數(shù)據(jù)庫(kù)系統(tǒng)的核心軟件。主要目標(biāo)是使數(shù)據(jù)成為 方便用戶使用 的資源,易于為各種用戶所 共享,并增進(jìn)數(shù)據(jù)的 安全性、完整性和可用性?!?功能主要包括: 1.?dāng)?shù)據(jù)定義

定義數(shù)據(jù)庫(kù)的結(jié)構(gòu)。

2.數(shù)據(jù)操縱

更新(插入、修改、刪除)和檢索。

3.數(shù)據(jù)庫(kù)運(yùn)行管理

對(duì)數(shù)據(jù)庫(kù)進(jìn)行 并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行 及 數(shù)據(jù)庫(kù)的內(nèi)部維護(hù)(索引、數(shù)據(jù)字典的自動(dòng)維護(hù))等。

4.數(shù)據(jù)組織、存儲(chǔ)和管理

采用統(tǒng)一的組織方式,并提高效率。

5.數(shù)據(jù)庫(kù)的建立和維護(hù)

初始數(shù)據(jù)的輸入與數(shù)據(jù)轉(zhuǎn)存。

數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)與恢復(fù)、數(shù)據(jù)庫(kù)的重組與重構(gòu)、性能的監(jiān)視與分析。

6.數(shù)據(jù)通信接口

提供與其他軟件系統(tǒng)進(jìn)行通信的功能。

● 4 部分組成:

■ 數(shù)據(jù)定義語(yǔ)言及翻譯處理程序

■ 數(shù)據(jù)操縱語(yǔ)言及其編譯(或解釋)程序

■ 數(shù)據(jù)庫(kù)運(yùn)行控制程序

■ 實(shí)用程序

1.1 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

1.1.3 數(shù)據(jù)模型

數(shù)據(jù)模型就是從現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。是數(shù)據(jù)管理系統(tǒng)用來(lái)表示實(shí)體及實(shí)體間聯(lián)系的方法。

一.實(shí)體描述.實(shí)體

客觀存在并相互區(qū)別的事物成為實(shí)體。如:學(xué)生、教師、課程。.實(shí)體的屬性

描述實(shí)體的特性。如學(xué)生實(shí)體用學(xué)號(hào)、姓名、性別等屬性描述。.實(shí)體集和實(shí)體型

屬性值的集合表示一個(gè)實(shí)體,而屬性的集合表示一種實(shí)體的類型,稱為實(shí)體型。同類型的實(shí)體的集合,稱為實(shí)體集。

二.實(shí)體間聯(lián)系及種類

實(shí)體之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系。如:一個(gè)學(xué)生可以選修多門課程,同一門課程可以由多名教師講授。

有三種類型:.一對(duì)一聯(lián)系

如:人事部門的教師表和財(cái)務(wù)部門的工資表之間就存在一對(duì)一聯(lián)系。.一對(duì)多聯(lián)系

如:部門表與教師表之間就存在一對(duì)多的聯(lián)系。.多對(duì)多聯(lián)系

如:學(xué)生表和課程表之間存在多對(duì)多的聯(lián)系。

三.?dāng)?shù)據(jù)模型簡(jiǎn)介

數(shù)據(jù)模型是數(shù)據(jù)庫(kù)管理系統(tǒng)用來(lái)表示實(shí)體間聯(lián)系的方法。

任何一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)都是基于某種數(shù)據(jù)模型的。數(shù)據(jù)管理系統(tǒng)所支持的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型、關(guān)系模型。.層次模型

用樹型結(jié)構(gòu)表示各類實(shí)體以及實(shí)體之間的聯(lián)系。典型代表: IBM 的 IMS。

(1)有且僅有一個(gè)節(jié)點(diǎn)無(wú)雙親,這個(gè)節(jié)點(diǎn)稱為“根節(jié)點(diǎn)”。

(2)其他節(jié)點(diǎn)有且僅有一個(gè)雙親。

特點(diǎn):對(duì)一對(duì)多的層次關(guān)系描述非常自然、直觀、容易理解,但不能直接表示出多對(duì)多的聯(lián)系。.網(wǎng)狀模型

(1)允許一個(gè)以上的節(jié)點(diǎn)無(wú)雙親。

(2)一個(gè)節(jié)點(diǎn)可以有多于一個(gè)的雙親。

典型代表: DBTG 系統(tǒng),也稱 CODASYL 系統(tǒng)。

特點(diǎn)是:能直接表示非樹型結(jié)構(gòu)。.關(guān)系數(shù)據(jù)模型

IBM E.F.Codd 于 1970 首次提出。

用二維表結(jié)構(gòu)來(lái)表示實(shí)體以及實(shí)體間聯(lián)系的模型。

特點(diǎn)是:理論基礎(chǔ)完備、模型簡(jiǎn)單、說(shuō)明性的查詢語(yǔ)言和使用方便。

1.2 關(guān)系數(shù)據(jù)庫(kù)

1.2.1 關(guān)系數(shù)據(jù)模型

一.關(guān)系術(shù)語(yǔ)

.關(guān)系

一個(gè)關(guān)系就是一個(gè)二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。在 Access 中,一個(gè)關(guān)系存儲(chǔ)為一個(gè)表,具有一個(gè)表名。

對(duì)關(guān)系的描述稱為 關(guān)系模式,一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu)。其格式為:

關(guān)系名(屬性名 1,屬性名 2,…,屬性名 n)

在 Access 中:

表名(字段名 1,字段名 2,…,字段名 n).元組

二維表(關(guān)系)中的每一行。對(duì)應(yīng)在表中為記錄。.屬性

二維表(關(guān)系)中的每一列。對(duì)應(yīng)在表中為字段。.域

屬性的取值范圍。如:性別只能取“男”和“女”。.關(guān)鍵字

唯一地標(biāo)識(shí)一元組的屬性或?qū)傩约稀H纾航處煴碇械木幪?hào)。在 Access 中,主關(guān)鍵字和候選關(guān)鍵字就起唯一標(biāo)識(shí)一個(gè)元組的作用。.外部關(guān)鍵字

如果一個(gè)表的字段不是本表的主關(guān)鍵字,而是另外一個(gè)表的主關(guān)鍵字和候選關(guān)鍵字,這個(gè)字段(屬性)就稱為外關(guān)鍵字。

二.關(guān)系的特點(diǎn).關(guān)系必須規(guī)范化

是指關(guān)系模型中的每一個(gè)關(guān)系模式都必須滿足一定的要求。最基本的要求是每個(gè)屬性必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。.在同一個(gè)關(guān)系中不能出現(xiàn)相同的屬性名。.關(guān)系中不允許有完全相同的元組,即冗余。4 .在一個(gè)關(guān)系中元組的次序無(wú)關(guān)緊要。5 .在一個(gè)關(guān)系中列的次序無(wú)關(guān)緊要。

1.2 關(guān)系數(shù)據(jù)庫(kù)

1.2.2 關(guān)系運(yùn)算

一.傳統(tǒng)的集合運(yùn)算.并

兩個(gè)結(jié)構(gòu)相同的關(guān)系的并是由屬于這兩個(gè)關(guān)系的元組組成的集合。.差

兩個(gè)結(jié)構(gòu)相同的關(guān)系 R 和 S 的差是由屬于 R 但不屬于 S 的元組組成的集合。.交

兩個(gè)結(jié)構(gòu)相同的關(guān)系 R 和 S 的交是由既屬于 R 又屬于 S 的元組組成的集合。二.專門的關(guān)系運(yùn)算.選擇

從關(guān)系中找出滿足給定條件的元組的操作。.投影

從關(guān)系模式中指定若干屬性組成新的關(guān)系。.聯(lián)接

將兩個(gè)關(guān)系模式拼接成為一個(gè)更寬的關(guān)系模式,生成的新的關(guān)系中包含滿足聯(lián)接條件的元組。.自然聯(lián)接

在聯(lián)接運(yùn)算中,按照字段值對(duì)應(yīng)相等為條件進(jìn)行的聯(lián)接操作。去掉重復(fù)字段。

1.3 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)

1.3.1 數(shù)據(jù)庫(kù)的設(shè)計(jì)步驟

一.設(shè)計(jì)原則 .關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)遵從概念單一化“一事一地”的原則.避免在表之間出現(xiàn)重復(fù)字段 .表中的字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素.用外部關(guān)鍵字保證有關(guān)聯(lián)的表之間聯(lián)系

二.設(shè)計(jì)步驟.需求分析

(1)信息需求

(2)處理需求

(3)安全性和完整性需求.確定需求的表

遵從概念單一化“一事一地”的原則,即一個(gè)表描述一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系,并將這些信息分成各種基本實(shí)體。.確定所需字段

(1)每個(gè)字段直接和表的實(shí)體相關(guān)

(2)以最小的邏輯單位存儲(chǔ)信息

(3)表中的字段必須是原始數(shù)據(jù)

(4)確定主關(guān)鍵字字段.確定聯(lián)系

對(duì)于一對(duì)多的聯(lián)系,可以將其中“一方”表的主關(guān)鍵字放到“多方”表中作為外關(guān)鍵字?!耙环健庇盟饕P(guān)鍵字,“多方”使用普通索引關(guān)鍵字。

對(duì)于一對(duì)一的聯(lián)系,兩個(gè)表中使用同樣的主關(guān)鍵字字段。

對(duì)于多對(duì)多的聯(lián)系,為了避免數(shù)據(jù)重復(fù),一般建立第三個(gè)表,把多對(duì)多的聯(lián)系分解兩個(gè)一對(duì)多的聯(lián)系。這個(gè)第三個(gè)表可以看成紐帶。紐帶表不一定需要自己的主鍵,如果需要,可以將它所聯(lián)系的兩個(gè)表的主關(guān)鍵字做為組合關(guān)鍵字指定為主關(guān)鍵字。.設(shè)計(jì)求精

檢查可能存在的缺陷和需要改進(jìn)的地方,這些缺陷可能會(huì)使數(shù)據(jù)難以使用和維護(hù)。

(1)是否忘記了字段?

(2)是否存在大量空白字段?

(3)是否包含了同樣字段的表?

(4)表中是否帶有大量不屬于某實(shí)體的字段?

(5)是否在某個(gè)表中重復(fù)輸入同樣的數(shù)據(jù)?

(6)是否為每個(gè)表選擇了合適的主關(guān)鍵字?

(7)是否有字段很多而記錄很少的表,并且許多記錄中的字段值為空?

1.4 SQL 基本命令

SQL(Structure Query Language,結(jié)構(gòu)化查詢語(yǔ)言)是在數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用廣泛的數(shù)據(jù)庫(kù)查詢語(yǔ)言,它包括了數(shù)據(jù)定義、查詢、操縱和控制 4 種功能。

SQL 中的兩個(gè)基本概念:

基本表:本身獨(dú)立存在的表。

視圖:從一個(gè)或多個(gè)基本表導(dǎo)出的表。它本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中,即數(shù)據(jù)庫(kù)中存放視圖的定義,而不存放視圖對(duì)應(yīng)的數(shù)據(jù)。

1.4.1 SQL 基本語(yǔ)句

最常見(jiàn)的 SQL 語(yǔ)句是 SELECT。

基本格式:

SELECT [ALL/DISTINCT] *|< 字段列表 >

FROM < 表名 > [WHERE < 條件表達(dá)式 >]

[ORDER BY < 列名 > {[ASC|DESC]}]

例:在 Access 中,在教師表中查詢姓名為“王”的教師,并按照姓名升序排列。命令為:

SELECT * FROM 教師 WHERE 姓名 LIKE “ 王 %” ORDER BY 姓名 ASC 1.5 Access 簡(jiǎn)介

Access 是一種關(guān)系型的桌面數(shù)據(jù)庫(kù)管理系統(tǒng),是 Microsoft Office 套件產(chǎn)品之一。

1992 年 11 月推出 Access 1.0,Microsoft 先后推出 2.0,7.0/95,8.0/97,9.0/2000,10.0/2002,直到 Access 2003。

特點(diǎn): .具有方便實(shí)用的強(qiáng)大功能。.可以利用各種圖例快速獲取數(shù)據(jù)。.可以利用報(bào)表設(shè)計(jì)工具,方便生成報(bào)表。.能處理多種數(shù)據(jù)類型。.采用 OLE 技術(shù),能方便創(chuàng)建和編輯多媒體數(shù)據(jù)庫(kù)。.支持 ODBC 標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)庫(kù)的數(shù)據(jù)。.設(shè)計(jì)過(guò)程自動(dòng)化,大大提高了數(shù)據(jù)庫(kù)的工作效率。.具有較好的集成開發(fā)環(huán)境。.提供了斷點(diǎn)設(shè)置、單步執(zhí)行等調(diào)試功能。.與 Internet/Intranet 的集成。.可以將數(shù)據(jù)庫(kù)應(yīng)用程序的建立移進(jìn)用戶環(huán)境,并最終使用戶和應(yīng)用程序開發(fā)者之間的關(guān)系淡化。

數(shù)據(jù)庫(kù)的系統(tǒng)結(jié)構(gòu):

Access 數(shù)據(jù)庫(kù)由數(shù)據(jù)庫(kù)對(duì)象和組兩部分組成,如圖 1-2 所示。其中對(duì)象分為 7 種:表、查詢、窗體、報(bào)表、數(shù)據(jù)訪問(wèn)頁(yè)、宏、模塊。

表是數(shù)據(jù)庫(kù)的核心與基礎(chǔ),存放中數(shù)據(jù)庫(kù)中的全部數(shù)據(jù)。報(bào)表、查詢和窗體都是從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)信息,以實(shí)現(xiàn)用戶的某一特定的需要。

表是用來(lái)存儲(chǔ)數(shù)據(jù)的對(duì)象,是數(shù)據(jù)庫(kù)的核心與基礎(chǔ)。表中的列為字段,行為記錄。

查詢是用來(lái)操作數(shù)據(jù)庫(kù)中的記錄對(duì)象,利用它可以按照一定的條件或準(zhǔn)則從一個(gè)或多個(gè)表中篩選出需要操作的字段,并可以把它們集中起來(lái),形成所謂的動(dòng)態(tài)數(shù)據(jù)集,并顯示在一個(gè)虛擬的數(shù)據(jù)表窗口中。

窗體:數(shù)據(jù)庫(kù)與用戶進(jìn)行交互操作的界面。其數(shù)據(jù)源可以是表或查詢。

報(bào)表:數(shù)據(jù)的輸出方式,可以將數(shù)據(jù)庫(kù)中需要的數(shù)據(jù)提取出來(lái)進(jìn)行分析、整理和計(jì)算,并將數(shù)據(jù)以格式化的方式打印輸出。

數(shù)據(jù)訪問(wèn)頁(yè):是一種特殊的 Web 頁(yè),用戶可以在此 Web 頁(yè)與 Access 數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行聯(lián)接,查看、修改 Access 數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

宏:一系列操作的集合。

模塊:將 Visual Basic for Application 聲明和過(guò)程作為一個(gè)單元進(jìn)行保存的集合。

1.6 啟動(dòng)和關(guān)閉 Access 1.6.1 啟動(dòng) Access

“開始 / 程序 /Microsoft Access”

1.6 啟動(dòng)和關(guān)閉 Access 1.6.2 關(guān)閉 Access 4 種方法:

(1)單擊 Access 右上角的“關(guān)閉”按鈕

(2)選擇“文件”菜單中的“退出”命令

(3)使用 Alt+F4 快捷鍵

(4)使用 Alt+F+X 快捷鍵

一、填空題

1.計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展分 _______________________________________ 等幾個(gè)階段。.?dāng)?shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存儲(chǔ)大量的數(shù)據(jù)資源,包括:_____________,使多個(gè)用戶能夠同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù); ______________,以提高數(shù)據(jù)的一致性和完整性;___________________,從而減少應(yīng)用程序的開發(fā)和維護(hù)代價(jià)。.?dāng)?shù)據(jù)庫(kù)技術(shù)與網(wǎng)絡(luò)技術(shù)的結(jié)合分為 _____________ 與 _____________ 兩大類。.分布式數(shù)據(jù)庫(kù)系統(tǒng)又分為 ____________________ 的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)和 ______________________ 的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)兩種。.?dāng)?shù)據(jù)庫(kù)系統(tǒng)的 5 個(gè)組成部分: _________________________________________________。. 實(shí)體之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系,有如下三種類型: _______________________________。.任何一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)都基于某種數(shù)據(jù)模型的。數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的數(shù)據(jù)模型有三種: ___________________________。.兩個(gè)結(jié)構(gòu)相同的關(guān)系 R 和 S 的 _______ 是由屬于 R 但不屬于 S 的元組組成的集合。. SQL(Structure Query Language,結(jié)構(gòu)化查詢語(yǔ)言)是在數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用廣泛的數(shù)據(jù)庫(kù)查詢語(yǔ)言,它包括了 _____________________________4 種功能。.Access 數(shù)據(jù)庫(kù)由數(shù)據(jù)庫(kù)對(duì)象和組兩部分組成。其中對(duì)象分為 7 種: ___________________。

二、選擇題 .下列說(shuō)法錯(cuò)誤的是()。

A 人工管理階段程序之間存在大量重復(fù)數(shù)據(jù),數(shù)據(jù)冗余大。

B 文件系統(tǒng)階段程序和數(shù)據(jù)有一定的獨(dú)立性,數(shù)據(jù)文件可以長(zhǎng)期保存。

C 數(shù)據(jù)庫(kù)階段提高了數(shù)據(jù)的共享性,減少了數(shù)據(jù)冗余。

D 上述說(shuō)法都是錯(cuò)誤的。. 從關(guān)系中找出滿足給定條件的元組的操作稱為()。

A .選擇

B .投影

C .聯(lián)接

D .自然聯(lián)接

3.關(guān)閉 Access 可以方法不正確的是()。

A .選擇“文件”菜單中的“退出”命令。

B .使用 Alt+F4 快捷鍵。

C .使用 Alt+F+X 快捷鍵。

D .使用 Ctrl+X 快捷鍵。.?dāng)?shù)據(jù)庫(kù)技術(shù)是從 20 世紀(jì)()年代中期開始發(fā)展的。

A.60

B.70

C.80

D.90 .使用 Access 按用戶的應(yīng)用需求設(shè)計(jì)的結(jié)構(gòu)合理、使用方便、高效的數(shù)據(jù)庫(kù)和配套的應(yīng)用程序系統(tǒng),屬于一種()。

A.數(shù)據(jù)庫(kù)

B.數(shù)據(jù)庫(kù)管理系統(tǒng)

C.數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)

D.數(shù)據(jù)模型.二維表由行和列組成,每一行表示關(guān)系的一個(gè)()。

A.屬性

B.字段

C.集合 D.記錄.?dāng)?shù)據(jù)庫(kù)是()。

A.以—定的組織結(jié)構(gòu)保存在輔助存儲(chǔ)器中的數(shù)據(jù)的集合。

B.一些數(shù)據(jù)的集合。

C.輔助存儲(chǔ)器上的一個(gè)文件。

D.磁盤上的一個(gè)數(shù)據(jù)文件。.關(guān)系數(shù)據(jù)庫(kù)是以()為基本結(jié)構(gòu)而形成的數(shù)據(jù)集合。

A.?dāng)?shù)據(jù)表

B.關(guān)系模型

C.?dāng)?shù)據(jù)模型

D.關(guān)系代數(shù) 9 .關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)表()。

A.完全獨(dú)立,相互沒(méi)有關(guān)系。

B.相互聯(lián)系,不能單獨(dú)存在。

C.既相對(duì)獨(dú)立,又相互聯(lián)系。

D.以數(shù)據(jù)表名來(lái)表現(xiàn)其相互間的聯(lián)系。10 .以下敘述中,正確的是()。

A.Access 只能使用菜單或?qū)υ捒騽?chuàng)建數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。

B.Access 不具備程序設(shè)計(jì)能力。

C.Access 只具備了模塊化程序設(shè)計(jì)能力。

D.Access 具有面向?qū)ο蟮某绦蛟O(shè)計(jì)能力,并能創(chuàng)建復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。

答案 填空題

1.人工管理、文件系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、分布式數(shù)據(jù)庫(kù)、面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)

2.提高數(shù)據(jù)的共享性、減少數(shù)據(jù)冗余、提高數(shù)據(jù)與程序的獨(dú)立性

3.緊密結(jié)合、松散結(jié)合

4.物理上分布、邏輯上集中;物理上分布、邏輯上分布

5.硬件系統(tǒng)、數(shù)據(jù)庫(kù)集合、數(shù)據(jù)庫(kù)管理系統(tǒng)和相關(guān)軟件、數(shù)據(jù)庫(kù)管理員(DataBase Administrator , DBA)和用戶。

6.一對(duì)一聯(lián)系、一對(duì)多聯(lián)系、多對(duì)多聯(lián)系。

7.層次模型、網(wǎng)狀模型、關(guān)系模型。

8.差

9.?dāng)?shù)據(jù)定義、查詢、操縱和控制

10.表、查詢、窗體、報(bào)表、數(shù)據(jù)訪問(wèn)頁(yè)、宏、模塊。

選擇題

D A D A B D A B C D

第五篇:Access數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告

注意事項(xiàng):本手冊(cè)上寫的是題目的出處,但的實(shí)驗(yàn)本上,必須寫上書上原本的題目,否則無(wú)效。并且寫下每題實(shí)現(xiàn)的步驟。

《Access數(shù)據(jù)庫(kù)》實(shí)驗(yàn)報(bào)告指導(dǎo)手冊(cè)掌握選擇查詢、總記查詢、在查詢中進(jìn)行計(jì)算

實(shí)驗(yàn)一:

一、實(shí)驗(yàn)名稱

數(shù)據(jù)庫(kù)與表的操作

二、實(shí)驗(yàn)?zāi)康恼莆諗?shù)據(jù)庫(kù)的創(chuàng)建、表結(jié)構(gòu)的創(chuàng)建和輸入數(shù)據(jù) 的實(shí)現(xiàn)。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上94頁(yè)的例3.1題。上機(jī)二:書上101頁(yè)的例3.4題。上機(jī)三:書上105頁(yè)的例3.6題。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上34頁(yè)的例 2.2題。上機(jī)二:書上42頁(yè)的例2.6題。上機(jī)三:書上44頁(yè)的例2.7題。上機(jī)四:書上49頁(yè)的例2.9題。上機(jī)五:書上52頁(yè)的例2.10題。實(shí)驗(yàn)二:

一、實(shí)驗(yàn)名稱

設(shè)置字段的屬性與創(chuàng)建表之間的關(guān)系

二、實(shí)驗(yàn)?zāi)康恼莆兆侄螌傩缘脑O(shè)置與創(chuàng)建表之間的關(guān)系。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上55頁(yè)的例2.11題。上機(jī)二:書上57頁(yè)的例2.13題。上機(jī)三:書上58頁(yè)的例2.14題。上機(jī)四:書上60頁(yè)的例2.15題。上機(jī)五:書上63頁(yè)的例2.16題。實(shí)驗(yàn)三:

一、實(shí)驗(yàn)名稱維護(hù)表的操作

二、實(shí)驗(yàn)?zāi)康恼莆沾蜷_表、修改表的結(jié)構(gòu)、編輯表的數(shù)據(jù)和調(diào)整表的外觀等操作。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上66頁(yè)的例2.18題。上機(jī)二:書上71頁(yè)的例2.20題。上機(jī)三:書上73頁(yè)的例2.21題。上機(jī)四:書上74頁(yè)的例2.22題。上機(jī)五:書上76頁(yè)的例2.23題。實(shí)現(xiàn)四:

一、實(shí)驗(yàn)名稱創(chuàng)建選擇查詢

二、實(shí)驗(yàn)?zāi)康纳蠙C(jī)四:書上107頁(yè)的例3.8題。上機(jī)五:書上109頁(yè)的例3.9題。實(shí)驗(yàn)五:

一、實(shí)驗(yàn)名稱

創(chuàng)建交叉表查詢、參數(shù)查詢

二、實(shí)驗(yàn)?zāi)康恼莆战徊姹聿樵?、參?shù)查詢的實(shí)現(xiàn)。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上113頁(yè)的例3.11題。上機(jī)二:書上116頁(yè)的例3.12題。上機(jī)三:書上118頁(yè)的例3.13題。上機(jī)四:書上119頁(yè)的例3.14題。實(shí)驗(yàn)六:

一、實(shí)驗(yàn)名稱創(chuàng)建操作查詢

二、實(shí)驗(yàn)?zāi)康恼莆丈杀聿樵儭h除查詢、更新查詢和追加查詢的實(shí)現(xiàn)。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上121頁(yè)的例3.15題。上機(jī)二:書上122頁(yè)的例3.16題。上機(jī)三:書上124頁(yè)的例3.17題。上機(jī)四:書上125頁(yè)的例3.18題。實(shí)驗(yàn)七:

一、實(shí)驗(yàn)名稱

利用向?qū)?chuàng)建窗體

二、實(shí)驗(yàn)?zāi)康恼莆绽孟驅(qū)?chuàng)建窗體的實(shí)現(xiàn)。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上144頁(yè)的例4.2題。上機(jī)二:書上147頁(yè)的例4.3題。上機(jī)三:書上150頁(yè)的例4.5題。上機(jī)四:書上152頁(yè)的例4.6題。實(shí)驗(yàn)八:

一、實(shí)驗(yàn)名稱自定義窗體

二、實(shí)驗(yàn)?zāi)康恼莆粘R?jiàn)控件的使用與自定義窗體的實(shí)現(xiàn)。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上158頁(yè)的例4.7題。上機(jī)二:書上167頁(yè)的例4.8題。上機(jī)三:書上174頁(yè)的例4.9題。上機(jī)四:書上174頁(yè)的例4.10題。上機(jī)五:書上176頁(yè)的例4.11題。實(shí)驗(yàn)九:

一、實(shí)驗(yàn)名稱

編輯報(bào)表

二、實(shí)驗(yàn)?zāi)康恼莆站庉媹?bào)表的操作、報(bào)表的分組操作、增加計(jì)算控件的操作。

三、實(shí)驗(yàn)任務(wù)

上機(jī)一:書上203頁(yè)的例5.7題。

上機(jī)二:書上203頁(yè)的:在報(bào)表中,可以在某一節(jié)中使用分頁(yè)控件符來(lái)標(biāo)志要另起一頁(yè)的位置。

上機(jī)三:書上205頁(yè)的例5.8題。上機(jī)四:書上206頁(yè)的例5.9題。上機(jī)五:書上209頁(yè)的例5.10題。

下載文管二級(jí)Access數(shù)據(jù)庫(kù)SQL語(yǔ)句詳解word格式文檔
下載文管二級(jí)Access數(shù)據(jù)庫(kù)SQL語(yǔ)句詳解.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    Access數(shù)據(jù)庫(kù)實(shí)驗(yàn)

    實(shí)驗(yàn)一 ACCESS之表的操作 一、實(shí)驗(yàn)?zāi)康?1、熟悉Access用戶操作界面。 2、掌握創(chuàng)建表的方法。 3、掌握創(chuàng)建主鍵和索引的方法。 4、掌握表結(jié)構(gòu)的編輯和表中數(shù)據(jù)的操作方法。 5......

    Access數(shù)據(jù)庫(kù)復(fù)習(xí)資料

    演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 Access數(shù)據(jù)庫(kù)復(fù)習(xí)資料 1.ACCESS的窗體對(duì)象是什么?按其應(yīng)用功能的不同,將ACCESS窗體對(duì)象分為哪幾類?答:窗體是Acce......

    把Access數(shù)據(jù)庫(kù)導(dǎo)成SQL Server 2000的工作

    把Access數(shù)據(jù)庫(kù)導(dǎo)成SQL Server 2000的工作,雖然很簡(jiǎn)單,但由于沒(méi)有經(jīng)驗(yàn)也會(huì)走很多彎路。在這里把我的心得拿出來(lái)和大家分享一下,如果能對(duì)你有所助益,也算是有所價(jià)值,歡迎大家共同......

    VB數(shù)據(jù)庫(kù)SQL語(yǔ)句學(xué)習(xí)(精選多篇)

    1.Select * from student查詢所有原始記錄 2. Select StudentID, StudentName from student 只查詢學(xué)號(hào)和姓名 3. Select StudentID as 學(xué)號(hào), StudentName as 姓名, Sex as......

    SQL簡(jiǎn)單語(yǔ)句小結(jié) 數(shù)據(jù)庫(kù)菜鳥不可不看

    數(shù)據(jù)庫(kù)菜鳥不可不看簡(jiǎn)單SQL語(yǔ)句小結(jié)為了大家更容易理解我舉出的SQL語(yǔ)句,本文假定已經(jīng)建立了一個(gè)學(xué)生成績(jī)管理數(shù)據(jù)庫(kù),全文均以學(xué)生成績(jī)的管理為例來(lái)描述。 1.在查詢結(jié)果中顯示......

    sql常用語(yǔ)句

    //創(chuàng)建臨時(shí)表空間create temporary tablespace test_temp tempfile 'E:oracleproduct10.2.0oradatatestservertest_temp01.dbf'size 32m autoextend on next 32m maxs......

    SQL語(yǔ)句大全

    SQL練習(xí)一、 設(shè)有如下的關(guān)系模式, 試用SQL語(yǔ)句完成以下操作: 學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系) 課程(課程號(hào),課程名,學(xué)分,學(xué)期,學(xué)時(shí)) 選課(學(xué)號(hào),課程號(hào),成績(jī)) 1. 求選修了課程號(hào)為“C2”......

    SQL語(yǔ)句

    SQL語(yǔ)句,用友的SQL2000,通過(guò)查詢管理器寫的語(yǔ)句 1、查詢 2、修改 3、刪除 4、插入表名:users 包含字段:id,sname,sage 查詢 select * from users查詢users表中所有數(shù)據(jù) select i......

主站蜘蛛池模板: 日韩av高清在线观看| 国产真实乱对白精彩久久老熟妇女| 毛茸茸性xxxx毛茸茸毛茸茸| 青青久在线视频免费观看| 色www永久免费视频| 无码啪啪熟妇人妻区| 激情国产av做激情国产爱| 中文无码字幕一区到五区免费| 男女裸体影院高潮| 激情射精爽到偷偷c视频无码| 无码专区 丝袜美腿 制服师生| 国产自国产在线观看免费观看| 84pao国产成视频永久免费| 亚洲午夜精品久久久久久APP| 丰满少妇作爱视频免费观看| 99久久亚洲精品日本无码| 久艾草在线精品视频在线观看| 亚洲精品无码av人在线播放| 无遮无挡三级动态图| 日本中文字幕乱码免费| 欧美最骚最疯日b视频观看| 久久精品66免费99精品| 西西大胆午夜人体视频| 国产精品爆乳在线播放第一人称| 色偷偷av老熟女| 四虎影视久久久免费| 日韩欧无码一区二区三区免费不卡| 欧美肥妇多毛bbw| 狠狠躁18三区二区一区| 中文字幕无码精品亚洲资源网久久| 国产婷婷综合在线视频中文| 一本久久精品一区二区| 最近2019好看的中文字幕免费| 国产精品_九九99久久精品| 成人精品综合免费视频| 日韩一欧美内射在线观看| 秋霞无码久久久精品交换| www国产亚洲精品久久麻豆| 午夜家庭影院| 免费无码av片在线观看| 国产精品亲子乱子伦xxxx裸|