特定SQL語句記錄

2021-08-14 10:22:33 字數 1644 閱讀 5553

一些特定條件下的sql操作記錄,不定時新增。。

1.通過sql語句得到某張特定的表的主鍵:

利用系統表information_schema.key_column_usage 的方法

select column_name from information_schema.key_column_usage 

where table_name='表名'

2.通過sql語句查詢某張表的字段總數

select count(1) from information_schema.columns where table_schema='資料庫名' and table_name='表名'; 

3.通過sql語句查詢某個欄位中不重複的所有資料

select distinct fieldname from tablename

4.通過sql語句獲取時間格式後面擷取的時間值(不要前面的年月日)

select * from (select date_format(alarmtime,'%t') _alarmtime from alarm_record ) a 

where a._alarmtime >'08:00:00' and a._alarmtime

//其中 _alarmtime是把日期格式擷取了後面的時間的新列,這裡是指把大於8點,小於20點的資料篩選出來。

如果這樣寫的話:

select * from (select *,date_format(alarmtime,'%t') _alarmtime from alarm_record ) a 

where a._alarmtime >'08:00:00' and a._alarmtime

是指把所有列的資料篩選出來

5.通過sql語句查詢某張表中所有資料的數量

select count(*) from tablename //結果如下

為了減輕資料庫引擎的負擔可以這樣寫

select count(id) from tablename //結果如下

6.拿一組資料的某個資料最大值,不用limit的時候可以在裡面先用max(欄位名)篩選,可以選出某欄位最大的值,不是整條資料拿,只是拿那個欄位的值。

7.group by +欄位名的使用

使用group by 可以把資料中有相同。。。。

8.把資料按保留小數點後兩位輸出

format(23456.789,2) 這個函式會把23456.789對小數部分進行四捨五入操作,整數部分從右向左每3位乙個逗號進行格式化輸出,結果為23,456.79 這是個字串型的資料,一般情況下不用,因為有','.

convert(23456.789,decimal(10,2)) 這個函式同樣是以四捨五入進行擷取,獲得的數字是23456.19,一般情況下用這個函式,如果是整數的話就會顯示整數。

truncate(23456.789,2)  這個函式直接把小數點兩位以後的數字去掉,顯示結果是23456.78

9.union 和union all的用法

union是把多個sql語句結果組合到乙個結果集中,要求所有組合的結果集的結果欄位名字一樣,型別相同,而且,位置順序應該一一對應,如果第乙個結果集和第二個結果集的順序不一致的話,以第乙個結果集為準(雖然不會報錯,但是對資料的影響很大,當用函式max(field)操作總結果集的時候,會發生資料對應不上的情況,順序取值)。

SQL語句記錄

1,group by 分組查詢語句eg select t.send user,count as sms count from sms history t group by t.send user order by sms count desc2,ibatis對映中oracle db隨機抽取10條記錄...

sql語句學習記錄

高階教程語句 1,like 操作符 一般用於模糊查詢 select f rom 表名稱 where 列名稱 like k 用 代替前面的模糊資料,後面是以k字元結尾 這裡要補充下萬用字元 替代 0 個或多個字元 替代乙個字元 charlist 字元列中的任何單一字元 charlist 或 不在字元列...

SQL從特定位置檢索記錄

top只能從表頭部檢索資料 offsetfetch子句從結果集的特定位置檢索特定數量的記錄 offset指定在查詢執行之前要排除的行數,fetch指定在查詢執行時要返回的行數 例題 從表中篩選第16 26條記錄 select from employee order by employeeid off...