非常实用的MySQL函数全面总结详解示例分析教程 |
1.MySQL涓叧浜庡嚱鏁扮殑璇存槑"姒傚康"锛氱被浼糺ava銆乸ython涓殑鏂规硶锛屽皢涓缁勯昏緫璇彞灏佽鍦ㄦ柟娉曚綋涓紝瀵瑰鏆撮湶鏂规硶鍚嶏紱 "濂藉"锛氣厾闅愯棌浜嗗疄鐜扮粏鑺傦紱鈪℃彁楂樹唬鐮佺殑閲嶇敤鎬э紱 "璋冪敤"锛歴elect 鍑芥暟鍚?瀹炲弬鍒楄〃) [from 琛╙锛?/p> "鐗圭偣"锛氣厾鍙粈涔?鍑芥暟鍚?锛涒叀骞蹭粈涔?鍑芥暟鍔熻兘)锛?/p> "鍒嗙被"锛氣厾鍗曡鍑芥暟锛涒叀鍒嗙粍鍑芥暟锛?/p> "浠涔堟槸鍗曡鍑芥暟锛?锛氫綔鐢ㄤ簬琛ㄤ腑鐨勬瘡涓琛岃褰曪紝涓鏉¤褰曞嚭鏉ヤ竴涓粨鏋滐紱 "浠涔堟槸鑱氬悎鍑芥暟锛?锛氫綔鐢ㄤ簬涓琛屾垨鑰呭琛岋紝鏈缁堣繑鍥炰竴涓粨鏋滐紱 2.鍗曡鍑芥暟鍒嗙被瀛楃鍑芥暟锛?/p> 鏁板鍑芥暟锛?/p> 鏃ユ湡鍑芥暟锛?/p> 鍏朵粬鍑芥暟锛?/p> 娴佺▼鎺у埗鍑芥暟锛?/p> 3.瀛楃鍑芥暟1锛?code>length(str)锛氳幏鍙栧弬鏁板肩殑瀛楄妭涓暟锛?/p> 瀵逛簬 瀵逛簬 鎿嶄綔濡備笅 锛?/p> 2锛? 鎿嶄綔濡備笅锛?/p> 3锛?code>upper(str)锛氬皢瀛楃涓殑鎵鏈夊瓧姣嶅彉涓哄ぇ鍐欙紱 鎿嶄綔濡備笅锛?/p> 4锛?code>lower(str) 锛氬皢瀛楃涓墍鏈夊瓧姣嶅彉涓哄皬鍐欙紱 鎿嶄綔濡備笅锛?/p> 5锛?code>substr(str,start,len)锛氫粠start浣嶇疆寮濮嬫埅鍙栧瓧绗︿覆锛宭en琛ㄧず瑕佹埅鍙栫殑闀垮害锛?娌℃湁鎸囧畾len闀垮害锛氳〃绀轰粠start寮濮嬭捣锛屾埅鍙栧埌瀛楃涓叉湯灏俱傛寚瀹氫簡len闀垮害锛氳〃绀轰粠start寮濮嬭捣锛屾埅鍙杔en涓暱搴︺?/p> 鎿嶄綔濡備笅锛?/p> 6锛?code>instr(str,瑕佹煡鎵剧殑瀛愪覆) 锛氳繑鍥炲瓙涓茬涓娆″嚭鐜扮殑绱㈠紩锛屽鏋滄壘涓嶅埌锛岃繑鍥?锛?褰撴煡鎵剧殑瀛愪覆瀛樺湪浜庡瓧绗︿覆涓細杩斿洖璇ュ瓙涓插湪瀛楃涓蹭腑銆愮涓娆°戝嚭鐜扮殑绱㈠紩銆傚綋鏌ユ壘鐨勫瓙涓蹭笉鍦ㄥ瓧绗︿覆涓細杩斿洖0銆?/p> 鎿嶄綔濡備笅锛?/p> 7锛?code>trim(str)锛氬幓鎺夊瓧绗︿覆鍓嶅悗鐨勭┖鏍硷紱 璇ュ嚱鏁板彧鑳藉幓鎺夊瓧绗︿覆鍓嶅悗鐨勭┖鏍硷紝涓嶈兘鍘绘帀瀛楃涓蹭腑闂寸殑绌烘牸銆?/p> 鎿嶄綔濡備笅锛?/p> 8锛?code>lpad(str,len,濉厖瀛楃)锛氱敤鎸囧畾鐨勫瓧绗︼紝瀹炵幇瀵瑰瓧绗︿覆宸﹀~鍏呮寚瀹氶暱搴︼紱 鎿嶄綔濡備笅锛?/p> 9锛?code>rpad(str,len,濉厖瀛楃)锛氱敤鎸囧畾鐨勫瓧绗︼紝瀹炵幇瀵瑰瓧绗︿覆鍙冲~鍏呮寚瀹氶暱搴︼紱 鎿嶄綔濡備笅锛?/p> 10锛? 鎿嶄綔濡備笅锛?/p> 4.鏁板鍑芥暟1锛?code>round(x,[淇濈暀鐨勪綅鏁癩) 锛氬洓鑸嶄簲鍏ワ紱 褰撳姝f暟杩涜鍥涜垗浜斿叆锛氭寜鐓ф甯哥殑璁$畻鏂瑰紡锛屽洓鑸嶄簲鍏ュ嵆鍙傚綋瀵硅礋鏁拌繘琛屽洓鑸嶄簲鍏ワ細鍏堟妸绗﹀彿涓㈠埌涓杈癸紝瀵瑰幓鎺夎礋鍙峰悗鐨勬鏁拌繘琛屽洓鑸嶄簲鍏ワ紝瀹屾垚浠ュ悗锛屽啀鎶婅繖涓礋鍙凤紝琛ヤ笂鍗冲彲銆?/p> 鎿嶄綔濡備笅锛?/p> 2锛?code>ceil(x)锛氬悜涓婂彇鏁达紝杩斿洖>=璇ュ弬鏁扮殑鏈灏忔暣鏁般?澶╄姳鏉垮嚱鏁? 澶╄姳鏉垮嚱鏁帮紝鍦╡xcel锛宲ython涓潎瀛樺湪杩欎釜鍑芥暟銆備綘灏辨兂璞′竴涓嬩綘瀹剁殑澶╄姳鏉匡紝鎶婅繖涓暟瀛椾涪鍒板ぉ鑺辨澘涓婏紝姹傜殑鏄ぇ浜庣瓑浜庤繖涓暟瀛楃殑鏈灏忔暣鏁般?/p> 鎿嶄綔濡備笅锛?/p> 3锛?code>floor(x)锛氬悜涓嬪彇鏁达紝杩斿洖<=璇ュ弬鏁扮殑鏈澶ф暣鏁般傦紙鍦版澘鍑芥暟锛?鍦版澘鍑芥暟锛氬湪excel锛宲ython涓潎瀛樺湪杩欎釜鍑芥暟銆備綘灏辨兂璞′竴涓嬩綘瀹剁殑鍦版澘锛屾妸杩欎釜鏁板瓧涓㈠埌鍦版澘涓婏紝姹傜殑鏄皬浜庣瓑浜庤繖涓暟瀛楃殑鏈澶ф暣鏁般?/p> 鎿嶄綔濡備笅锛?/p> 4锛?code>truncate(x,D) 锛氭埅鏂紱 鐞嗚В濡備笅锛?/p> "鍙傝冧笅闈㈢殑绀轰緥鍥撅紝浣撲細濡備笅鏂囧瓧" 2锛塂鏄?锛岀洿鎺ュ幓鎺夊皬鏁伴儴鍒嗐?/p> 3锛塂鏄礋鏁帮紝鎿嶄綔鐨勬槸灏忔暟鐐瑰乏渚х殑鏁存暟閮ㄥ垎銆?br /> D=-1锛岀洿鎺ヤ粠-1浣嶇疆澶勶紝鍏堢爫鎺夊悗闈㈢殑灏忔暟閮ㄥ垎锛?br /> 骞朵笖"浠庡綋鍓嶄綅缃捣(鍖呮嫭褰撳墠浣嶇疆)锛屽悗闈㈡暣鏁伴儴鍒嗘浛鎹负0"銆?br /> D=-2锛岀洿鎺ヤ粠-2浣嶇疆澶勶紝鍏堢爫鎺夊悗闈㈢殑灏忔暟閮ㄥ垎锛?br /> 骞朵笖"浠庡綋鍓嶄綅缃捣(鍖呮嫭褰撳墠浣嶇疆)锛屽悗闈㈡暣鏁伴儴鍒嗘浛鎹负0"銆?/p> 绀轰緥鍥撅細 鎿嶄綔濡備笅锛?/p> 5锛?code>mod(琚櫎鏁?闄ゆ暟) 锛氬彇浣欙紱 褰撹闄ゆ暟涓烘鏁帮紝缁撴灉灏辨槸姝f暟銆傚綋琚櫎鏁颁负璐熸暟锛岀粨鏋滃氨鏄礋鏁般?/p> 鎿嶄綔濡備笅锛?/p> 5.鏃ユ湡鏃堕棿鍑芥暟鏃ユ湡鐨勫惈涔夛細鎸囩殑鏄垜浠父璇寸殑骞淬佹湀銆佹棩銆?/p> 鏃堕棿鐨勫惈涔夛細鎸囩殑鏄垜浠父璇寸殑鏃躲佸垎銆佺銆?/p> 鍦ㄨ杩颁笅闈㈠嚱鏁颁箣鍓嶏紝鎴戜滑鍏堣ˉ鍏呬竴涓煡璇嗭紝涓嶅悓鏃堕棿鏍煎紡绗﹁〃绀轰粈涔堝惈涔夊憿锛?/p> 1锛?code>now() 锛氳繑鍥炵郴缁熷綋鍓嶇殑鏃ユ湡鍜屾椂闂达紱 鎿嶄綔濡備笅锛?/p> 2锛?code>curdate() 锛氬彧杩斿洖绯荤粺褰撳墠鐨勬棩鏈燂紝涓嶅寘鍚椂闂达紱 鎿嶄綔濡備笅锛?/p> 3锛?code>curtime() 锛氬彧杩斿洖绯荤粺褰撳墠鐨勬椂闂达紝涓嶅寘鍚棩鏈燂紱 鎿嶄綔濡備笅锛?/p> 4锛夎幏鍙栨棩鏈熷拰鏃堕棿涓勾銆佹湀銆佹棩銆佹椂銆佸垎銆佺锛?nbsp; 鑾峰彇骞翠唤锛歽ear()锛?/p> 鑾峰彇鏈堜唤锛歮onth()锛?/p> 鑾峰彇鏃ワ細day()锛?/p> 鑾峰彇灏忔椂锛歨our()锛?/p> 鑾峰彇鍒嗛挓锛歮inute()锛?/p> 鑾峰彇绉掓暟锛歴econd()锛?/p> 5锛?code>weekofyear() 锛氳幏鍙栧綋鍓嶆椂鍒绘墍灞炵殑鍛ㄦ暟锛?/p> 鎿嶄綔濡備笅锛?/p> 6锛?code>quarter() 锛氳幏鍙栧綋鍓嶆椂鍒绘墍灞炵殑瀛e害锛?/p> 鎿嶄綔濡備笅锛?/p> 7锛?code>str_to_date() 锛氬皢鏃ユ湡鏍煎紡鐨勫瓧绗︿覆锛岃浆鎹㈡垚鎸囧畾鏍煎紡鐨勬棩鏈燂紱 鎿嶄綔濡備笅锛?/p> 8锛?code>date_format() 锛氬皢鏃ユ湡杞崲鎴愭棩鏈熷瓧绗︿覆锛? 鎿嶄綔濡備笅锛?/p> 9锛?code>date_add() + 鎿嶄綔濡備笅锛?/p> 10锛?code>last_day() 锛氭彁鍙栨煇涓湀鏈鍚庝竴澶╃殑鏃ユ湡锛?/p> 鎿嶄綔濡備笅锛?/p> 11锛?code>datediff(end_date,start_date) 锛氳绠椾袱涓椂闂寸浉宸殑澶╂暟锛?/p> 鎿嶄綔濡備笅锛?/p> 12锛?code>timestampdiff(unit,start_date,end_date) 锛氳绠椾袱涓椂闂磋繑鍥炵殑骞?鏈?澶╂暟锛?/p> unit鍙傛暟鏄‘瀹?start_date,end_date)缁撴灉鐨勫崟浣嶏紝琛ㄧず涓烘暣鏁帮紝浠ヤ笅鏄湁鏁堝崟浣嶏細 year锛氬勾浠?/p> month锛氭湀浠?/p> day锛氬ぉ hour锛氬皬鏃?/p> minute 鍒嗛挓 second锛氱 microsecond锛氬井绉?/p> week锛氬懆鏁?/p> quarter锛氬搴?/p> YEAR锛氬勾浠?/p> 鎿嶄綔濡備笅锛?/p> 6.鍏跺畠甯哥敤绯荤粺鍑芥暟7.娴佺▼鎺у埗鍑芥暟1锛?code>if鍑芥暟锛氬疄鐜癷f-else鐨勬晥鏋滐紱 2锛?code>ifnull鍑芥暟锛氬垽鏂兼槸鍚︿负null锛屾槸null鐢ㄦ寚瀹氬煎~鍏咃紱 3锛?code>case鈥hen鍑芥暟鐨勪笁绉嶇敤娉曪紱 case 鈥?when鍏辨湁涓夌鐢ㄦ硶锛屾垜鐩镐俊鑷繁鐨勬荤粨浼氱浉褰撳叏闈€傚笇鏈涘ぇ瀹朵竴瀹氳濂藉ソ鐮旂┒杩欏嚑绉嶇敤娉曪紝閮芥槸寰堟湁鐢ㄧ殑銆?/p> 绛夊煎垽鏂細绫讳技浜巎ava涓璼witch case鐨勬晥鏋滐紱 鍖洪棿鍒ゆ柇锛氱被浼间簬python涓璱f-elif-else鐨勬晥鏋滐紱 case 鈥?when鍜岃仛鍚堝嚱鏁拌仈鐢紱 鈶?case 鈥?when鐢ㄤ綔绛夊煎垽鏂殑璇硶鏍煎紡锛?/p>
鎿嶄綔濡備笅锛?/p> 鈶?case 鈥?when鐢ㄤ綔鍖洪棿鍒ゆ柇鐨勮娉曟牸寮忥紱
鎿嶄綔濡備笅锛?/p> 鈶?case鈥hen涓庤仛鍚堝嚱鏁扮殑鑱旂敤 鍒╃敤涓婅堪鍘熷琛紝瀹屾垚濡備笅闂锛?/p> -- 18銆佹煡璇㈠悇绉戞垚缁╂渶楂樺垎銆佹渶浣庡垎鍜屽钩鍧囧垎锛屼互濡備笅褰㈠紡鏄剧ず锛?br /> -- 璇剧▼ID锛岃绋媙ame锛屾渶楂樺垎锛屾渶浣庡垎锛屽钩鍧囧垎锛屽強鏍肩巼锛屼腑绛夌巼锛屼紭鑹巼锛屼紭绉鐜?br /> -- 鍙婃牸涓猴細>=60锛屼腑绛変负锛?0-80锛屼紭鑹负锛?0-90锛屼紭绉涓猴細>=90 鎿嶄綔濡備笅锛?/p> select sc.c,cname, max(score) 鏈楂樺垎,min(score) 鏈浣庡垎,avg(score) 骞冲潎鍒? sum(case when score>60 then 1 else 0 end)/count(*) 鍙婃牸鐜? sum(case when score>=70 and score<80 then 1 else 0 end)/count(*) 涓瓑鐜? sum(case when score>=80 and score<90 then 1 else 0 end)/count(*) 浼樿壇鐜? sum(case when score>=90 then 1 else 0 end)/count(*) 浼樼鐜? from sc left join course on sc.c = course.c group by sc.c; 缁撴灉濡備笅锛?/p> 8.鑱氬悎鍑芥暟1锛夎仛鍚堝嚱鏁扮殑鍔熻兘鍜屽垎绫伙紱鈶?鑱氬悎鍑芥暟鐨勫姛鑳斤紱 鐢ㄤ綔缁熻浣跨敤锛屽張绉颁负鑱氬悎鍑芥暟鎴栫粺璁″嚱鏁版垨缁勫嚱鏁般?/p> 鈶?鑱氬悎鍑芥暟鐨勫垎绫伙紱 sum 姹傚拰avg 骞冲潎鍊糾ax 鏈澶у糾in 鏈灏忓糲ount 璁$畻涓暟 2锛夎仛鍚堝嚱鏁扮殑绠鍗曚娇鐢?/h3>3锛変簲涓仛鍚堝嚱鏁颁腑浼犲叆鐨勫弬鏁帮紝鎵鏀寔鐨勬暟鎹被鍨嬫湁鍝簺锛?/h3>mysql涓嶆槸寮虹被鍨嬬殑缂栫▼璇█銆備篃灏辨槸璇达紝鏈変簺璇彞鎵ц缁撴灉鍙兘涓嶆姤閿欙紝浣嗘槸鎵ц缁撴灉鏃犲疄闄呮剰涔夛紝鍥犳锛屾垜浠篃璁や负鏄笉姝g‘鐨勩?/p> 鈶?娴嬭瘯鏁版嵁锛?/p> "寤鸿〃璇彞" create table test( id int primary key auto_increment, name varchar(20) not null, sal int, birth date)charset=utf8; "鎻掑叆鏁版嵁" insert into test(name,sal,birth) values ("Zoo",6500,'1993.3.20'), ("Hobby",4000,'1997.6.10'), ("Aline",5500,'2000.5.1'), ("Bob",10000,'2008.10.1'); 鈶?sum()鍑芥暟鍜宎vg()鍑芥暟锛氫紶鍏ユ暣鍨?灏忔暟绫诲瀷鎵嶆湁鎰忎箟锛?/p> 缁撹濡備笅锛?/p> sum()鍑芥暟鍜宎vg()鍑芥暟瀵逛簬瀛楃涓茬被鍨嬨佹棩鏈?鏃堕棿绫诲瀷鐨勮绠楅兘娌℃湁澶ぇ鎰忎箟銆傚洜姝わ紝sum()鍑芥暟鍜宎vg()鍑芥暟锛屾垜浠彧鐢ㄦ潵瀵瑰皬鏁扮被鍨嬪拰鏁村瀷杩涜姹傚拰銆?/p> 鈶?max()鍑芥暟鍜宮in()鍑芥暟锛氫紶鍏ユ暣鍨?灏忔暟绫诲瀷銆佹棩鏈?鏃堕棿绫诲瀷鎰忎箟杈冨ぇ锛?/p> 缁撹濡備笅锛?/p> max()鍜宮in()涓紶鍏ョ殑鏄?鏁村瀷/灏忔暟绫诲瀷"锛岃绠楃殑鏄暟鍊肩殑 鈶?count()鍑芥暟锛氬彲浠ヤ紶鍏ヤ换浣曟暟鎹被鍨嬶紝浣嗘槸纰板埌null瑕佹敞鎰忥紱 缁撹濡備笅锛?/p> count()鍑芥暟鍙互浼犲叆浠讳綍鏁版嵁绫诲瀷锛岃〃绀哄琛岃鏁般?br />
"浣嗘槸涓嬮潰鐨勭煡璇嗙偣闇瑕佺壒鍒敞鎰忕殑" 鎬荤粨:
鍏跺疄鎵鏈夌殑鍒嗙粍鍑芥暟閮藉拷鐣ull鍊肩殑锛屼絾涓婇潰閭d釜count()鍑芥暟纰板埌null鍊艰鐗瑰埆娉ㄦ剰銆?/p> 鈶?count()鍑芥暟纰板埌null鍊奸渶瑕佺壒鍒敞鎰忥紱 缁撹濡備笅锛?/p> 瀵逛簬avg(sal)姹傚钩鍧囧兼潵璇达紝(6500+4000+5500+10000)/4=6500銆?/p> 瀵逛簬鍚庨潰杩欎釜sum()/count(*)姹傚钩鍧囧兼潵璇达紝(6500+4000+5500+10000)/5=5200銆?/p> 濂藉ソ浣撲細涓婅堪渚嬪瓙锛屾湁鏃跺欐煇浜烘垚缁╄櫧鐒惰褰曠殑鏄痭ull锛屼絾鏄綘浠嶇劧鏈?涓汉瀛樺湪锛屾墍浠ヤ綘瑕佽冭檻涓涓嬫庝箞浣跨敤鍚堥傜殑鍑芥暟锛岃揪鍒颁綘鎯宠鐨勭粨鏋溿?/p> 鈶?count(1),count(0)琛ㄧず鐨勬槸鍟ユ剰鎬濆憿锛?/p> 鏃犺鏄痵um(1),sum(0),count(1),count(0),avg(1),avg(0)锛屽師鐞嗛兘鏄竴鏍风殑锛岀浉褰撲簬鍦ㄥ師琛ㄤ腑鏂板涓鍒椼?/p> 鍏舵锛屾垜浠煡閬搘here鍚庨潰鎺ョ殑鏄愰昏緫鍊笺戯紝褰撲娇鐢╳here 1鍜寃here 0鍘熺悊涔熻繕鏄竴鏍凤紝涔熺浉褰撲簬鍦ㄥ師琛ㄤ腑鏂板涓鍒椼?/p> 鎴戜滑鍙渶瑕佽浣忓湪mysql涓細"闈?鍗充负true锛?涓篺alse"銆備篃灏辨槸璇达紝涓嬮潰鐨勬墍鏈夋槸1鐨勫湴鏂癸紝浣犲彲浠ユ崲鎴愪换浣曢潪0鏁板瓧锛岄兘鏄彲浠ョ殑銆?/p> 鍘熺悊鍥惧涓嬶細 娴嬭瘯涓涓嬶細 鈶?count(*)璁℃暟鐨勬晥鐜囬棶棰橈紱 MYISAM瀛樺偍寮曟搸涓嬶紝count(*)鐨勬晥鐜囬珮銆侷NNODB瀛樺偍寮曟搸涓嬶紝count(*)鍜宑ount(1)鐨勬晥鐜囧樊涓嶅锛屾瘮count(瀛楁)鏁堢巼瑕侀珮涓浜涖傜患涓婃墍杩帮細浼樺厛浣跨敤count(*)銆?/p> 4锛夎仛鍚堝嚱鏁板拰group by鐨勪娇鐢ㄢ滄渶閲嶈鈥濓紱鍏充簬杩欎釜鐭ヨ瘑鐐癸紝鎴戜滑灏嗕細鍦ㄥ悗闈㈢殑鐭ヨ瘑鐐逛腑杩涜璁茶堪銆傚湪杩欓噷鎴戜滑鍙渶瑕佽浣忎竴鍙ヨ瘽锛氬綋SQL璇彞涓娇鐢ㄤ簡group by鍒嗙粍鍑芥暟鍚庯紝select鍚庨潰鐨勫瓧娈靛繀椤绘槸group by鍚庨潰鐨勫瓧娈?+ 鑱氬悎鍑芥暟鐨勪娇鐢ㄣ?/p> 浠ヤ笂灏辨槸闈炲父瀹炵敤鐨凪ySQL鍑芥暟鍏ㄩ潰鎬荤粨璇﹁В绀轰緥鍒嗘瀽鐨勮缁嗗唴瀹癸紝鏇村鍏充簬MySQL鍑芥暟鐨勮祫鏂欒鍏虫敞鑴氭湰涔嬪鍏跺畠鐩稿叧鏂囩珷锛?/p> |