Ⅰ 電子表格宏程序的問題: 1、用VBA程序讀取B4單元格的值(假設標記為x=20) 2、刪除第x+1行
Excel問題集合
引用問題
我在excel中想實現這么一個功能,如單元格D12有一個數據是4,現在我想引用A4的數據,但4是由D12提供的,即如何實現A4=A(D12)。也就是,在Excel中,A7單元,能否實現把後面的數字用算式來代替,如A(3+4),或者是單元格的嵌套,A(D12),懇請高手解答。
解答:①=indirect("a"&d12)
②我的想法:借一個單元格如B4用,鍵入="A"&D12 在需引用的單元格鍵入=INDIRECT(B4)
即可,第二個:C4是3,C5是4 B4="A「&C4+C5 ,同①。
如何在一列列出工作薄中的所有表(表名無規律)
以下宏將在a列傳回所有工作表名稱。(很實用)
Sub Maco1()
For i = 1 To Sheets.Count
Cells(i, 1) = Sheets(i).Name
Next
End Sub
18位身份證號碼輸入的幾種解決方法
相信在EXCEL這個軟體中如何輸入15位或18位身份證號碼的問題已經困撓了許多人,因為在EXCEL中,輸入超過11位數字時,會自動轉為科學計數的方式,比如身份證號是:123456789012345,輸入後就變成了:1.23457E+14,要解決的方法有非常非常......多種哦,呵呵,現在為大家說幾種比較簡單快速的方法:
1、在A1單元輸入號碼時,在前面先輸入』號,就是:』123456789012345,這樣單元格會默認為該單元為文本方式,會完整顯示出15個號碼來,而不會顯示那令人討厭的科學計數方式來了。
2、如果已經輸入了大量的號碼,全部以科學計數顯示的話,而又懶的按照上面的方法一個一個的重新輸入的話,也有這個好方法哦,比如已在單元A1:A100輸入了號碼,按以下步驟做:》選擇單元A1:A100》單擊滑鼠右鍵,設置單元格式》選擇自定義,在『類型』中輸入『0』即可,輕松搞定,呵呵!!
3、還有一種用函數來解決的方法:在A1:A100已經輸入大量的號碼時,在B1單元中輸入:=trim(' 'a1),注意兩個』之間是空格,這個公式的意思:先在A1單元15位號碼前加個空格符號,然後用trim這個函數把空格符號去掉。輸完後,B1單元也是顯示出完整的15位數字了。
用countif算出數值大小在50~60之間的單元格個數
解答:①你可以綜合一下呀! =countif(a1:a9,">=50")-countif(a1:a9,">60")
②{=SUM((a1:a9<60)*(a1:a9>50))}
③為什麼{=SUM((a1:a9<60)*(a1:a9>50))}可以求出符合條件的個數,按理後面應再加一待求和區域如"B1:B9"等等,不知數組計算的內部機制是怎樣的,不知誰能給個解釋,謝謝!!
④這個數組公式是這樣運算的: a1:a9區域的數值分別與60比較。假如a1:a9的數依次為15,25,35,45,55,65,75,85,95.那麼(a1:a9<60)返回{true,true,true,true,true,false,false,false,false},同理(a1:a9>50)返回{false,false,false,false,true,true,true,true,true}。然後(a1:a9<60)*(a1:a9>50)則返回{false,false,false,false,true,false,false,false,false}。因為*表示and的意思。只有當and的對象都為真時結果才為真。。excel里用1表示true;0表示 false。有時需要將true或false轉換成數值,可以*1或+0
幾個工作表生成一個列印文件一次列印
解答:先按 Ctrl鍵 + 其它要一起列印的工作表就會成為一個群組,列印的頁數可延續到下一個Sheet
自動計算應收款滯納金
要求在給定的應收日期、滯納金率、當前日期(自動取)的基礎上自動計算出應收滯納金。
解答:=(DATEDIF(應收日期,NOW(),"d"))*滯納金率(每天)*應收金額
SUM函數難題
A B
234 230
12
10 13
如何用函數計算出下面幾個數據
1。A和B都有數據且A>B的個數
2。A欄在相應的B欄有數據的情況下的數據總和,例如A1對應B1有數據,A3對應B3有數據,則求A1+A3的和。希望都能用一個函數求出所要的結果。謝謝
解答:=SUM(($A$1:$A$10<>"")*($B$1:$B$10<>"")*($A$1:$A$10>$B$1:$B$10))
=SUM(($A$1:$A$10<>"")*($B$1:$B$10<>"")*($A$1:$A$10>$B$1:$B$10)*($A$1:$A$10+$B$1:$B$10))
記得輸入公式後要按ctrl+shift+enter
工作表中的小寫字母都變成大寫
解答:請運行以下程序:(測試通過)
Sub ConvertToUpperCase()
Dim Rng As Range
Worksheets("Sheet1").UsedRange.Select
For Each Rng In Selection.Cells
If Rng.HasFormula = False Then
Rng.value = UCase(Rng.value)
End If
Next Rng
End Sub
用COUNTIF計算整個B列中含有「F」這個字元的單元格的個數
c1=COUNTIF(b1:b130,b129),(b129單元格內的字元是「F」),問題是隨後在向表格中添加新行131、132、133.....之後,c1單元格中公式統計的結果還是1-129行的,怎麼才能讓c1中實時顯示添加新數據後的統計結果?
解答:c1=COUNTIF(b:b,b129)
自動記錄出車情況
現有一表格,每天記錄50輛不同車號的車輛的「出車里程」和「回庫里程」,需要列印一清單,自動統計每輛在庫車輛的當前里程,請問該如何做 (結果放在其它sheet中,為方便顯示這里和數據放在一個sheet中了 ) ?
解答:可以用數組公式:
假設"此處數據不斷增加"所在工作表的名字為"SHEET1". 在"此處需要更新"所指的單元格內輸入公式=MAX(IF(OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$65536))=A2,OFFSET(Sheet1!$B$2,,,COUNTA(Sheet1!$B$2:$B$65536))))",按CTRL+SHIFT+ENTER 結束,之後向下填充公式.
整點記錄坐標值
我在監測一個點的電壓值,每天正點記錄一次,這樣每天就產生了24個值,現要進行一個月,共產生了720個值。根據這720個值,用EXCEL作一個圖表,橫坐標是時間,單位是----天,縱坐標是測量值。難點:橫坐標每個刻度為一天,如設分類軸刻度線之間的分類數為24 的話,橫坐標每個刻度下顯示為:1 25 49,而其單位為天,那不就成了第1天過了,就到了第25天?如設分類軸刻度線之間的分類數為1的話,可是我每天有24個值?
解答:我試驗了一下,發現還是能夠解決的。橫坐標為時間,每天24小時,一個月30天,共計720個數據,縱坐標為數值,這樣做出來的表格非常長,數據這樣排,第一列(0小時,1小時,......23小時,0小時,1小時,.....23小時,)這樣總共重復30天,第二列為每天24個數據,做折線圖(第四種),先按照向導一步步做下去,刪除第一個系列,就可以了。做出來的圖像橫坐標(分類軸)要調整,刻度調整為標簽間的分類數為1,就可以達到目的!剩下可以手工在每天的開頭處加上日期(可以用文本框),不知道這樣解決可以嗎?
請問如何把在Excel中繪制的曲線圖表另存為jpg或gif格式的圖片
解答:選定圖表部分,復制它,打開可以編輯jpg或gif格式的軟體,然後粘貼保存為jpg或gif格式文件即可。
round函數
解答:不要用工具條上的顯示小數位數來控制小數位數,它只是顯示這幾位,實際還是按原來的數計算。如:1.2345,你顯示兩位,為1.23,而實際他是按1.2345去計算的,要用round函數,round(數據,2)即可。如果怕繁的話,可在選項里設置按顯示計算,呵呵,試試看。
解答2:我是做財務工作的,這一點有較深的體會
就是無論用什麼函數都要在最外面加上 round(),不然的話因為那一兩分錢定會被領導狠狠說一頓
再有兩條經驗
1、如果准備作大一些的表格,盡量不要使用 「合並單元格」 以免以後使用函數麻煩;
2、要分清你作的表格主要是使用來存儲數據,還是用來列印輸出,如果想兩者兼顧,小一點的表格還可以,大了就不好辦了。
工作表引用
比如說現在Sheet2!a1引用Sheet1!a1,Sheet3!a1引用Sheet2!a1,那麼有什麼辦法可以表示Sheet(n)!a1引用Sheet(n-1)!a1。我是Execl方面的菜鳥,希望各位大蝦能給我解決的方法或者思路也行啊。
解答1:用VBA.Sheets(n).Cells(a, 1) =Sheets(n-1).Cells(a, 1)
又問:ActiveCell.FormulaR1C1 = "=SUM(RC[-2]:RC[-1],_______!R[-1]C)" .在_____處,我應該怎麼填,才可以得到上一張表格?
答:在空格處寫上: sheets(activesheet.index-1) .注意如果當前工作表是第一張(即 activesheet.index-1=0)時會出錯。
或:=INDIRECT("sheet"&A1&"!$A$1")
匯總
有這樣一個問題,學校里共有24個科目(每個科目都有其代碼,每門科目都有它相應的教材費),但學生最多隻能選其中4門科目,那麼我在一個表裡每個記錄中存儲學生所選的4門科目的代碼,並要在該表裡匯總4門科目的總教材費,怎麼匯總。(各門科目代碼及對應的教材費存在另一個表裡)。
解答:你可以這樣:
1,表2:
序號 科目 教材費 /1 語文 120 /2 數學 100 /3 英語 150 /4 政治 70 /5 歷史 110 /6 地理 90 /7 物理 250 /8 化學 180
2,表1:
姓名 科目1 科目2 科目3 科目4 教材費合計/趙 1 2 3 4 440* /錢 2 3 4 5 430 /孫 3 4 5 6 420 /李 4 5 6 7 520 /張 5 6 7 8 630 .其中教材費單元格(打*號處,即F2)公式如下:
=VLOOKUP(B2,Sheet2!A:C,3)+VLOOKUP(C2,Sheet2!A:C,3)+VLOOKUP(D2,Sheet2!A:C,3)+VLOOKUP(E2,Sheet2!A:C,3) 。其下單元格復制公式。
在EXCEL2000中可否實現票面分解
解答:我在excel 中試驗了一下,發現票面分解還是比較簡單的,下面是我的做法:
A B C D
1 票面金額 655389.26 /2 面值 張數 余額 /3 100 6553(公式為:int(b1/a3) 89.26(公式為:b1-c3*a3) /4 50 1(公式為:int(d3/a4) 39.26(公式為:D3-A4*C4) /5 20 1 19.26 /6 10 1 9.26 /7 5 1 4.26 /8 2 2 0.26 /9 1 0 0.26 /10 0.5 0 0.26 /11 0.2 1 0.06 /12 0.1 0 0.06 /0.05 1 0.01 /0.02 0 0.01 /0.01 1 0.00 /第五行以下的數據就不需要一一輸入了,選中C列和D列(C4:D15),按ctrl+D,結果就出來了。
年齡及獎學金問題
打開Excel工作表,建立如下表格所示的表格:
A B C D E F G H I J K L M
姓名 性別 生日 年齡 年級 語文 數學 外語 政治 平均 工資 獎勵 總額
王明 男 2 89 98 92 87
1 設置生日為11-28-1998的形式,並根據生日計算出學生的年齡。 /2 對平均分>=90分,80<=平均分<90,60<=平均分<80的獎勵金額數放在單元格N5..N7中,請利用公式計算出每位同學贏得的獎金。 /3 1年級學生工資為80元,2年級工資為100元,3年級工資為110元,請計算出每位同學的工資數,並根據工資數和獎勵數計算每位同學的工資總額。
解答:1. 計算年齡:=INT(((YEAR(NOW())-YEAR(C2))*12+MONTH(NOW())-MONTH(C2))/12) (注意學生生日在C 列)
2. 計算工資: =IF(LEN(E2)>0,CHOOSE(E2,80,100,110),"") (注意學生年級在E列)
3. 獎勵: =IF(J2>=90,$N$5,IF(J2>=80,$N$6,IF(J2>=60,$N$7,""))) (平均分在J列)
隔行求和問題
若有20列(只有一行),需沒間隔3列求和,該公式如何做?前面行跳躍求和的公式不管用。
解答:假設a1至t1為數據(共有20列),在任意單元格中輸入公式:=SUM(IF(MOD(TRANSPOSE(ROW(1:20)),3)=0,(a1:t1)) /按ctrl+shift+enter結束即可求出每隔三行之和。
在EXCEL里取數值的一部分用什麼函數
打比方說有一個數字123456,我只想取它的後三位,也就是說只需要456,應該用什麼函數。
解答:假設A1的值為123456, 用=RIGHT(a1,3)可以取其後三位./ 你如果想取其中的幾位,不妨試試mid函數。
用什麼函數可以插入字元
00020304T0239 0400020304T0239 /00020404T0211 0400020404T0211 /00020604T0199 0400020604T0199 /00020704T0216 0400020704T0216 /00021304T0241 0400021304T0241 /00021404T0222 0400021404T0222 /00021504T0222 0400021504T0222 /00021704T0139 0400021704T0139 /就像上表一樣,怎樣用第一列的數據形成第二列的數據,即在特定位置加上幾個相同字元串?
Ⅱ 假設向資料庫表中插入或刪除100條記錄,如果操作到第50條時資料庫突然斷開,資料庫內部會怎麼處理
這個要看具體實現和具體資料庫行為,即使是一個語句的操作,也可能在不同資料庫的不同版本裡面有的部分寫入成功,有的全部回滾~這個具體問題具體分析了
Ⅲ 注冊表裡的哪些是絕對不能刪的
注冊表是Windows95及Windows98的核心資料庫,表中存放著各種參數,直接控制著Windows的啟動、硬體驅動程序的裝載以及一些 Windows應用程序運行的正常與否.
它的每一個分支都是一個句柄,並以六組不同的關鍵字值來區分,它們分別為:HKEY_CLASSES_ROOT、HKEY_CURRENT_user、HKEY_LOCAL_MACHINE、HKEY_user、HKEY_CURRENT_CONFIG、HKEY_DYN_DATA,每個分支又進一步被分解成更細的分支。事實上,registry中的許多東西對於用戶和系統管理員來說用處不大,但是研究發現直接編輯HKEY_CLASSES_ROOT和HKEY_CURRENT_user會帶給我們很多的欣喜,當然我們也發現更改其他分支的設置同樣能為用戶提供有用的東西。
1、HKEY_CLASSER_ROOT。該份之下至少包括100個關鍵字,這個分支下主要包括ole數據,還包括文件擴展名和文件或應用程序的關聯,改變改分支中的數據結構和內容將直接影響到系統軟體的應用,此下的信息都被保存在system.dat文件中。
2、HKEY_user。在這個關鍵字下顯示的信息都保存在user.dat文件中,這包含了與具體用戶有關的desktop(桌面)配置、網路連接以及start菜單。如果用戶的計算機被配置為使用戶的配置文件,那麼系統就會為每個用戶都創建一個單獨的user.dat文件。當一個用戶登錄到計算機上時,Windows98將讀取那個用戶的user.dat文件,並把該文件放入內存中的registry中。
3、HKEY_CURRENT_user。它是適用於當前用戶的HKEY_ user部分。如果只有一個用戶,即確省用戶,那麼HKEY_user\.Default和HKEY_CURRENT_user是相同信息的不同的顯示方式。
4、HKEY_LOCAL_MACHINE。這是針對計算機硬體以及安裝的軟體所設定的分支。如果計算機有多個硬體配置,那麼每個配置的信息都保存在這里。如果你察看一下該分支下的SOFTWARE下面的信息,你會發現生產已安裝軟體的公司的名字都在這兒了,這個分支為關於每個公司產品的與具體機器有關的信息存放提供一個方便的地方。在這兒,你還可以發現應用程序名字、版本數、應用程序路徑名以及以及硬體設置。microsoft也使用這個分支注冊它的軟體。
5、HKEY_CURRENT_CONFIGURATION。在這里用戶可以找到顯示設置情況和使用的列印機。
6、HKEY_DYN_DATA。這里保存了Windows操作性能參數的數據,當Windows98載入後,該信息被保留在ram中,同時被不斷更新。
Ⅳ 假設線性表採用順序表為存儲結構,其插入與刪除在什麼位置最快
都是在末尾插入和刪除最快
如果插入在中間甚至在表頭,那樣要後移插入位置後面的所有結點一個單位,而如果是在表尾插入的話,只需要直接添加一個結點即可。
刪除同理,如果我們是在中間刪除,要將刪除位置後面的結點都前移一個單位,而如果是在表尾刪除的話,只需要將最後一個刪除點即可。
順序存儲結構最耗時的是移動結點的操作。
Ⅳ 創建存儲過程實現role表中角色信息的刪除 規則:如果該角色有用戶,則不能刪除 狀態:1表示刪除成功,-1表
一
1、不同之:組織方式.文件系統的文件通常是由操作系統規定的,但是功能方面比較簡單,方便查找定位之用,文件與文件之間不能調用數據;而資料庫中的文件是由資料庫軟體組織的,其程度很高,能方便查找,更重要是它們之間聯系緊密!能相互傳遞據.
2、(1)物理數據層。它是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。
(2)概念數據層。它是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯系,是存貯記錄的集合。它所涉及的是資料庫所有對象的邏輯關系,而不是它們的物理情況,是資料庫管理員概念下的資料庫。
(3)邏輯數據層。它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。
3、程序和數據的獨立性是資料庫的主要特徵之一.作為工程資料庫管理系統,也必須保持這個特徵.為此,介紹了具體的工程資料庫管理系統EDRMS程序與數據的獨立性實現,並用實例予以說明.
二
1、a關系:關系是一個二維表,表的每行對應一個元組,表的列對應屬性。
b屬性:指關系中的列;
域:值的集,每個屬性的取值的范圍;
元組(Tuple):給出一組域產生笛卡兒乘積D1,D2…Dn,產生笛卡兒乘積D1*D2*….Dn=其中(d1,d2..dn)為元組。
c
關系的表:是一個簡單的表,不準許出現組合的屬性。
d用二維表的形式來表示實體集屬性間的關系,以及實體之間聯系的形式。
三
1、等值連接:在連接條件中使用等於號(=)運算符比較被連接列的列值,其查詢結果中列出被連接表中的所有列,包括其中的重復列。
自然連接:在連接條件中使用等於(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連接表中的重復列。
四
1、在sql Server 2000 中,資料庫由存儲特定結構化數據集的表集合組成。表中包含行(有時稱作記錄或元組)和列(有時稱作特性)的集合。表中的每一列都設計為存儲某種類型的信息(例如,日期、名稱、美元金額或數字)。表上有幾種控制(約束、規則、觸發器、默認值和自定義用戶數據類型)用於確保數據的有效性。表上可以有索引,利用索引可以快速地找到行。可將聲明引用完整性 (DRI) 約束添加到表上,以確保不同表中相互關聯的數據保持一致。資料庫還可以存儲過程,這些過程使用 Transact-SQL 編程代碼對資料庫中的數據進行操作,如存儲對表數據提供自定義訪問的視圖。
2、SQL Server 2000 使用一組文件映射資料庫。資料庫中的所有數據和對象(如表、存儲過程、觸發器和視圖)都存儲在文件組中。
3、主要數據文件,次要數據文件,事務日誌文件
4、因為利用事務日誌備份可以將資料庫恢復到特定的即時點(如輸入不想要的數據之前的那一點)或故障發生點。在媒體恢復策略中應考慮利用事務日誌備份。
五
1、表是包含資料庫中所有數據的資料庫對象。表定義為列的集合。
2、每行代表惟一的一條記錄,而每列代表記錄中的一個域。
3、一對多關系,多對多關系,一對一關系
六
1、Transact-Sql語言的分類如下:
數據類型
變數說明
用來說明變數的命令
流程式控制制語句
2、null表示空值;與其他的比較既非空於空值的區別;null在表中即為空擋數據。
5、通常與LIKE關鍵字一起來使用
可以用在檢查約束中使用LIKE
在後面的查詢語句中還會經常使用到
6、ORDER BY是一個可選的子句,它允許你根據指定要order by的列來以上升或者下降的順序來顯示查詢的
9、.SQL;文本文檔
八
資料庫中的索引與書籍中的目錄類似。在一本書中,利用目錄可以快速查找所需信息,無須閱讀整本書。在資料庫中,索引使資料庫程序無須對整個表進行掃描,就可以在其中找到所需數據。資料庫中的索引是一個表中所包含的值的列表,其中註明了表中包含各個值的行所在的存儲位置。可以為表中的單個列建立索引,也可以為一組列建立索引;索引採用B樹結構。索引包含一個條目,該條目有來自表中每一行的一個或多個列(搜索關鍵字)。B樹按搜索關鍵字排序,可以在搜索關鍵字的任何子詞條集合上進行高效搜索。例如,對於一個A、B、C列上的索引,可以在A,A、B,A、B、C上對其進行高效搜索。
在隨SQL Server 2000 提供的pubs示例資料庫中,employee表在emp_id列上有一個索引。當SQL Server執行一個語句,在employee 中根據指定的emp_id值查找數據時,它能夠識別emp_id列的索引,並使用該索引查找所需數據。如果該索引不存在,它會從表的第一行開始,逐行搜索指定的emp_id值。
SQL Server 2000為某些類型的約束(如PRIMARY KEY和UNIQUE約束)自動創建索引。可以通過創建不依賴於約束的索引,進一步對表定義進行自定義。
不過,索引為性能所帶來的好處卻是有代價的。帶索引的表在資料庫中會占據更多的空間。另外,為了維護索引,對數據進行插入、更新、刪除操作所花費的時間會更長。在設計和創建索引時,應確保對性能的提高程度大於在存儲空間和處理資源方面的代價。
在考慮是否為一個列創建索引時,應考慮被索引的列是否以及如何用於查詢中。索引對下列查詢很有幫助:
l 搜索符合特定搜索關鍵字值的行(精確匹配查詢)。精確匹配比較是指查詢使用 WHERE 語句指定具有給定值的列條目。例如WHERE emp_id = 'VPA30890F'。
l 搜索其搜索關鍵字值為范圍值的行(范圍查詢)。范圍查詢是指查詢指定其值介於兩個值之間的任何條目。例如WHERE job_lvl BETWEEN 9 and 12。
l 在表 T1 中搜索根據聯接謂詞與表 T2 中的某個行匹配的行(索引嵌套循環聯接)。
l 在不進行顯式排序操作的情況下產生經排序的查詢輸出,尤其是經過排序的動態游標。
l 在不進行顯式排序操作的情況下,按一種有序的順序對行進行掃描,以允許基於順序的操作,如合並聯接和流聚合。
l 以優於表掃描的性能對表中所有的行進行掃描,性能提高是由於減少了要掃描的列集和數據總量(該查詢有覆蓋索引可供使用)。
l 搜索插入和更新操作中重復的新搜索關鍵字值,以實施PRIMARY KEY和 UNIQUE 約束。
l 搜索已定義了FOREIGN KEY約束的兩個表之間匹配的行。
在很多查詢中,索引可以帶來多方面的好處。例如,索引除了可以覆蓋查詢外,還使得可以進行范圍查詢。SQL Server 2000可以在同一個查詢中為一個表使用多個索引,並可以合並多個索引,以便搜索關鍵字共同覆蓋一個查詢。另外,SQL Server會自動確定利用哪些索引進行查詢,並且能夠在表被改動時確保該表的所有索引都得到維護。
一個表如果建有大量索引會影響 INSERT、UPDATE 和 DELETE 語句的性能,因為在表中的數據更改時,所有索引都須進行適當的調整。另一方面,對於不需要修改數據的查詢(SELECT 語句),大量索引有助於提高性能,因為SQL Server 2000有更多的索引可供選擇,以便確定以最快速度訪問數據的最佳方法。對小型表進行索引可能不會產生優化效果,因為 SQL Server 2000在遍歷索引以搜索數據時,花費的時間可能會比簡單的表掃描還長。
九
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。
對其中所引用的基礎表來說,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其他資料庫的一個或多個表,或者其他視圖。分布式查詢也可用於定義使用多個異類源數據的視圖。如果有幾台不同的伺服器分別存儲組織中不同地區的數據,而用戶需要將這些伺服器上相似結構的數據組合起來,這種方式就很有用。通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。
視圖通常用來集中、簡化和自定義每個用戶對資料庫的不同認識。視圖可用作安全機制,方法是允許用戶通過視圖訪問數據,而不授予用戶直接訪問視圖基礎表的許可權。從SQL Server 2000 復制數據時也可使用視圖來提高性能並分區數據。
視圖可以簡化用戶操作數據的方式。可將經常使用的聯接、投影、聯合查詢和選擇查詢定義為視圖,這樣,用戶每次對特定的數據執行進一步操作時,不必指定所有條件和限定。例如,一個用於報表目的,並執行子查詢、外聯接及聚合以從一組表中檢索數據的復合查詢,就可以創建為一個視圖。視圖簡化了對數據的訪問,因為每次生成報表時無需寫或提交基礎查詢,而是查詢視圖。
視圖允許用戶以不同的方式查看數據,即使他們同時使用相同的數據時也如此。這在具有不同目的和技術水平的用戶共享同一個資料庫時尤為有利。例如,可定義一個視圖以僅檢索由客戶經理處理的客戶數據。視圖可以根據使用該視圖的客戶經理的登錄 ID 決定檢索哪些數據。
可使用視圖將數據導出至其他應用程序。例如,可能希望使用pubs資料庫中的stores和sales表在Excel中分析銷售數據。為此,可創建一個基於stores和sales表的視圖。然後使用數據導入導出工具導出由視圖定義的數據。
Transact-SQL UNION 集合運算符可在視圖內使用,以將來自不同表的兩個或多個查詢結果組合成單一的結果集。這在用戶看來是一個單獨的表,稱為分區視圖。例如,如果一個表含有華盛頓的銷售數據,另一個表含有加利福尼亞的銷售數據,即可從 UNION 創建這兩個表的視圖。該視圖代表了這兩個區域的銷售數據。使用分區視圖時,首先創建幾個相同的表,指定一個約束以決定可在各個表中添加的數據范圍。視圖即使用這些基表創建。當查詢該視圖時,SQL Server 自動決定查詢所影響的表,並僅引用這些表。例如,如果一個查詢指定只需要華盛頓特區的銷售數據,則 SQL Server 只讀取含有華盛頓特區銷售數據的表,而並不訪問其餘的表。分區試圖可基於來自多個異類源(如遠程伺服器)的數據,而不僅僅局限於同一資料庫中的表。例如,要將分別存儲組織中不同區域數據的幾台遠程伺服器上的數據組合起來,可以創建分布式查詢,從每個數據源中檢索數據,然後基於這些分布式查詢創建視圖。所有查詢都只從包含查詢所請求數據的遠程伺服器上讀取表中的數據,其他在視圖中由分布式查詢引用的伺服器均不被訪問。
十
在使用SQL Server 2000 創建應用程序時,Transact-SQL編程語言是應用程序和SQL Server資料庫之間的主要編程介面。使用Transact-SQL程序時,可用兩種方法存儲和執行程序。可以在本地存儲程序,並創建向SQL Server發送命令並處理結果的應用程序;也可以將程序在SQL Server中存儲為存儲過程,同時創建執行存儲過程並處理結果的應用程序。
SQL Server 2000中的存儲過程與其他編程語言中的過程類似,利用存儲過程可以完成以下任務。
l 接受輸入參數並以輸出參數的形式將多個值返回至調用過程或批處理。
l 包含執行資料庫操作(包括調用其他過程)的編程語句。
l 向調用過程或批處理返回狀態值,以表明成功或失敗(以及失敗原因)。
l 可使用 Transact-SQL EXECUTE 語句運行存儲過程。存儲過程與函數不同,因為存儲過程不返回取代其名稱的值,也不能直接用在表達式中。
使用SQL Server 2000中的存儲過程代替存儲在客戶計算機本地的Transact-SQL程序有很多的好處。
l 允許模塊化程序設計。只需創建過程一次並將其存儲在資料庫中,以後即可在程序中調用該過程任意次。存儲過程可由在資料庫編程方面有專長的人員創建,並可獨立於程序源代碼而單獨修改。
l 允許更快執行。如果某操作需要大量Transact-SQL代碼或需重復執行,存儲過程將比Transact-SQL批代碼的執行要快。將在創建存儲過程時對其進行分析和優化,並可在首次執行該過程後使用該過程的內存中版本。每次運行Transact-SQL語句時,都要從客戶端重復發送,並且在SQL Server 2000每次執行這些語句時,都要對其進行編譯和優化。
l 減少網路流量。一個需要數百行Transact-SQL代碼的操作由一條執行過程代碼的單獨語句就可實現,而不需要在網路中發送數百行代碼。
l 可作為安全機制使用。即使對於沒有直接執行存儲過程中語句的許可權的用戶,也可授予他們執行該存儲過程的許可權。
十一
SQL Server 2000 提供了兩種主要機制來強制業務規則和數據完整性:約束和觸發器。觸發器是一種特殊類型的存儲過程,它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應INSERT、UPDATE或DELETE語句。觸發器可以查詢其他表,並可以包含復雜的Transact-SQL語句。觸發器和觸發它的語句要作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如磁碟空間不足),則整個事務即自動回滾。
觸發器可通過資料庫中的相關表實現級聯更改。觸發器可以強制CHECK約束定義的約束更為復雜的約束。與CHECK約束不同,觸發器可以引用其他表中的列。例如,觸發器可以使用另一個表中的SELECT比較插入或更新的數據,以及執行其他操作,如修改數據或顯示用戶定義錯誤信息。觸發器也可以評估數據修改前後的表狀態,並根據其差異採取對策。一個表中的多個同類觸發器(INSERT、UPDATE或DELETE)允許採取多個不同的對策以響應同一個修改語句。
約束和觸發器在特殊情況下各有優勢。觸發器的主要好處在於它們可以包含使用Transact-SQL代碼的復雜處理邏輯。因此,觸發器可以支持約束的所有功能;但它在所給出的功能上並不總是最好的方法。
實體完整性總應在最低級別上通過索引進行強制,這些索引或是PRIMARY KEY和UNIQUE約束的一部分,或是在約束之外獨立創建的。假設功能可以滿足應用程序的功能需求,域完整性應通過CHECK約束進行強制,而引用完整性則應通過FOREIGN KEY約束進行強制。
十二
先創建登錄名,可以是windows登錄名也可以sql登錄名
windows登錄名是windows操作系統已經存在的用戶名
sql登錄名要在sql中創建而得的
要創建windows登錄名:
例如:已經在windows中存在一個pkxz用戶,域名是xxiang
create login [xxiang\pkxz] from windows with default_database = css
alter login pkxz with name=ppp
drop login pkxz
注意:只有administrators組的用戶可以訪問所有實例,並可獲所有訪問權,
其餘本地用戶組里的組,只能相對應的訪問實例。
例如:chenshanshan是users用戶組里的,是[xxinag2006\pkxz]實例的域用戶帳戶,
chenshanshan只能訪問這個實例,並可獲所有訪問權。
例如:joan是users用戶組里的,是[xxinag2006\pkxz]實例的登錄名,joan只能訪問這個實例。
要創建sql登錄名:
sql用戶名是pkxz
create login pkxz with password ='xx121314' , default_database = css
alter login pkxz with password = 'pp'
drop login pkxz
注意:sql用戶名只能相對應的訪問實例
例如:pc是[xxiang\pkxz]的登錄名,只能訪問這個實例,不可訪問別的實例。
兩者都創建了登錄名,且都是css為默認資料庫
然後創建完後把登錄名授予角色
sp_addsrvrolemember 'pkxz','sysadmin'
sp_dropsrvrolemember 'pkxz','sysadmin'
伺服器角色只能訪問相對應的實例操作!不能訪問別的實例!
創建用戶
Ceate user pkxz_user from login pkxz with default_schema = pkxz_schema
如果沒有創建架構的話,默認是dbo架構,這里是pkxz_schema
創建架構
創建架構的同時還可以創建該架構所擁有的表,視圖,羨慕且可以對這些對象設軒許可權。
create schema pkxz_schema authorization pkxz_user
Create Table pp (pp int)
Grant Select To pkxz_user_1
資料庫角色
可以自己添加,還有內置固定資料庫角色
自己添加角色
create role CreateTable authorization pkxz_user // CreateTable是角色名
分配許可權
Grant Insert To CreateTable
添加成員
sp_addrolemember 'CreateTable','pkxz_user_1'
public角色的兩個特點,1、初始狀態沒有許可權 2、所有的資料庫的成員都是他的成員
當修改了public角色,其實更改了所有資料庫成員的許可權
許可權的管理
Grant 授予 Revoke 收回許可權 Deny 否認許可權
例如:將一個表pt的插入許可權授予pkxz_user_1
Grant Insert On pt To pkxz_user_1
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
vaela
Ⅵ 假設在word編輯窗口中已創建了一個4×3的表格,要求實現在第二行前增加一行,並刪除
13、Excel表格的單元格中顯示的內容與單元格的格式無關。 (w )
14、Excel中資料庫表格與其他內容之間至少應該留出一個空白行或空白列。 ( w )
15、不能為表格中的某個單元格單獨設置邊框顏色。 (w )
16、Word表格合計時,什麼時候都可用工具欄上的自動求和按鈕。 (w )
17、Excel中高級篩選的條件區域中每行各個條件之間為「與」的關系。 ( w )
18、當Excel公式中單元格內容數據變化時,公式會自動計算相應的結果。(w )
19、Excel中排序時,無論是遞增還是遞減排序,空白單元格總是排在最後。 (w )
20、Excel中利用常用工具欄中的「格式刷」按鈕可以復制公式。 ( r)
Ⅶ 請問一下EXCEL操作高手:保護工作表時,在可編輯區域的組合圖標為什麼不能用呢怎麼解決這個問題
在設置保護時,允許類型里勾選「編輯對象」
Ⅷ SQL資料庫某個表中的PSSWORD設置數字密碼 為什麼不能用 還要翻譯嗎
二.Windows下的SQLite的源代碼是哪個軟體壓縮包?
sqlite-amalgamation-3_6_22.zip是SQLite的windows下源碼文件
三.Window下的SQLite命令行工具
sqlite-3_6_22.zip
四.Window下的SQLite開發庫,即動態鏈接庫以及DEF文件
sqlitedll-3_6_22.zip
五.SQLite最新版本是:3.6.22
六.b<=a && a <= c 的SQL語句如何寫
在SQLite中, 表達式"a BETWEEN b AND c"等於表達式 "a >= b AND a <= c",在比較表達式時,a可以是具有任何親和性
七.a的值是x,y,z其中一個值,SQL語句如何寫
SQLite把表達式 "a IN (x, y, z)" 和 "a = z OR a = y OR a = z"視為相等.
八.如何創建制定目錄的資料庫
sqlite3 D:/Project/SyncML/Lib/debug/atsync.db
九.創建數據的注意事項
如果不往資料庫裡面添加任何的表,這個資料庫等於沒有建立,不會在硬碟上產生任何文件,如果資料庫已經存在,則會打開這個資料庫。
十.如何添加一張數據表
create table student(name varchar(10), age smallint);
十一.如何往數據表中添加數據
insert into student values('張三', 20);
十二.如何通過sqlite3.dll與sqlite3.def生成sqlite3.lib文件
LIB /DEF:sqlite3.def /machine:IX86
十三.如何查詢SQLite工具的軟體版本
也就是sqlite3.exe應用程序小工具的版本號
方法一:進入sqlite3.exe所在目錄,在命令行執行如下命令
sqlite3 –version
方法二:
select sqlite_version();
十四.如何在字元串中使用單引號(')?
SQL 標准規定,在字元串中,單引號需要使用逃逸字元,即在一行中使用兩個單引號
十五.如果刪除了大量數據,而又想縮小資料庫文件佔用的空間,執行 VACUUM 命令
vacuum;
十六.在SQLite中,如何在一個表上添加或刪除一列?
SQLite 有有限地 ALTER TABLE 支持。你可以使用它來在表的末尾增加一列,可更改表的名稱。 如果需要對表結構做更復雜的改變,則必須重新建表。 重建時可以先將已存在的數據放到一個臨時表中,刪除原表, 創建新表,然後將數據從臨時表中復制回來。
如,假設有一個 t1 表,其中有 "a", "b", "c" 三列, 如果要刪除列 c ,以下過程描述如何做:
開始事物處理
BEGIN TRANSACTION;
創建臨時表格t1-backup
CREATE TEMPORARY TABLE t1_backup(a,b);
將資料庫表t1中的所有數據拷貝到表t1-backup中
INSERT INTO t1_backup SELECT a,b FROM t1;
刪除表格t1
DROP TABLE t1;
創建表格t1
CREATE TABLE t1(a,b);
將資料庫表t1-backup中的所有數據拷貝到表t1中
INSERT INTO t1 SELECT a,b FROM t1_backup;
刪除備份表格t1-backup
DROP TABLE t1_backup;
事物提交
COMMIT;
十七.如何查詢當前的編碼的編碼格式
pragma encoding;
十八.SQLite支持哪些數據類型些?
NULL 值為NULL
INTEGER 值為帶符號的整型,根據類別用1,2,3,4,6,8位元組存儲
REAL 值為浮點型,8位元組存儲
TEXT 值為text字元串,使用資料庫編碼(UTF-8, UTF-16BE or UTF-16-LE)存儲
BLOB 值為二進制數據,具體看實際輸入
但實際上,sqlite3也接受如下的數據類型:
smallint 16 位元的整數
interger 32 位元的整數
decimal(p,s) p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值 ,s是指小數點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float 32位元的實數。
double 64位元的實數。
char(n) n 長度的字串,n不能超過 254。
varchar(n) 長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n) 和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。 這個形態是為了支援兩個字元長度的字體,例如中文字。
vargraphic(n) 可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date 包含了 年份、月份、日期。
time 包含了 小時、分鍾、秒。
timestamp 包含了 年、月、日、時、分、秒、千分之一秒。
十九.如果將某個欄位設置為INTEGER PRIMARY KEY屬性,有什麼特性?
如果將聲明表的一列設置為 INTEGER PRIMARY KEY,則具有:
1.每當你在該列上插入一NULL值時, NULL自動被轉換為一個比該列中最大值大1的一個整數;
2.如果表是空的, 將會是1;
注意該整數會比表中該列上的插入之前的最大值大1。 該鍵值在當前的表中是唯一的。但有可能與已從表中刪除的值重疊。要想建立在整個表的生命周期中唯一的鍵值,需要在 INTEGER PRIMARY KEY 上增加AUTOINCREMENT聲明。那麼,新的鍵值將會比該表中曾能存在過的最大值大1。
二十.欄位聲明中有AUTOINCREMENT屬性,有什麼與眾不同的含義?
要想建立在整個表的生命周期中唯一的鍵值,需要在 INTEGER PRIMARY KEY 上增加AUTOINCREMENT聲明。那麼,新的鍵值將會比該表中曾能存在過的最大值大1。
2010年SQLite學習筆記之二
一.建立資料庫
Ⅸ 請教如何假設將20130101在excel表裡設置成2013.01.01這種格式這個01的0不能被去掉,謝謝了
假設數據在A1,那麼在B1輸入公式來弄吧
=LEFT(A1,4)&"."&MID(A1,5,2)&"."&RIGHT(A1,2)
弄好後,復制B1,選擇性粘貼值就行了