首頁  >  文章  >  資料庫  >  Mysql常用查詢語句

Mysql常用查詢語句

迷茫
迷茫原創
2017-01-23 16:53:351223瀏覽

一查詢數值型資料:

 SELECT * FROM tb_name WHERE sum > 100;

 查詢謂詞:>,=,,!=,!>,!,= 
二查詢字串

 SELECT * FROM tb_stu  WHERE sname  =  '小刘'
 SELECT * FROM tb_stu  WHERE sname like '刘%'
 SELECT * FROM tb_stu  WHERE sname like '%程序员'
 SELECT * FROM tb_stu  WHERE sname like '%PHP%'

三日期型資料

 SELECT * FROM tb_stu WHERE date = '2011-04-08'

 附註:不同資料庫對日期型資料有差異: :
 (1)MySQL:SELECT * from tb_name WHERE birthday = '2011-04-08'tbIph2) irthday = '2011-04-08'
 (3)Access:SELECT * from tb_name WHERE birthday = #2011-04-08#
 
四查詢邏輯運算元
空白資料

 SELECT * FROM tb_name WHERE type = 'T'
 SELECT * FROM tb_name WHERE type = 'F'

 注:相當於PHP中的!=

 
六利用變數查詢數值型資料

 SELECT * FROM tb_name WHERE address <>&#39;&#39; order by addtime desc

注:利用變數查詢資料時,傳入SQL的變數不必用引號括號括號來,因為PHP中的字串與數值型資料進行連接時,程式會自動將數值資料轉換成字串,然後與要連接的字串進行連接
 
七利用變數查詢字串資料 

 SELECT * FROM tb_name WHERE id = &#39;$_POST[text]&#39;

完全匹配的方法"%%"表示可以出現在任何位置
 
八查詢前n筆記錄

SELECT * FROM tb_name WHERE name LIKE &#39;%$_POST[name]%&#39;

 limit語句與其他語句,如order by等語句共同使用,會使用SQL語句千變萬化,使程式非常靈活
 
 
九化,使程式非常靈活地查詢後n筆記錄

 SELECT * FROM tb_name LIMIT 0,$N;


十查詢從指定位置開始的n筆記錄

 SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n
 注意:資料的id是從0開始的 rr
十二查詢指定時間段的資料



 SELECT  要尋找的欄位 FROM 表名 WHERE 欄位名稱 BETWEEN 初始值 AND 瞭如下函數,利用這些函數可以很方便地實現按年、月、日進行查詢

 year(data):返回data表達式中的公元年分所對應的數值

 month(data):返回data表達式中的月分所對應的數值 day(data):傳回data表達式中的日期所對應的數值 
十四查詢大於指定條件的記錄

 SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n

十五查詢結果不顯示重複欄位記錄

 SELECT DISTINCT 名 FROM 表名 WHERE 查詢條件 
註:SQL語句中的DISTINCT必須與WHERE子句合併使用,否則輸出的資訊不會有變化 ,且欄位不能用*代替

 

十六NOT與謂詞組合條件的查詢
 (1)NOT BERWEEN … AND … 介於起始值和終止值間的資料時行查詢 可改為 終止值
 (2)IS NOT NULL 對非空白值進行查詢 
 (3)IS NULL 對空值進行查詢
 (4)NOT IN 該式根據使用的關鍵字是包含在列表內還是排除在列表外,指定表達式的搜索,搜索表達式可以是常數或列名,而列名可以是一組常數,但更多情況下是子查詢
 
十七顯示資料表中重複的記錄和記錄條數

 SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num

十八對資料進行降序/升序查詢
     SELECT 名 FROM tb_stu WHERE 條件 ORDER BY 字段 DESC 降序
     SELECT 字段名稱 FROM tb_stu WHERE 
 
十九對資料進行多條件查詢
 SELECT 字段名 FROM tb_stu WHERE 條件 ORDER BY 字段1 ASC 字段2 DESC  …
 注意:對查詢不是資訊進行多條件排序是為了共同限制記錄的輸出,一般情況下,由於查詢不是單一條件效果上有一些差異。
 
二十對統計結果進行排序
 函數SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可實現對字段的求和,函數中為ALL時為所有該字段所有記錄求和,若為DISTINCT則為此欄位所有不重複記錄的欄位求和
 如:


SELECT name,SUM(price) AS sumprice  FROM tb_price GROUPU ,price ASC

二十一單列資料分組統計

SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC

 注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误
 
二十二多列数据分组统计
 多列数据分组统计与单列数据分组统计类似 
SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名 GROUP BY 字段 ORDER BY 新字段1 DESC

SELECT id,name,SUM(price*num) AS sumprice  FROM tb_price GROUP BY pid ORDER BY sumprice DESC

 注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
 
二十三多表分组统计

 SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn