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...