單元二:建立和維護資料表
1、 一個關係由一個二維表表示
2、 二維表中的每一列稱為關係的一個屬性,即欄位
3、 二維表中的每一行的所有資料稱為一個元組,相當一個記錄,代表一個實體
4、 能唯一標識一個元組的一個或若干個屬性的集合稱為關鍵字
5、 資料表的特點:
(1)關係是一種規範的二維表,表中不能再包含表。
(2)二維表中的每一列元素是型別相同的資料。
(3)二維表的行和列的順序可以任意調整。
(4)表中任意兩行記錄不能完全相同。
6、 關係運算
(1)選擇:從資料表中挑選滿足指定條件或指定範圍的記錄。
(2)投影:從資料表中將指定的欄位挑選出來。
(3)連線:按照某個條件將兩個資料表連線生成一個新資料表。
連線又分為等值連線與自然連線。在聯接運算中,按照欄位值對應相等為條件進行的連線操作稱為等值連線。自然連線是去掉重複屬性列的等值連線。
7、 欄位資料型別
(1)文字(Text):Access預設的大小是50個字元。
(2)備註(Memo):儲存長度較長的文字及數字,Access不能對備註欄位進行排序或索引,卻可以對文字欄位進行排序和索引
。在備註欄位中雖然可以搜尋文字,但卻不如在有索引的文字欄位中搜索得快。(3)數字(Number):用來儲存進行算術計算的數字資料,使用者還可以設定“欄位大小”屬性定義一個特定的數字型別(“位元組”、“整數”、“長整數”、“單精度數”、“雙精度數”、“同步複製ID”、“小數”) 。在Access中通常預設為“雙精度數”。
(4)日期/時間(Data/Time):用來儲存日期、時間或日期時間,每個日期/時間欄位需要8個位元組來儲存空間。
(5)貨幣(Currency):是數字資料型別的特殊型別,等價於具有雙精度屬性的數字欄位型別。向貨幣欄位輸入資料時,不必鍵入人民幣符號和千位處的逗號,Access
會自動顯示人民幣符號和逗號,並新增兩位小數到貨幣欄位。當小數部分多於兩位時,Access會對資料進行四捨五入。精確度為小數點左方15位數及右方4位數。(6)自動編號(AutoNumber):這種型別較為特殊,每次向表格新增新記錄時,Access會自動插入唯一順序或者隨機編號,即在自動編號欄位中指定某一數值。自動編號一旦被指定,就會永久地與記錄連線。如果刪除了表格中含有自動編號欄位的一個記錄後,Access並不會為表格自動編號欄位重新編號。當新增某一記錄時,Access不再使用已被刪除的自動編號欄位的數值,而是重新按遞增的規律重新賦值。
(7)是/否(Yes/No):這種欄位是針對於某一欄位中只包含兩個不同的可選值而設立的欄位,通過是/否資料型別的格式特性,使用者可以對是/否欄位進行選擇。
(8)OLE物件(OLE Object):可以連結或嵌入Access表中的OLE物件是指在其他使用OLE協議程式建立的物件,例如WORD文件、EXCEL電子表格、影象、聲音或其他二進位制資料。OLE物件欄位最大可為1GB,它主要受磁碟空間限制。
(9)超級連結(Hyperlink):用來儲存超級連結的,包含作為超級連結地址的文字或以文字形式儲存的字元與數字的組合。當單擊一個超級連結時,WEB瀏覽器或Access將根據超級連結地址到達指定的目標。超級連結最多可包含三部分:一是在欄位或控制元件中顯示的文字;二是到檔案或頁面的路徑;三是在檔案或頁面中的地址。在這個欄位或控制元件中插入超級連結地址最簡單的方法就是在“插入”選單中單擊“超級連結”命令,三部分最多包含2048個字元。
(10)附件(?):可允許向Access資料庫附加外部檔案的特殊欄位,可以檢視和編輯附加的檔案。
(11)查閱嚮導(Lookup Wizard):為使用者提供了一個建立欄位內容的列表,可以在列表中選擇所列內容作為添入欄位的內容。
8、 利用表設計器建立表的步驟
(1)在“建立”選項卡“表格”功能區中單擊“表設計”按鈕。
(2)在“欄位名稱”列輸入欄位名稱,“資料型別”列選擇相應的資料型別,在“欄位屬性”中設定相應的屬性。
(3)單擊“儲存”按鈕,輸入表名,單擊“確定”按鈕完成。
9、 資料表字段名最長可以包含64個字元
10、表結構只能在表設計檢視中修改
11、熟記P18記錄導航條;熟記P19表2-9;熟記P19表2-10
12、修改表結構包括:增減欄位、更改欄位型別、更改欄位屬性。
增減欄位:開啟表設計檢視;在“設計”選項卡的“工具”功能區,選擇“插入行”命令在當前欄位前插入欄位;選擇“刪除行”命令刪除當前欄位。 或者在右擊彈出的快捷選單中選擇“插入行”、“刪除行”命 令。
13、在“資料表檢視”中進行記錄資料操作。包括:修改欄位資料、增加記錄、刪除記錄。記錄資料刪除是永久刪除,不能恢復。
14、插入“ole”物件的步驟:在需要插入“ole”物件資料的位置右擊;在快捷選單中選擇“插入物件”命令;選擇由“新建”或“由檔案建立”。
15、設定欄位屬性的目的:更準確限制欄位中所輸入資料的內容和格式。
16、講解附錄中的常用函式及運算子。
一、算術運算
1.絕對值函式:Abs(x)返回數值x的絕對值。
如Abs(-3)=3
2.向下取整函式:Int(x) 求不大於x的最大值。
例 Int(3.25)=3 Int(-3.25)=-4
3.取整函式:Fix(x) 截尾取整
例 Fix(3.25)=3,Fix(-3.25)= -3
4.四捨五入函式:Round(x,[n])按照指定的小數位數進入四捨五入運算的結果。[n]是進入四捨五入運算小數點右邊應保留的位數。
例 Round(3.255,1)= 3.3; Round(3. 754,2)= 3.75;Round(3.754,0)= 4
5.開平方函式:Sqr(x)計算數值x的算術平方根,x>=0。
例 Sqr(9)= 3
6.產生隨機數函式:Rnd(x)產生一個0-1之間的隨機數,為單精度型別。
例 Int(100 * Rnd) ‟產生[0,99]的隨機整數;
Int(101 * Rnd) ‟產生[0,100]的隨機整數
7.求平均值函式Avg(x) 例如:在tstud表中所有學生年齡的平均值
select avg([年齡]) from tstud
8.求和函式sum()
例如:在tstud表中求所有學生年齡的和
select sum([年齡]) from tstud
9、Atn(x)求x的反正切值
10、Tan(x)求經的正切值
11、Sin(x) 求x的正弦值
12、 Cos(x) 求x餘弦值
13、Exp(x) 返回e 的x次冪。
14、Log(x)返回以E為底x的對數值
二、字串函式
1.字串檢索函式
InStr([Start,] <Strl>,<Str2> [,Compare])
檢索子字元Str2在字串Strl中出現的位置,返回一整型數
Start為可選引數,為數值式,設定檢索的起始位置。如省略,從第一個字元開始檢索
如果Strl的長度為零,或Str2表示的申檢索不到,則InStr返回0
如果Str2的串長度為零,InStr返回Start的值
Compare 的設定將決定比較的型別
例:strl =“987653465” , str2 =“65”
s1 = InStr(strl ,str2) 返回4
s2 = InStr( 3,“aSsiAB”,“A”,1) 返回5。
Instrrev(str1, str2[, start])
檢索子字元Str2在字串Strl中出現的位置,從字串的末尾算起。
例:s3= InStrrev(strl ,str2) 返回 8
2.字元長度檢測函式:Len(<字元表示式>或<變數名>)
返回字串所含字元數。注意,定長字元,其長度是定義時的長度,和字串實際值無關。
例: lenl = Len(“12345”) ‟返回5
len4 = Len(“考試中心”) ‟返回4
3.字串擷取函式
Left (str,<N>) 從Str左邊起擷取N個字元。
Right(str,<N>):在str右邊起擷取N個字元。
Mid(str,<N1>,[N2]):從str左邊第N1個字元起擷取N2個字元。
例:strl =“opqrst” str2 =“計算機等級考試”
str = Left( strl,3) ‟返回“opq”
str = Left( str2,4) ‟返回“計算機等”
str = Right( strl,2) ‟返回“st”
str = Right( str2,2) ‟返回“考試”
str = Mid( strl,4,2) ‟返回“rs”
str = Mid( str2,1,3) ‟返回“計算機”
str = Mid(str2, 4,) ‟返回“等級考試”
4.生成空格字元函式:Space(n) 返回n的值指定的空格字元數。
例如:strl = Space(3) 返回3個空格字元
5.大小寫轉換函式
Ucase(<字串表示式>):將字串中小寫字母轉換成大寫字母。
Lcase(<字串表示式>):將字串中大寫字母轉換成小寫字毋。
例:strl = Ucase(”fHkrYt”) 返回 “FHKRYT”
str2 = Lcase(“fHKrYt”) 返回 ”fhkryt”
6.刪除空格函式
Ltrim(<字串表示式>):刪除字串的開始空格。
Rtrim(<字串表示式>):刪除字串的尾部空格。
Trim(<字串表示式>):刪除字串的開始和尾部空格。
例:str = “ab cde”
str1 = Ltrim(str) 返回”ab cde”
str2 = Rtrim(str) 返回”ab cde”
str3 = Trim(str) 返回”ab cde”
7、字元重複函式
string(n,字串) 將字串的首字元重複n次,組成新字串。
例:string(3,”fun”) 返回字串“fff”
8、字元替換函式
Replace(字串,str1,str2[,start][,count]) 用str2替換字串中的str1
start 替換的起始位置,count替換次數。
例:replace(“a1b1”,”1”,”X”) 返回字串“aXbX”
replace(“a1b1c1”,”1”,”X”, , 2) 返回字串“aXbXc1”
Replace(“a1b1c1”, “1”, “X”, 4, 2) 返回串“XcX”
三、日期/時間函式
1.獲取系統日期和時間函式
Date():返回當前系統日期。
Time():返回當前系統時間。
Now():返回當前系統日期和時間。
例:D = Date()返回系統日期,如2008-08-08
T = Time()返回系統時間, 如9:45:00
DT = Now()返回系統日期和時間,如2008-08-08 9:45:00
2.擷取日期分量函式
Year(<表示式>):返回日期表示式年份的整數。
Month(<表示式>):返回日期表示式月份的整數。
Day(<表示式>):返回日期表示式日期的整數。
Weekday (<表示式>[.W] ):返回1-7的整數,表示星期幾。返回的星期值是星期日為1,星期一為2,以此類推。
例:Year("00-6-15") = 2000 Month("00-6-15") = 6
Month( [csrq] )=7 :把7月份出生的學生查找出來
Year(Date())-Year( [出生日期] ):根據出生日期計算學生年齡
Date()-10:表示出系統日期10天前的日期。
3. 擷取時間分量函式
Hour(<表示式>):返回時間表達式的小時數(0-23)。
Minute(<表示式>):返回時間表達式的分鐘數(0-59)
Second(<表示式>):返回時間表達式的秒數(0-59)
例:T = #10:40:11#
HH = Hours(T) 返回10
MM = Minute(T) 返回40
SS = Second(T) 返回11
4. 返回日期函式
DateSerial(year, month, day)
D=dateserial(2008,2,29) 返回#2008-2-29#
D=dateserial(2008-1,8-2,0) 返回#2007-5-31# 當前年的5月1日
Dateserial(year(date()),5,1)前一年的5月1日
Dateserial(year(date())-1,5,1) 後一年的5月1日
Dateserial(year(date())+1,5,1)前一年的5月1日
5 .按指定形式返回日期
.format()
Format(#2010-1-1#,yyyy) 返回2010
四、型別轉換函式
1. 字串轉換字元程式碼函式
Asc(<字串表示式>)返回字串首字元的ASCII值。
例:s = Asc("abcdef"),返回97
2. 字元程式碼轉換字元函式:
Chr(<字元程式碼>)返回與字元程式碼相關的字元。
例: s = Chr(70),返回f;
s = Chr(13),返回回車符
3. 數字轉換成字串函式:
Str(<數值表示式>)將數值表示式值轉換成字串。
注意,當一數字轉成字串時,總會在前頭保留一空格來表示正負。表示式值為正,返回的字串包含一前導空格表示有一正號。
例:s = Str(99)返回“99” ,有一前導空格;s = Str(-6)返回“-6”
4. 字串轉換成數字函式:
Val(<字串表示式>)將數字字串轉換成數值型數字。
注意,數字串轉換時可自動將字串中的空格、製表符和換行符去掉,當遇到它不能識別為數字的第一個字元時,停止讀入字串。
例:val(“123”)
val(“123.34.56”)
Val(12 34)
Val(12a34)
Val(“a123”)
其它轉換函式:
cbool(); cbyte();ccur();cdate();cdec();cint();
clng();csng()’cstr();cvar()