net start mysql
found_rows函數 返回select的總行數
哪種操作能夠實現實體完整性 設置外鍵
數據模型三要素:數據結構、數據操作、完整性約束,哪項不屬于數據模型 網狀模型(層次、網狀、關系、面向對象模型)
觸發器主要用于監視某個表的insert、update以及delete等更新操作
start transaction(不是begin ~)
sql語言是非過程化語言
某事物”有什么性質。
“我”讓“某物”干什么事情。
這就是非過程化的。
過程化的是“讓某物怎么樣去干事情”
正則表達式中用*匹配任意一個字符,不是_
sql中是%:匹配一個或多個字符;
_:匹配任意單個字符;
escape:定義轉義字符。
操作符 BETWEEN ... AND 會選取介于兩個值之間的數據范圍,不同的數據庫對 邊界的處理方式是有差異的。(MySql between 是包含兩邊的邊界值,而not between 不含邊界)
eg: id between 3 and 7 等價與 id >=3 and id<=7
eg:id not between 3 and 7 等價與 id <3 or id>7
存儲過程是一組預先定義并編譯的sql語句
字符串長度函數 lengh()
使用SELECT語句隨機地從表中挑出指定數量的行,可以使用的方法是( )
在ORDER BY子句中使用RAND()函數,并用LIMIT子句定義行數
視圖是一種常用的數據對象,它是提供____和____數據的另一種途徑,可以簡化數據庫操作
A、查看,存放
mysql比較運算符沒有 == ,是=
mysql邏輯運算符(沒有&& ||)
運算符號作用
NOT 或 !邏輯非
AND邏輯與
OR邏輯或
XOR邏輯異或
位運算符
運算符號作用
&按位與
|按位或
^按位異或
!取反
<
>>右移
優先級
not/and/or
union連接結果集:
句式:SELECT field1,field2... FROM table1 UNION SELECT field3,field4... FROM table2;
注意:
前后所選字段數目需相同,否則報錯;
所選出的內容顯示時,會以前面的字段名稱命名(允許前后sql字段不一樣,即任何查詢語句都可以用union連接);
UNION ALL 表示將包括重的內容一起顯示出來 ,UNION 或UNION DSTINCT表示去重顯示。
行在表中的順序無關緊要,任意兩行的值不能相同;列在表中的順序無關緊要,任意兩列的值可以相同
游標只能用于存儲過程和函數
Mysql中不允許有空表存在,即一張表不允許沒有字段;字符型數據常量標志可以是單引號或雙引號,不允許混用;
數據庫名稱中有$合法,有.和/不合法
GROUP BY必須得配合聚合函數來用,分組之后你可以計數(COUNT),求和(SUM),求平均數(AVG)等。沒有這些的sql是不對的
??
create table 表名(字段類型,字段名1 字段類型,字段名2.....)
select 9/3 3.0000
12.當所查詢的表不在當前數據厙時,可用數據庫.所有者名稱.對象名稱格式來指出表或視圖對象
13.當某字段要使用AUTO_INCREMENT的屬性時,除了該字段必須是INT類型外,該字
段還必須是關鍵字段或索引字段
14.在SELECT語句的FROM子句中最多可以指定256個表或視圖
15.ODBC是一種答案開放式數據厙連接
insert觸發器可以引用名為NEW的虛擬表,訪問剛剛插入的行;
delete觸發器可以引用名為OLD的虛擬表,訪問剛剛刪除的行;
select (NULl <=> NULL) is NULL 結果是0
select 'Abc'='abc' 結果為1
select '張三\n張四' 結果為'張三\n張四'
update語句可以有where和limit子句
trim函數只可以除去半角空格
null和NULL、Null一樣
數據庫和表名字都可以使用中文
結構化查詢語言不僅僅是查詢
'2008-12-5'和'20081205'都可以表示同一天
所有timestamp插入null時自動填充為當前日期和時間
group by結果集中每個組只能有一行數據
為了更好支持中文,mysql安裝后就設置缺省字符集gb2312---錯誤
五、簡答題
1.什么是數據厙鏡像?它有什么用途?
答案:
數據厙鏡像即根據DBA的要求,自動把整個數據厙或者其中的部分關鍵數據復制到另一個
磁盤上。每當主數據厙更新時,DBMS自動把更新后的數據復制過去,即DBMS自動保證鏡
像數據與主數據的一致性。
數據厙鏡像的用途有:
一是用于數據厙恢復。當出現介質故障時,可由鏡像磁盤繼續提供使用,同時DBMS自動利用鏡像磁盤數據進行數據厙的恢復,不需要關閉系統和重裝數據厙副本。
二是提高數據厙的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像數據庫上的數據,而不必等待該用戶釋放鎖。
2.為什么事務非正常結束時會影響數據厙數據的正確性
答案:
事務執行的結果必須是使數據厙從一個一致性狀態變到另一個一致性狀態。如果數據庫系統運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數據厙所做的修改有一部分己寫入物理數據庫,這時數據厙就處于一種不正確的狀態,或者說是不一致的狀態。
3.什么是物理設計:
答案:
對一個給定的邏輯數據模型選取一個最適合應用環境的物理結構的過程,稱為數據庫的物理設計。物理結構,主要指數據庫在物理設備上的存儲結構和存取方法。
4.什么是日志文件?為什么要設立日志文件?
答案:
(1)日志文件是用來記錄事務對數據厙的更新操作的文件。
(2)設立日志文件的目的是:進行事務故障恢復;進行系統故障恢復;協助后備副本進行介質故障恢復
5.在數據厙系統生存期中,生存期的總開銷可分為幾項:
答案:規劃開銷、設計開銷、實現與測試開銷、操作開銷、維護開銷
6.數據厙中為什么要有恢復子系統?它的功能是什么?
答案:
因為計算機系統中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響數據庫中數據的正確性,重則破壞數據庫,使數據庫中全部或部分數據丟失,因此必須要有恢復子系統恢復子系統的功能是:把數據厙從錯誤狀態恢復到某一己知的正確狀態(亦稱為一致狀態或完整狀態)。
7.數據厙運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞數據厙數據?
答案:答:數據厙系統中可能發生各種各樣的故障,大致可以分以下幾類:
(1)事務內部的故障;
(2)系統故障;
(3)介質故障;
(4)計算機病毒
事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據厙數據。
8.登記日志文件時為什么必須先寫日志文件,后寫數據庫?
答案:
把對數據的修改寫到數據庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成了一個。
如果先寫了數據厙修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復這個修改了。
如果先寫日志,但沒有修改數據厙,在恢復時只不過是多執行一次UNDO操作,并不會影
響數據厙的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數據庫的修改。
9.數據厙轉儲的意義是什么?
答案:
數據轉儲是數據厙恢復中采用的基本技術。所謂轉儲即DBA定期地將數據厙復制到磁帶或
另一個磁盤上保存起來的過程。當數據厙遭到破壞后可以將后備副本重新裝入,將數據庫恢復到轉儲時的狀態。
靜態轉儲:在系統中無運行事務時進行的轉儲操作。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低數據庫的可用性。
動態轉儲:指轉儲期間允許對數據厙進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時后援副本上的數據并不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數據,使得后援副本上的數據不是數據厙的一致版本。
為此,必須把轉儲期間各事務對數據庫的修改活動登記下來,建立日志文件(logfile).這樣,后援副本加上日志文件就能得到數據厙某一時刻的正確狀態。
轉儲還可以分為海量轉儲和增量轉儲兩種方式。
海量轉儲是指每次轉儲全部數據厙。增量轉儲則指每次只轉儲上一次轉儲后更新過的數據。
從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來更簡單些。但如果數據厙很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。
10.試述事務的概念及事務的四個特性。
答案:
事務是用戶定義的一個數據厙操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。
事務具有四個特性:原子性、一致性、隔離性)和持續性。
11,數據厙恢復的基本技術有哪些?
答案:
數據轉儲和登錄日志文件是數據厙恢復的基本技術。
當系統運行過程中發生故障,利用轉儲的數據厙后備副本和日志文件就可以將數據厙恢復到故障前的某個一致性狀態。
12.數據厙設計中的規劃階段的主要任務:
答案:是進行建立數據厙的必要性及可行性分析,確定數據厙系統在組織中和信息系統中的地位,以及各個數據厙之間的聯系
標簽:事務,試題,數據庫,轉儲,故障,mysql,日志,數據
來源: https://www.cnblogs.com/ccdat/p/11261852.html