mysql相關總結

2021-10-02 19:41:48 字數 2395 閱讀 8423

3.limit用法彙總

#公式

#當前頁curpage,每頁多少資料pagenum

#查詢第二頁的資料

=1 limit 10,10

;#查詢第三頁的資料

=1 limit 20,10

;#limit n,表示查詢的展示的行數

=1 limit 10

;#總記錄數

select count(*

=1;#總頁數

# totalpage 總頁數,totalnum-總記錄,pagenum - 每頁記錄數

int totalpage =

(totalnum + pagenum -1)

/pagenum

#用於前端頁面統計分頁

優化:當出現limit m,n時候,m十分大的時候,查詢過程中會掃瞄m次數,會影響效能,優化方法,新增對應的條件,來進行優化,減少掃瞄m的值,另外可以根據id進行條件優化,減少查詢次數,從而優化查詢效率。

總結:1.limit後面只能跟純數字。

2.limit後面跟的offset,count都必須大於0,並且offset預設可以為0.

3,limit後面不能表示式。

4,分頁查詢時,排序不能有二義性,不然排序出來就是亂序,可在條件中新增其他字段作為條件判斷。

4.檢視

檢視的跟表的區別,檢視是將所需要查詢的資料作為一宗封裝,類似一張臨時表,跟原始表進行相隔離,如果經常需要這些資料,可以建立檢視來方便查詢。另外檢視簡化了大量複雜的sql實現過程,從而使訪問者不能訪問原始資料表,保證了資料的安全性。

(1)檢視是已經編譯好的 sql 語句,是基於 sql 語句的結果集的視覺化的表,而表不是。

(2)檢視沒有實際的物理記錄,而基本表有。

(3)表是內容,檢視是視窗。

(4)表占用物理空間而檢視不占用物理空間,檢視只是邏輯概念的存在,表可以及時對它 進行修改,但檢視只能用建立的語句來修改。

(5)檢視是檢視資料表的一種方法,可以查詢資料表中某些字段構成的資料,只是一些 sql 語句的集合。從安全的角度來說,檢視可以防止使用者接觸資料表,因而使用者不知道表結構。

(6)表屬於全域性模式中的表,是實表;檢視屬於區域性模式的表,是虛表。

(7)檢視的建立和刪除只影響檢視本身,不影響對應的基本表。

兩者的聯絡:

檢視(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有記錄) 都來自基本表,它依據基本表存在而存在。乙個檢視可以對應乙個基本表,也

可以對應多個基本 表。檢視是基本表的抽象和在邏輯意義上建立的新關係

5.執行sql語句時,報錯1055錯誤資訊,這是因為在mysql5.7之後設定了限制。在sql_mode中預設存在only_full_group_by,sql語句未通過only_full_group_by語義檢查所以報錯。

only_full_group_by:only_full_group_by要求select語句中查詢出來的列必須是明確的(其他語句也是一樣)。

以sql語句select columes from table group by list為例:columns必須是聚集函式或者在group by後的表示式list中,並且list中必須包含主鍵,否則也會報錯。

insert、update、delete語句都會報錯(但不影響sql語句的執行),因為這三種語句執行之前也會執行查詢操作。

以主鍵為id的表為例:

select count(1) from customer group byname;該sql執行成功,因為count是聚集函式;

select * from customer group byname;該sql執行失敗,因為*中包含主鍵id,而group by後的表示式中並沒有包含id

select name from customer group byname;該sql執行成功,因為name包含在group by後的表示式中

select name, contact from customer group byname;該sql執行失敗,因為contact沒有包含在group by後的表示式解決方法如下:

a.需要查詢的字段加上any_value()函式括起來,即可解決。

b。win下把 mysql 中的my.ini中的sql_mode配置項修改則可,把only_full_group_by項刪除,如果是linux則在my.cnf中。

3…如果配置項中沒有sql_mode項,通過sql語句修改

select @@sql_mode

將查到的值去掉only_full_group_by項,將其他項新增到my.ini配置檔案中

sql-mode=strict_trans_tables,no_auto_create_user,no_engine_substitution。

MySQL相關總結

事務的特性 面試 a原子性 說明事務是不可分割的。要麼全部成功,要麼全部不成功 c一致性 事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態 i隔離性 乙個執行緒的事務不能被其他執行緒事務所打擾。d永續性 永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故...

MySql相關語句總結

cmd命令列進入資料庫mysql u root p 敲回車 輸入設定的密碼建立資料庫create database mydb mydb是需要建立的資料庫的名字 檢視建立資料庫的語句show create database mydb 改變當前的資料庫use mydb 檢視所有的資料庫show data...

MySQL相關知識學習 MySQL總結

1 獲得當前日期 時間 date time 函式 now mysql select now 2017 05 17 17 16 33 2 獲得當前日期 時間 date time 函式 sysdate sysdate 日期時間函式跟 now 類似,不同之處在於 now 在執行開始時值就得到了,sysda...