查詢操作
1.檢索信息
SELECT * FROM table_name渐行;
SELECT * FROM table_name WHERE (條件) AND (條件)畜号;
SELECT clo_name1,clo_name2 FROM table_name WHERE (條件)切距;
2.對查詢結(jié)果的排序
SELECT * FROM table_name ORDER BY clo_name;(默認(rèn)升序)
SELECT * FROM table_name ORDER BY clo_name desc;(降序)
注:對于升序排列帐姻,NULL值總是出現(xiàn)在開頭付枫,對于降序排列掐隐,它總是出現(xiàn)在末尾狗热;
3.限制查詢結(jié)果
(1)SELECT * FROM table_name where (條件) ORDER BY clo_nume LIMIT num;
(2)SELECT * FROM table_name? LIMIT num1虑省,num2匿刮;
第一個值廉丽,給出從查詢結(jié)果的開頭部分跳過的行數(shù)承耿,第二個璃氢,返回的行數(shù)
(3)如果想從某個表里隨機取出一行或者幾行黄痪,可以聯(lián)合使用LIMIT子句和ORDER BY RAND()子句
SELECT * FROM table_name ORDER BY RAND() LIMIT num;
4.對輸出進(jìn)行計算和命名
(1)CONCAT合并字段
SELECT CONCAT(clo1,clo2,...) FROM table_name;
(2)利用as name 為列分配一個別名钢猛,可以省略as
SELECT CONCAT(clo1,clo2,...) as name FROM table_name;
SELECT 1 one , 2 two;
注:如果一個查詢的列名有誤或者丟失缅叠,請檢查在某兩個列之間是否丟失了逗號
5.處理日期逆航,日期格式“2017-01-01”
(1)將某個DATE列與日期值進(jìn)行比較
SELECT * FROM table_name where date='2017-01-01';
注:比較運算符< , > , = , <= , >= , <>
(2)檢索日期的某個部分穴豫,YEAR() , MONTH() , DAYOFMONTH()
SELECT * FROM table_name WHERE MONTH(birth)='2';檢索出生在二月的數(shù)據(jù)
(3)關(guān)于日期的其余函數(shù)
CURDATE()返回當(dāng)前的日期
TIMESTAMPDIFF()計算兩個日期的差值
TO_DAYS() 將日期轉(zhuǎn)換為天數(shù)
DATE_ADD() 日期加,DATE_SUB() 日期減
SELECT (TIMESTAMPDIFF (YEAR,birth,YEAR(CURDATE())))+1 AS age
WHERE name=‘person_name’纱兑;
SELECT DATE_ADD('1970-01-01' , INTERVAL 10 YEAR)呀闻; INTERVAL 間隔
6.模式匹配
模式匹配需要使用 LIKE 或 NOT LIKE 那樣的運算符
“-”代表任意的一個字符,“%”代表任意的多個字符潜慎,包括空序列
SELECT * FROM table_name? WHERE cloumn1 LIKE 'w%';
7.生成統(tǒng)計信息
COUNT() , DISTINCT()去重 捡多,GROUP BY 分組 , HAVING
(1).SELECT COUNT(*) FROM table_name;
(2).select sex,count(*)from tab_name group by sex铐炫;
(3)SELECT state垒手,COUNT(*) AS count FROM tab_name GROUP BY state
ORDER BY count LIMIT 4;? 找出4個州人數(shù)最多的
(4).HAVING語句與WHERE語句相似,都可以用來設(shè)定輸出行所必須滿足的查詢條件倒信。
與WHERE不同之處在于科贬,它可以使用COUNT()那樣的匯總函數(shù)的結(jié)果。帶有HAVING語句的查詢鳖悠,
特別適合用于查找在某個數(shù)據(jù)列里重復(fù)出現(xiàn)的值榜掌,也可用于查詢不重復(fù)的值,
此時使用HAVING count=1即可
8.多表查詢