部分概念:
1、在資料庫中產生資料不一致的根本原因是冗余
2、一個事務對某資料加S鎖后,其它的事務不能對該資料加任何型別的鎖(錯誤):所謂S鎖,是事務T對資料A加上S鎖時,其他事務只能再對資料A加S鎖,而不能加X鎖,直到T釋放A上的S鎖
3、一個資料庫只有一個模式和一個內模式
4、使某個事務永遠處于等待狀態,而得不到執行的現象稱為死鎖(錯誤):死鎖是指兩個或兩個以上的行程在執行程序中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去,此時稱系統處于死鎖狀態或系統產生了死鎖,這些永遠在互相等待的行程稱為死鎖行程
5、外模式/模式映像可以保證資料與程式的邏輯獨立性
6、物體完整性和參照完整性是基本關系的兩個不變性
7、由于資料庫中的資料是不斷更新的,因此關系模式是相對變化的(錯誤):關系模式是型,關系是它的值,關系模式是靜態的、穩定的,而關系是動態的、隨時間不斷變化的,因為關系操作在不斷地更新著資料庫中的資料
8、在關系模式R(U,F)中,U=(X,Y,Z),如果F={X->Y, X->Z},則X為候選碼
9、多個屬性構成的碼只能定義為表級完整性約束條件
10、在SQL命令的短語中,WHERE子句中不允許使用聚集函式
11、一個事務對某資料加X鎖后,其它的事務只能對該資料加S鎖(錯誤):事務A對物件T加X鎖以后,其他事務不能對T加任何鎖,只有事務A可以讀寫物件T直到A釋放X鎖
12、若并發事務遵守三級封鎖協議則必然遵守兩段鎖協議
13、死鎖是不能解除的只能預防(錯誤):可剝奪資源和撤銷行程來解除死鎖
14、概念模型依賴于DBMS和硬體設備(錯誤):不依賴硬體
15、用于資料庫恢復的重要檔案是索引檔案(錯誤):用于資料庫恢復的重要檔案是日志檔案
16、子查詢的SELECT陳述句中不能使用ORDER BY子句
17、同一外模式可以被某一用戶的多個應用系統使用,但一個應用程式只能使用一個外模式
18、資料庫中的資料冗余度高(錯誤):資料庫是長期存盤在計算機內有組織可共享的資料集合,具有較小的冗余度,較高的資料獨立性和易擴展性,并為多個用戶共享
19、三級模式結構可提供資料獨立性
20、候選鍵是指一個關系模式中,能夠唯一標識元組的屬性集
21、一個關系模式可以有多個“候選鍵”
22、當主外健不能保證參照完整性和資料一致性時,還可以選擇觸發器來實作
23、用戶自定義完整性是針對某一具體關系資料庫的約束條件,它反映某一具體應用所涉及的資料必須滿足的語意要求
24、SQL語言中,洗掉一個視圖的命令是DELETE(錯誤):是DROP
25、觸發器主要是通過事件進行觸發而被執行的,而存盤程序可以通過存盤程序名字而被直接呼叫
26、資料庫的安全性是指保護資料庫以防止不合法使用所造成的資料泄露、更改或破壞
27、SQL中使用GRANT陳述句向用戶識訓對資料的操作權限(錯誤):GRANK是授權,REVOKE是識訓權限
28、授權時,如果指定了WITH GRANT OPTION子句,獲得某種權限的用戶只能使用該權限,不能傳播該權限(錯誤):沒帶WITH GRANT OPRION是不可以傳播的,但帶了就能傳播
29、關系是笛卡爾積的有限子集
30、關系操作的特點是集合操作方式,即操作的物件和結果都是集合
31、在E-R圖中,用來表示屬性的圖形是橢圓形
32、屬性的取值范圍稱為屬性的域
33、關系表中的每一行稱為屬性(錯誤):關系表中的每一行稱為元組,表中的一列即為一個屬性
34、一個關系模式只能有一個“主鍵”
35、SELECT陳述句中的條件可以用WHERE或HAVING引出,但HAVING必須在GROUP BY之后使用
36、ORDER BY子句僅對檢索資料的顯示有影響,并不改變表中行的內容順序
37、使用WHERE子句是為了限制GROUP BY子句回傳的行個數(錯誤):WHERE在GROUP BY之前使用
38、如果想要查詢結果中不顯示重復的資料,可以使用DISTINCT關鍵字
39、陳述句select * from sale left join vip on vip.vno=sale.vno會顯示sale表的全部內容
40、資料冗余可能導致的問題有浪費存盤空間及修改麻煩和潛在的資料不一致性
41、資料模型是由資料結構、資料操作和完整性約束三部分組成的
42、資料庫是長期存盤在計算機內的、有組織、可共享的大量的資料的集合
43、已知系(系編號,系名稱,系主任,電話,地點), 系關系的主碼是系編號
44、在關系模型中,物體和物體間的聯系都是用關系來表示的
45、候選碼的值可以唯一地表示關系中的一個元組
46、候選碼的屬性稱為主屬性
47、參照完整性是指基本關系R 的主屬性不能取空值(錯誤):若屬性(或屬性組) F 是基本關系 R 的外碼,它與基本關系 S 的主碼 Ks 相對應(基本關系 R 和 S 不一定是不同的關系),則對于 R 中每個元組在 F 上的值必須為:取空值( F 的每個屬性值均為空值)或者等于 S 中某個元組的主碼值
48、任意兩個元組的候選碼可以相同(錯誤):不能
49、關系中行的順序和列的順序都可以交換
50、關系的外碼是允許有空值的
51、資料庫設計中,規范化程度越高模式就越好(錯誤):“分離”越深,產生的關系越多,關系過多,連接操作越頻繁,連接操作會花費很多時間
52、當用戶違反了參照完整性時,DBMS會采取一些策略加以處理,包括拒絕,級聯操作和設定為空值
53、觸發器是實作資料庫完整性的一個重要方法
54、在資料庫中“臟資料”是指未提交隨后又被撤銷的資料
55、封鎖粒度越大,系統中能夠被封鎖的物件就越多,并發度越高(錯誤):封鎖的粒度越大,資料庫所能夠封鎖的資料單元就越少,并發度就越小,系統開銷也越小
56、在資料庫安全性控制中,所有授予出去的權力在必要時都可以用REVOKE陳述句識訓
57、若 R.A→R.B, R.B→R.C,則 R.A→R.C
58、3NF 的模式也一定是 2NF 模式
59、默認情況下,SQL Server用戶執行的每一條SQL陳述句都會被當成單獨的事務自動提交
60、一個資料庫只能有一個外模式,而概念模式和內模式則可有多個(錯誤): 一個資料庫只有一個概念模式、一個資料庫可以有多個外模式、一個資料庫只有一個內模式
61、創建資料表時必須為欄位設定資料型別
62、SQL是關系型資料庫語言的標準,所以不同資料庫產品的SQL完全相同(錯誤):不同
63、洗掉資料時若沒有設定條件,則系統不會洗掉表中的任何記錄(錯誤):全刪
64、在關系模型中,同一表中的不同屬性命名可以相同(錯誤):重名會有錯誤
65、范式的目的主要是為了提高查詢效率(錯誤):范式的目的在于降低資料的冗余性和資料的一致性
66、唯一約束與主鍵約束的共同特點是不允許出現NULL值(錯誤):唯一約束與主鍵約束都要求表中指定列上有一個唯一值
67、視圖是從一個或多個表中匯出來的虛擬表
68、執行COMMIT提交事務后,如果需要恢復,執行ROLLBACK(錯誤):COMMIT提交后對資料庫來說是永久性修改,ROLLBACK是撤銷正在進行的所有沒有提交的修改
69、SQL Server中為所有欄位插入記錄時,若省略欄位名稱,則必須嚴格按照資料表結構插入對應的值
70、觸發器必須手動觸發才會執行(錯誤):觸發器是自動執行的,當用戶對表中資料作了某些操作之后立即被觸發
71、修改資料時若未帶WHERE條件,則表中對應欄位都會被改為統一的值
72、為視圖添加資料,相當于向創建視圖的表添加資料
73、事務的執行要么成功,要么就回傳到事務開始前的狀態
74、全域變數是由系統提供且預先宣告的變數,以“@”開頭,用戶只能使用,不能進行更改(錯誤):全域變數兩個@就不能修改,@開頭為區域變數,必須先用DECLARE命令定義后才可以使用
75、在創建或修改表時,可以通過定義 FOREIGN KEY 約束來創建主鍵(錯誤):FOREIGN KEY是外鍵約束
76、陳述句 DELETE 可以洗掉表結構(錯誤):DELETE 是洗掉表中的資料,不洗掉表結構
77、混合模式下,用戶既可以使用 Windows 身份驗證,也可以使用 SQL Server身份驗證
78、約束只能在創建表時定義,不能在創建表后添加(錯誤):約束可以在創建表時規定(通過 CREATE TABLE 陳述句),或者在表創建之后規定(通過 ALTE…CREATE TABLE table_name)
79、索引對于查詢的結果沒有任何影響,但能加快對表執行SQL陳述句的速度,相應地也就提高了獲取查詢結果的速度
80、當對視圖進行UPDATE、INSERT和DELETE操作時,為了保證被操作的行滿足視圖定義中子查詢陳述句的條件,應在視圖定義陳述句中使用可選擇項WITH CHECK OPTION
----------------------分割線-------------------------
部分選擇題引申出的概念:
1、 資料庫(DB),資料庫系統(DBS)和資料庫管理系統(DBMS):DBS包括DB和DBMS
2、 在SQL語言中的視圖VIEW是資料庫的外模式
3、 關系的完整性約束包括:物體完整性、參照完整性、用戶定義完整性
4、 資料庫系統的資料獨立性體現在:不會因為資料存盤結構與資料邏輯結構的變化而影回應用程式
5、 概念模型是現實世界的第一層抽象,這一類模型中最著名的模型是物體-關系模型
6、 從資料庫的三級模式結構中,內模式有1個
7、 主碼或主鍵的概念主要體現在唯一和非空功能上
8、 關系代數運算是以集合運算為基礎的運算
9、 從一個資料庫檔案中取出滿足某個條件的所有記錄形成一個新資料庫檔案的操作是選擇
10、一般情況下,當對關系R和S進行自然連接時,要求R和S含有一個或者多個共有的屬性
11、在視圖上不能完成的操作是在視圖上定義新的表,可以在視圖上更新視圖、查詢、在視圖上定義新的視圖
12、SQL語言集資料查詢、資料操縱、資料定義和資料控制功能于一體,其中,CREATE、DROP、ALTER陳述句實作資料定義功能
13、若要徹底洗掉資料庫中已經存在的表S,可用DROP TABLE S
14、學生關系模式 S( S#,Sname,Sex,Age),S的屬性分別表示學生的學號、姓名、性別、年齡,要在表S中洗掉一個屬性“年齡”,可選用的SQL陳述句是ALTER TABLE S DROP Age
15、SQL中的視圖機制提高了資料庫系統的安全性
16、SQL語言的GRANT和REVOKE陳述句主要是用來維護資料庫的安全性
17、安全性控制主要是防范是非法用戶,防止他們對資料庫資料的存取
18、規范化理論是關系資料庫進行邏輯設計的理論依據,根據這個理論,關系資料庫中的關系必須滿足每一個屬性都是不可分解的
19、消除了部分函式依賴的1NF的關系模式,必定是2NF
20、關系模式的候選碼可以有一個或多個
21、設有關系模式R(S,D,M),其函式依賴集:F={S→D,D→M},則關系模式R的規范化程度最高達到2NF
22、在關系資料庫設計中,設計關系模式是資料庫設計中邏輯設計階段的任務
23、在資料庫設計中,將ER圖轉換成關系資料模型程序屬于邏輯設計階段
24、現有如下關系:患者(患者編號,患者姓名,性別,出生日期,所在單位),醫療(患者編號,醫生編號,醫生姓名,診斷日期,診斷結果),其中,醫療關系中的外碼是患者編號
25、模式和外模式的對應關系是一對多
26、用GROUP BY子句對資料分組時,在分組中用來進行條件選擇的子句是HAVING
27、若D1={a1,a2,a3},D2={b1,b2,b3,b4}則D1×D2集合中共有元組12個
28、子查詢的條件依賴于父查詢,這類查詢稱為相關子查詢
29、設有關系模式R(A,B,C),F={A→B,C→B},相對于F,R的候選碼為AC
30、自然連接是一種特殊的等值連接
31、規范化的關系模式中,所有屬性都必須是一個不可分的資料項,這樣的關系模式屬于1NF
32、在SQL命令的短語中,定義表時規定某個屬性上取值唯一使用的短語是UNIQUE
33、在 2NF的基礎上,消除了傳遞函式依賴的關系模式,必定是3NF
34、關系模式R(A,B,C,D,E) ,R上的函式依賴集F={AB→E,B→C,C→D },則R的候選碼是AB
35、關系模式R(A,B,C,D,E) ,R上的函式依賴集F={AB→E,B→C,C→D },則R是幾范式1NF
36、SQL的DROP INDEX陳述句的作用是洗掉索引
37、資料庫中的資料除了具有永久存盤、有組織的特點外還具有可共享的特點
38、表中的行稱為一個元組,也稱一個記錄
39、DBMS屬于軟體
40、物體完整性要求主屬性不能取空值,這一點可以通過定義主碼來保證
41、關系規范化中的洗掉操作例外是指不該洗掉的資料被洗掉
42、在資料庫邏輯結構設計中,將E-R模型轉換為關系模型應遵循相應原則,對于兩個不同物體集和它們之間的一個多對多聯系,最少應轉換為3個關系模式
43、資料庫管理系統是系統軟體
44、HAVING不是定義屬性上約束條件的陳述句
45、下列短語中可以在SQL查詢時去掉重復資料的是DISTINCT
46、資料庫中各種操作的執行是通過DBMS來完成的
47、DBA是資料庫管理員
48、表的每一列叫做欄位或屬性
49、表的每一列的所有取值范圍稱為域
50、關系是一組域D1,D2...Dn的笛卡爾積的子集
51、關系代數運算式R-S表示的是在R中且不在S中的元組
52、外連接又有多種形式,主要重點解決資訊不丟失的問題,它不包括自然連接
53、關系模式中如果X->Y,它的含義是任意元組在X上的屬性值相等,則在Y上的屬性值也相等
54、如果X→Y,并且對于X的任何一個真子集X',都有X’不能確定Y, 則稱完全函式依賴
55、Edgar F. Codd(埃德加 ? 科德)因為提出了關系資料庫模型而獲得圖靈獎
56、在應用程式中,普通用戶訪問的是外模式
57、資料庫三級模式體系結構的劃分,有利于保持資料庫的資料獨立性
58、資料模型的要素:資料結構、資料操作、資料的約束條件
59、關系的屬性不可再分
60、關系模式R (商品編號,數量,部門編號,負責人) ,如果有如下規定:每種商品只在一個部門銷售; 每個部門只有一個負責人;每種商品只有一個庫存數量,關系模式R最高達到2NF
61、有三個關系S、R、T如下,則由S、R得到T的運算是自然連接
62、在學生表中有8個欄位,要查找所有年齡小于 20 歲且姓王的男生,并且只顯示學號,姓名兩個欄位,那么應采用的關系運算是選擇投影
63、在資料庫的安全性控制中,授權的資料物件的范圍越小,授權子系統就越靈活
64、允許用戶定義新關系時,參考其他關系的主碼作為外碼的是REFERENCES
65、在資料庫中洗掉觸發器使用DROP
66、從Product表中查詢出Price(價格)高于Pname (產品名稱)為“網通IP電話卡”的所有記錄中的最高價格的查詢陳述句是:SELECT * FROM Product WHERE Price>(SELECT max(Price)FROM Product WHERE Pname=’ 網通IP電話卡’)
67、已知Student表中有一個age列,資料型別是int,如果要限制該列的取值范圍在18到28之間,可以使用:alter table Student add check(age>=18 and age<=28)
68、關系模型是把物體之間的聯系用二維表表示
69、選修(學號,課程號,成績),一名學生可以選修多門課程,一門課程可由多名學生選修,一名學生選修一門課程有相應的成績,則選修關系的非碼屬性是:成績
70、有兩個基本關系:學生(學號,姓名,系號)主碼:學號,系(系號,系名,系主任)主碼:系號,則學生關系的外碼是系號
71、設屬性A是關系R的主屬性,則屬性A不能取空值(NULL),這是物體完整性約束
72、E-R圖用于描述資料庫的概念模型
73、COUNT(*)不忽略空值(NULL)
74、“AGE IN (10,20)”的語意是AGE=10 OR AGE =20
75、SQL陳述句通常稱為結構化查詢語言
76、重命名目標列的方式不包括在重命名后以括號形式表示新的名稱
77、對查詢結果元組進行排序的是ORDER BY
78、中間連接不屬于連接種類
79、資料獨立性最高的是資料庫系統階段
80、資料庫中存盤的是資料以及資料之間的聯系
81、資料庫管理系統能實作對資料庫中資料的查詢、插入、修改和洗掉等操作,這種功能稱為資料操縱功能
82、AB->A是平凡的函式依賴
83、“ORDER BY pno,level”先按pno升序后,相同的pno再按level升序
84、master 資料庫包含了所有系統級資訊,對 SQL Server 系統來說至關重要,一旦受到損壞,有可能導致 SQL Server 系統的徹底癱瘓
85、視圖:視圖可將多個物理資料表抽象為一個邏輯資料表、視圖充當著查詢中指定的表的篩選器、視圖可篩選表中的行
86、一個關系資料庫檔案中的各條記錄前后順序可以任意顛倒,不影響庫中的資料關系
87、UPDATE用于更新表中已有資料的陳述句是
88、sysadmin具有資料庫服務器上全部操作權限
89、外碼( Foregin Key) 是 在一個關系中的一個或一組屬性是另一個關系的主碼
90、SQL的視圖是從基本表或視圖中匯出的
91、在資料庫的表定義中,限制成績屬性列的取值在0到100的范圍內,屬于資料的用戶自定義約束
92、在 SQL 中,WHERE 子句指出的是查詢條件
93、SELECT 陳述句中,"HAVING 條件運算式"用來篩選滿足條件的分組
94、在視圖的定義陳述句中,只能包含資料查詢陳述句
95、一個倉庫可存放多種商品, 同一種商品只能存放在一個倉庫中,倉庫和商品是一對多聯系
96、資料庫設計中,確定資料庫存盤結構,即確定關系、索引、聚簇、日志、備份等資料的存盤安排和存盤結構,這是資料庫設計的物理設計階段
97、在關系資料庫設計中,對關系進行規范化處理,使關系達到一定的范式,例如達到3NF,這是邏輯設計階段的任務
98、在概念模型中的客觀存在并可相互區別的事物稱物體
99、學生和課程之間的對應關系,每名學生可選多門課,每門課也可以有多個學生選,從學生到課程的聯系型別是多對多
100、一個事務的執行,要么全部完成,要么全部不做,一個事務中對資料庫的所有操作都是一個不可分割的操作序列的屬性是原子性
101、SQL語言中的COMMIT陳述句的主要作用是提交事務
102、事務日志用于保存對資料的更新操作
103、解決并發操作帶來的資料不一致問題的主要技術是封鎖
104、死鎖不屬于并發操作帶來的問題
105、DBMS普遍采用封鎖方法來保證調度的正確性
106、事務T在修改資料R之前,必須對其加X鎖,直到事務結束才釋放,這是事務的一級封鎖協議
107、事務的特性:原子性、一致性、隔離性
108、SQL語言中的Rollback陳述句的主要作用是回滾事務
109、在并行處理中,若干事物相互等待對方釋放封鎖,稱為系統進入死鎖狀態
110、不允許任何其他事務對一個鎖定目標加鎖的鎖是排他鎖
111、ER模型中物體用矩形表示
112、并發控制的基本單位是事務
113、SQL Server中事務默認的隔離級別是READ COMMITTED
114、為了防止一個事務在執行時被其他事務干擾,應采取的措施是并發控制
115、 E-R圖中的菱形框“表示”的是聯系
116、建立索引可以加快資料的查詢效率,在資料庫的三級模式結構中,索引屬于內模式
117、在進行資料庫邏輯結構設計時,判斷設計是否合理的常用依據是規范化理論
118、如果事務T獲得了資料項A上的排他鎖,則其他事務對A不能讀也不能寫
119、若事務T對資料項D已加了S鎖,則其他事務對資料項D可以加S鎖,但不能加X鎖
120、在資料庫管理系統的三級封鎖協議中,一級封鎖協議能夠解決的問題是丟失修改
121、事務一提交,其對資料庫中資料的修改就是永久的,以后的操作或故障不會對事務的操作結果產生任何影響,這個特性是事務的持久性
122、在多個事務并發執行時,如果事務Tl對資料項A的修改覆寫了事務T2對資料項A的修改,這種現象稱為丟失資料
123、在判斷死鎖的事務等待圖中,如果等待圖中出現了環路,則說明系統存在死鎖
----------------------分割線-------------------------
指令操作
創建資料庫:
CREATE DATABASE mysql
//創建的資料庫名是關鍵字 CREATE DATABASE `CREATE`
洗掉資料庫:
DROP DATABASE mysql
查看所有的資料庫:
SHOW DATABASES
查看創建資料庫的定義資訊:
SHOW CREATE DATABASE mysql
備份資料庫指令:
mysqldump -u root -p -B mysql mysql01 > d:\\bak.sql
//然后輸入密碼后就備份到了D盤的bak.sql檔案里面了
//-B的作用是備份多個資料庫后面跟多個資料庫名,如果只備份資料庫中的幾個表就不需要-B,直接寫資料庫名然后加需要備份的表名就可以了
恢復資料庫的方法:
//打開DOS輸入下列陳述句
mysql -u root -p
//再輸入密碼
source d:\\bak.sql
//執行后就備份完成了
//也可以打開D盤下面的bak.sql檔案全選復制,在查詢陳述句中執行來恢復
----------------------分割線-------------------------
創建表:
CREATE TABLE mysqltest(
id INT,
`NAME` VARCHAR(255),
`PASSWORD` VARCHAR(32),
`BIRTHDAY` DATE)
表中插入資料:
INSERT INTO t2(birthday,jobtime) VALUES('2022-11-11','2022-11-11 10:10:10');
增加列:
ALTER TABLE t2 ADD image VARCHAR(32) NOT NULL DEFAULT ''
AFTER login_time;
查看表的所有列:
DESC t2
修改列的屬性:
ALTER TABLE t2
MODIFY image VARCHAR(35) NOT NULL DEFAULT ''
洗掉列:
ALTER TABLE t2
DROP image
修改表名:
RENAME TABLE t2 TO t0
修改表的字符集:
ALTER TABLE t0
CHARACTER SET utf8;
修改列名:
ALTER TABLE t0
CHANGE birthday user_birthday VARCHAR(32) NOT NULL DEFAULT ''
修改表中資料:
UPDATE t1
SET salary = 1000
WHERE NAME = 'wo'
//不加WHERE陳述句會導致某列中所有資料被修改
洗掉表中資料:
DELETE FROM t1
WHERE NAME = 'ni'
洗掉表:
DROP TABLE t1
洗掉表中所有資料:
DELETE FROM t1
對表中資料查詢運算:
SELECT id ,(chinese + math + english) AS total_score FROM t2
按某種要求查詢表中資料:
SELECT * FROM t2
WHERE id > 2 AND (chinese + math + english) > 100
//AND OR NOT 邏輯運算
排序查找表中某資料:
SELECT * FROM t2
ORDER BY math
//默認ASC升序,DESC降序
//可在ORDER BY前面加上WHERE篩選
TOP的使用:
SELECT TOP 20 percent name
FROM sh_goods
ORDER BY score DESC
//查找前百分之二十
----------------------分割線-------------------------
統計函式:
SELECT COUNT(*) FROM t2
//統計有幾行,可以用WHERE來約束
//*可以替換位列名,此時會把NULL值排除
求和函式:
SELECT SUM(math) FROM t2
求平均函式:
SELECT AVG(math) FROM t2
求最大最小函式:
SELECT MAX(chinese + math + english) , MIN(chinese + math + english) FROM t2
分組查詢:
SELECT MAX(math) , id
FROM t2 GROUP BY id
//用HAVING進行篩選
//SELECT MAX(math) , id
// FROM t2 GROUP BY id
// HAVING MAX(math) > 40
回傳字符集:
SELECT CHARSET(id) FROM t2
連接字串:
SELECT CONCAT(joa,'和',job) FROM t2
WHERE id = 4
回傳字串出現的位置:
SELECT INSTR('caijiruwo','wo') FROM DUAL
//DUAL是亞元表,可作測驗使用
將字串轉換為大小寫:
SELECT UCASE(joa) FROM t2//大寫
SELECT LCASE(job) FROM t2//小寫
從字串左右邊起取某個個長度的字符
SELECT LEFT(joa,1) FROM t2//左
SELECT RIGHT(job,1) FROM t2//右
統計字符長度(按照位元組):
SELECT LENGTH(joa) FROM t2
回傳字串替換:
SELECT id , REPLACE(joa,'ni','ta') FROM t2
比較字串大小:
SELECT STRCMP('hei','hoo') FROM DUAl
// 相等為0 ,小于 -1 ,大于 1
回傳某段字串:
SELECT SUBSTRING(joa,1,2) FROM t2
回傳去除字串左右空格:
SELECT LTRIM(' asflkj') FROM DUAL;//左
SELECT RTRIM('asfasf ') FROM DUAL;//右
//TRIM會去除左右兩邊
數學函式:
SELECT ABS(-10) FROM DUAL;//絕對值
SELECT BIN(10) FROM DUAL;//轉換為二進制
SELECT CEILING(2.3) FROM DUAL;//向上取整
SELECT CONV(8,10,2) FROM DUAL;//把第一個數從某進制轉換為某進制
SELECT FLOOR(4.3) FROM DUAL;//向下取整
SELECT FORMAT(25.3545,2) FROM DUAL;//保留小數點后幾位
SELECT HEX(17) FROM DUAL;//轉換為十六進制
SELECT LEAST(25,345,34,1) FROM DUAL;//回傳最小值
SELECT MOD(10,3) FROM DUAL;//取余
SELECT RAND() FROM DUAL;//回傳隨機值 0到1之間 RAND([seed])seed是種子,給定值后回傳默認值
時間函式:
SELECT CURRENT_DATE FROM DUAL//當前年月日
SELECT CURRENT_TIME FROM DUAL//當前時分秒
SELECT CURRENT_TIMESTAMP FROM DUAL//當前年月日時分秒
SELECT now() FROM DUAL//當前年月日時分秒
SELECT *
FROM t3
WHERE DATE_ADD(send_time,INTERVAL 10 MINUTE ) >= NOW();//回傳十分鐘前發布的訊息
//DATE_ADD加上時間
SELECT *
FROM t3
WHERE DATE_SUB(NOW(),INTERVAL 10 MINUTE) <= send_time//回傳十分鐘前發布的訊息
//DATE_SUB減去時間
//MINUTE可以換成YEAR,DAY等
SELECT DATEDIFF('2023-02-23','2021-01-01') FROM DUAL//兩天時間差
SELECT TIMEDIFF('10:20:13','07:42:12') FROM DUAL//時間差時分秒
SELECT YEAR(NOW()) FROM DUAL//回傳年,MONTH DAY,月日
SELECT UNIX_TIMESTAMP() FROM DUAL//回傳1970-01-01到現在的秒數
SELECT FROM_UNIXTIME(1253135135 , '%Y-%m-%d') FROM DUAL//從1970-01-01經過這么多秒轉換為對應日期
SELECT USER() FROM DUAL;//查看登錄的用戶和登錄IP
SELECT DATABASE();//查詢資料庫名稱
SELECT MD5('ni') FROM DUAL//MD5加密成32位密文,防止資料庫被爆破后對方輕易獲取密碼
SELECT PASSWORD('ni') FROM DUAL;//不同于MD5的加密方式,mysql資料庫的用戶密碼就是這種加密方式
流程控制函式:
SELECT IF(TRUE,'ni','wo') FROM DUAL//第一個為真就回傳第二個,為假就回傳第三個
SELECT IFNULL(NULL,'ta') FROM DUAL//第一個不為空就回傳第一個
SELECT CASE
WHEN TRUE THEN 'yes'
ELSE 'no' END//類似于if ELSE陳述句
SELECT id ,IF(chinese IS NULL,0,chinese)
FROM t2
//不能用 = 要用 IS 進行判斷
查詢增強:
//mysql中日期之間可以直接比較
//模糊查詢中 %是指代0到任意個字符 _ 指代單個字符
//判斷某一列的值是否為NULL用IS不用=
//統一使用時,應按照GROUP BY,HAVING,ORDER BY,LIMIT的順序使用
----------------------分割線-------------------------
分頁查詢:
SELECT * FROM t2
ORDER BY id
LIMIT 0 , 3;//顯示從一到第三行
多表查詢:
SELECT cname,t3.home
FROM t3,t4
WHERE t3.home = t4.home
//不用正確的WHERE的話會出現笛卡爾積的情況
SELECT id,name
FROM sh_goods
WHERE id NOT IN(SELECT goods_id FROM sh_goods_comment)
//用NOT IN查詢第二張表中沒出現的第一張表的資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/552397.html
標籤:MySQL
上一篇:索引初識
下一篇:返回列表