鐩綍
鏈珷閫氳繃婕旂ず濡備綍浣跨敤mysql瀹㈡埛绋嬪簭鍒涢犲拰浣跨敤涓涓畝鍗曠殑鏁版嵁搴擄紝鎻愪緵涓涓MySQL鐨勫叆闂ㄦ暀绋嬨mysql锛堟湁鏃剁О涓衡滅粓绔洃瑙嗗櫒鈥濇垨鍙槸鈥滅洃瑙嗏濓級鏄竴涓氦浜掑紡绋嬪簭锛屽厑璁镐綘杩炴帴涓涓MySQL鏈嶅姟鍣紝杩愯鏌ヨ骞跺療鐪嬬粨鏋溿mysql鍙互鐢ㄤ簬鎵规ā寮忥細浣犻鍏堟妸鏌ヨ鏀惧湪涓涓枃浠朵腑锛岀劧鍚庡憡璇mysql鎵ц鏂囦欢鐨勫唴瀹广傛湰绔犲皢浠嬬粛浣跨敤mysql鐨勪袱涓柟娉曘
瑕佹兂鏌ョ湅鐢mysql鎻愪緵鐨勯夋嫨椤圭洰琛紝鍙互鐢--help閫夐」鏉ヨ皟鐢細
shell> mysql --help
鏈珷鍋囧畾mysql宸茬粡琚畨瑁呭湪浣犵殑鏈哄櫒涓婏紝骞朵笖鏈変竴涓MySQL鏈嶅姟鍣ㄥ彲浠ヨ繛鎺ャ傚惁鍒欙紝璇疯仈缁MySQL绠$悊鍛樸傦紙濡傛灉浣鏄鐞嗗憳锛屽垯闇瑕佹煡闃呮湰鎵嬪唽鐨勫叾瀹冪珷鑺傦紝渚嬪绗5绔狅細鏁版嵁搴撶鐞銆傦級
鏈珷鎻忚堪寤虹珛鍜屼娇鐢ㄤ竴涓暟鎹簱鐨勫叏杩囩▼銆傚鏋滀綘浠呬粎瀵硅闂竴涓凡缁忓瓨鍦ㄧ殑鏁版嵁搴撴劅鍏磋叮锛屽彲浠ヨ烦杩囨弿杩版庢牱鍒涘缓鏁版嵁搴撳強瀹冩墍鍖呭惈鐨勮〃鐨勭珷鑺傘
鐢变簬鏈珷鏄竴涓暀绋嬶紝鐪佺暐浜嗚澶氱粏鑺傘傚叧浜庤繖閲屾墍娑夊強鐨勪富棰樼殑璇︾粏淇℃伅锛岃鏌ラ槄鏈墜鍐岀殑鐩稿叧绔犺妭銆
shell> mysql -h host -u user -p
Enter password: ********
host鍜user鍒嗗埆浠h〃MySQL鏈嶅姟鍣ㄨ繍琛岀殑涓绘満鍚嶅拰MySQL璐︽埛鐢ㄦ埛鍚嶃傝缃椂鏇挎崲涓烘纭殑鍊笺******** 浠h〃浣犵殑瀵嗙爜锛涘綋mysql鏄剧ずEnter password:鎻愮ず鏃惰緭鍏ュ畠銆
濡傛灉鏈夋晥锛屼綘搴旇鐪嬭mysql>鎻愮ず绗﹀悗鐨勪竴浜涗粙缁嶄俊鎭細
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.1.2-alpha-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> 鎻愮ず绗﹀憡璇変綘mysql鍑嗗涓轰綘杈撳叆鍛戒护銆
涓浜MySQL瀹夎鍏佽鐢ㄦ埛浠ュ尶鍚嶏紙鏈懡鍚嶏級鐢ㄦ埛杩炴帴鍒版湰鍦颁富鏈轰笂杩愯鐨勬湇鍔″櫒銆傚鏋滀綘鐨勬満鍣ㄦ槸杩欑鎯呭喌锛屼綘搴旇鑳戒笉甯︿换浣曢夐」鍦拌皟鐢mysql涓庤鏈嶅姟鍣ㄨ繛鎺ワ細
shell> mysql
鎴愬姛鍦拌繛鎺ュ悗锛屽彲浠ュ湪mysql>鎻愮ず涓嬭緭鍏QUIT (鎴\q)闅忔椂閫鍑猴細
mysql> QUIT
Bye
鍦Unix涓紝涔熷彲浠ユ寜control-D閿柇寮鏈嶅姟鍣ㄣ
鍦ㄤ笅鍒楃珷鑺傜殑澶у鏁颁緥瀛愰兘鍋囪浣犺繛鎺ュ埌浜嗘湇鍔″櫒銆傜敱mysql>鎻愮ず鎸囨槑銆
纭繚浣犺繛鎺ヤ笂浜嗘湇鍔″櫒锛屽鍦ㄥ厛鍓嶇殑绔犺妭璁ㄨ鐨勩傝繛鎺ヤ笂鏈嶅姟鍣ㄥ苟甯冧唬琛ㄩ夋嫨浜嗕换浣曟暟鎹簱锛屼絾杩欐牱灏卞彲浠ヤ簡銆傜煡閬撳叧浜庡浣曟煡璇㈢殑鍩烘湰鐭ヨ瘑锛屾瘮椹笂璺宠嚦鍒涘缓琛ㄣ佺粰浠栦滑瑁呰浇鏁版嵁骞朵笖浠庝粬浠绱㈡暟鎹洿閲嶈銆傛湰鑺傛弿杩拌緭鍏ュ懡浠ょ殑鍩烘湰鍘熷垯锛屼娇鐢ㄥ嚑涓煡璇紝浣犺兘灏濊瘯浜嗚Вmysql鏄浣曞伐浣滅殑銆
杩欐槸涓涓畝鍗曠殑鍛戒护锛岃姹傛湇鍔″櫒鍛婅瘔瀹冪殑鐗堟湰鍙峰拰褰撳墠鏃ユ湡銆傚湪mysql>鎻愮ず杈撳叆濡備笅鍛戒护骞舵寜鍥炶溅閿細
mysql> SELECT VERSION(), CURRENT_DATE;
+-----------------+--------------+
| VERSION() | CURRENT_DATE |
+-----------------+--------------+
| 5.1.2-alpha-log | 2005-10-11 |
+-----------------+--------------+
1 row in set (0.01 sec)
mysql>
杩欒闂鏄mysql鐨勫嚑涓柟闈:
路 涓涓懡浠ら氬父鐢SQL璇彞缁勬垚锛岄殢鍚庤窡鐫涓涓垎鍙枫傦紙鏈変竴浜涗緥澶栦笉闇瑕佸垎鍙枫傛棭鍏堟彁鍒扮殑QUIT鏄竴涓緥瀛愩傚悗闈㈡垜浠皢鐪嬪埌鍏跺畠鐨勪緥瀛愩傦級
路 褰撳彂鍑轰竴涓懡浠ゆ椂锛mysql灏嗗畠鍙戦佺粰鏈嶅姟鍣ㄥ苟鏄剧ず鎵ц缁撴灉锛岀劧鍚庢樉绀哄彟涓涓mysql>鏄剧ず瀹冨噯澶囧ソ鎺ュ彈鍏跺畠鍛戒护銆
路 mysql鐢ㄨ〃鏍(琛屽拰鍒)鏂瑰紡鏄剧ず鏌ヨ杈撳嚭銆傜涓琛屽寘鍚垪鐨勬爣绛撅紝闅忓悗鐨勮鏄煡璇㈢粨鏋溿傞氬父锛屽垪鏍囩鏄綘鍙栬嚜鏁版嵁搴撹〃鐨勫垪鐨勫悕瀛椼傚鏋滀綘姝e湪妫绱竴涓〃杈惧紡鑰岄潪琛ㄥ垪鐨勫(濡傚垰鎵嶇殑渚嬪瓙)锛mysql鐢ㄨ〃杈惧紡鏈韩鏍囪鍒椼
路 mysql鏄剧ず杩斿洖浜嗗灏戣锛屼互鍙婃煡璇㈣姳浜嗗闀挎椂闂达紝瀹冪粰浣犳彁渚涙湇鍔″櫒鎬ц兘鐨勪竴涓ぇ鑷存蹇点傚洜涓轰粬浠〃绀烘椂閽熸椂闂(涓嶆槸 CPU 鎴栨満鍣ㄦ椂闂)锛屽苟涓斿洜涓轰粬浠彈鍒拌濡傛湇鍔″櫒璐熻浇鍜岀綉缁滃欢鏃剁殑褰卞搷锛屽洜姝よ繖浜涘兼槸涓嶇簿纭殑銆傦紙涓轰簡绠娲侊紝鍦ㄦ湰绔犲叾瀹冧緥瀛愪腑涓嶅啀鏄剧ず鈥滈泦鍚堜腑鐨勮鈥濄傦級
鑳藉浠ュぇ灏忓啓杈撳叆鍏抽敭璇嶃備笅鍒楁煡璇㈡槸绛変环鐨勶細
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;
杩欐槸鍙﹀涓涓煡璇紝瀹冭鏄庝綘鑳藉皢mysql鐢ㄤ綔涓涓畝鍗曠殑璁$畻鍣細
mysql> SELECT SIN(PI()/4), (4+1)*5;
+------------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+------------------+---------+
| 0.70710678118655 | 25 |
+------------------+---------+
1 row in set (0.02 sec)
鑷虫鏄剧ず鐨勫懡浠ゆ槸鐩稿綋鐭殑鍗曡璇彞銆備綘鍙互鍦ㄤ竴琛屼笂杈撳叆澶氭潯璇彞锛屽彧闇瑕佷互涓涓垎鍙烽棿闅斿紑鍚勮鍙ワ細
mysql> SELECT VERSION(); SELECT NOW();
+-----------------+
| VERSION() |
+-----------------+
| 5.1.2-alpha-log |
+-----------------+
1 row in set (0.00 sec)
+---------------------+
| NOW() |
+---------------------+
| 2005-10-11 15:15:00 |
+---------------------+
1 row in set (0.00 sec)
涓嶅繀鍏ㄥ湪涓涓鍐呯粰鍑轰竴涓懡浠わ紝杈冮暱鍛戒护鍙互杈撳叆鍒板涓涓mysql閫氳繃瀵绘壘缁堟鍒嗗彿鑰屼笉鏄緭鍏ヨ鐨勭粨鏉熸潵鍐冲畾璇彞鍦ㄥ摢鍎跨粨鏉熴傦紙鎹㈠彞璇濊锛mysql鎺ュ彈鑷敱鏍煎紡鐨勮緭鍏ワ細瀹冩敹闆嗚緭鍏ヨ浣嗙洿鍒扮湅瑙佸垎鍙锋墠鎵ц銆傦級
杩欓噷鏄竴涓畝鍗曠殑澶氳璇彞鐨勪緥瀛愶細
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+---------------+--------------+
| USER() | CURRENT_DATE |
+---------------+--------------+
| jon@localhost | 2005-10-11 |
+---------------+--------------+
鍦ㄨ繖涓緥瀛愪腑锛屽湪杈撳叆澶氳鏌ヨ鐨勭涓琛屽悗锛岃娉ㄦ剰鎻愮ず绗﹀浣曚粠mysql>鍙樹负->锛岃繖姝f槸mysql濡備綍鎸囧嚭瀹冩病瑙佸埌瀹屾暣鐨勮鍙ュ苟涓旀鍦ㄧ瓑寰呭墿浣欑殑閮ㄥ垎銆傛彁绀虹鏄綘鐨勬湅鍙嬶紝鍥犱负瀹冩彁渚涙湁浠峰肩殑鍙嶉锛屽鏋滀娇鐢ㄨ鍙嶉锛屽皢鎬绘槸鐭ラ亾mysql姝e湪绛夊緟浠涔堛
濡傛灉浣犲喅瀹氫笉鎯虫墽琛屾鍦ㄨ緭鍏ヨ繃绋嬩腑鐨勪竴涓懡浠わ紝杈撳叆\c鍙栨秷瀹冿細
mysql> SELECT
-> USER()
-> \c
mysql>
杩欓噷涔熻娉ㄦ剰鎻愮ず绗︼紝鍦ㄤ綘杈撳叆\c浠ュ悗锛屽畠鍒囨崲鍥炲埌mysql>锛屾彁渚涘弽棣堜互琛ㄦ槑mysql鍑嗗鎺ュ彈涓涓柊鍛戒护銆
涓嬭〃鏄剧ず鍑哄彲浠ョ湅瑙佺殑鍚勪釜鎻愮ず绗﹀苟绠杩板畠浠墍琛ㄧず鐨mysql鐨勭姸鎬侊細
鎻愮ず绗 |
鍚箟 |
mysql> |
鍑嗗濂芥帴鍙楁柊鍛戒护銆 |
-> |
绛夊緟澶氳鍛戒护鐨勪笅涓琛屻 |
'> |
绛夊緟涓嬩竴琛岋紝绛夊緟浠ュ崟寮曞彿(鈥'鈥)寮濮嬬殑瀛楃涓茬殑缁撴潫銆 |
"> |
绛夊緟涓嬩竴琛岋紝绛夊緟浠ュ弻寮曞彿(鈥"鈥)寮濮嬬殑瀛楃涓茬殑缁撴潫銆 |
`> |
绛夊緟涓嬩竴琛岋紝绛夊緟浠ュ弽鏂滅偣(鈥`鈥)寮濮嬬殑璇嗗埆绗︾殑缁撴潫銆 |
/*> |
绛夊緟涓嬩竴琛岋紝绛夊緟浠/*寮濮嬬殑娉ㄩ噴鐨勭粨鏉熴 |
褰撲綘鎵撶畻鍦ㄤ竴涓崟琛屼笂鍙戝嚭涓涓懡浠ゆ椂锛岄氬父浼氣滃伓鐒垛濆嚭鐜板琛岃鍙ワ紝浣嗘槸娌℃湁缁堟鍒嗗彿銆傚湪杩欑鎯呭喌涓紝mysql绛夊緟杩涗竴姝ヨ緭鍏ワ細
mysql> SELECT USER()
->
濡傛灉鍑虹幇杩欑鎯呭喌(浣犺涓鸿緭瀹屼簡璇彞锛屼絾鏄彧鏈変竴涓->鎻愮ず绗﹀搷搴)锛屽緢鍙兘mysql姝e湪绛夊緟鍒嗗彿銆傚鏋滀綘娌℃湁娉ㄦ剰鍒版彁绀虹鐨勬彁绀猴紝鍦ㄦ剰璇嗗埌浣犻渶瑕佸仛浠涔堜箣鍓嶏紝浣犲彲鑳戒細鍛嗗潗涓浼氬効銆傝緭鍏ヤ竴涓垎鍙峰畬鎴愯鍙ワ紝mysql灏嗘墽琛岋細
mysql> SELECT USER()
-> ;
+---------------+
| USER() |
+---------------+
| jon@localhost |
+---------------+
鍦ㄥ瓧绗︿覆鏀堕泦鏈熼棿灏嗗嚭鐜 '> 鍜 "> 鎻愮ず绗︼紙鎻愮ずMySQL姝g瓑寰呭瓧绗︿覆鐨勭粨鏉燂級銆傚湪MySQL涓紝鍙互鍐欑敱鈥'鈥欐垨鈥"鈥欏瓧绗︽嫭璧锋潵鐨勫瓧绗︿覆 (渚嬪锛'hello'鎴"goodbye")锛屽苟涓mysql鍏佽杈撳叆璺ㄨ秺澶氳鐨勫瓧绗︿覆銆傚綋鐪嬪埌涓涓 '> 鎴 "> 鎻愮ず绗︽椂锛岃繖鎰忓懗鐫宸茬粡杈撳叆浜嗗寘鍚互鈥'鈥欐垨鈥"鈥欐嫭鍙峰瓧绗﹀紑濮嬬殑瀛楃涓茬殑涓琛岋紝浣嗘槸杩樻病鏈夎緭鍏ョ粓姝㈠瓧绗︿覆鐨勫尮閰嶅紩鍙枫傝繖鏄剧ず浣犵矖蹇冨湴鐪佹帀浜嗕竴涓紩鍙峰瓧绗︺備緥濡傦細
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>
濡傛灉浣犺緭鍏SELECT璇彞锛岀劧鍚庢寜Enter锛鍥炶溅锛閿苟绛夊緟缁撴灉锛屼粈涔堥兘娌℃湁鍑虹幇銆備笉瑕佹儕璁讹紝鈥滀负浠涔堣鏌ヨ杩欎箞闀垮憿锛熲濓紝娉ㄦ剰">鎻愮ず绗︽彁渚涚殑绾跨储銆傚畠鍛婅瘔浣mysql鏈熸湜瑙佸埌涓涓湭缁堟瀛楃涓茬殑浣欎笅閮ㄥ垎銆傦紙浣犵湅瑙佽鍙ヤ腑鐨勯敊璇悧锛熷瓧绗︿覆"Smith涓㈡帀浜嗙浜屼釜寮曞彿銆傦級
璧板埌杩欎竴姝ワ紝浣犺鍋氫粈涔堬紵鏈绠鍗曠殑鏄彇娑堝懡浠ゃ傜劧鑰岋紝鍦ㄨ繖绉嶆儏鍐典笅锛屼綘涓嶈兘鍙槸杈撳叆\c锛屽洜涓mysql浣滀负瀹冩鍦ㄦ敹闆嗙殑瀛楃涓茬殑涓閮ㄥ垎鏉ヨВ閲婂畠锛佺浉鍙嶏紝搴旇緭鍏ュ叧闂殑寮曞彿瀛楃(杩欐牱mysql鐭ラ亾浣犲畬鎴愪簡瀛楃涓)锛岀劧鍚庤緭鍏\c锛
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'> '\c
mysql>
鎻愮ず绗﹀洖鍒mysql>锛屾樉绀mysql鍑嗗濂芥帴鍙椾竴涓柊鍛戒护浜嗐
`> 鎻愮ず绗︾被浼间簬 '> 鍜"> 鎻愮ず绗︼紝浣嗚〃绀轰綘宸茬粡寮濮嬩絾娌℃湁缁撴潫浠`> 寮濮嬬殑璇嗗埆绗︺
鐭ラ亾'>鍜">鎻愮ず绗︾殑鍚箟寰堥噸瑕侊紝鍥犱负濡傛灉浣犻敊璇湴杈撳叆涓涓湭缁堟鐨勫瓧绗︿覆锛屼换浣曞悗闈㈣緭鍏ョ殑琛屽皢瑕佽mysql蹇界暐--鍖呮嫭鍖呭惈QUIT鐨勮锛佽繖鍙兘浠や汉鐩稿綋鍥版儜锛岀壒鍒槸濡傛灉鍙栨秷褰撳墠鍛戒护鍓嶈繕涓嶇煡閬撲綘闇瑕佹彁渚涚粓姝㈠紩鍙枫
鐭ラ亾鎬庢牱杈撳叆鍛戒护锛屼究鍙互璁块棶鏁版嵁搴撲簡銆
鍋囧畾鍦ㄤ綘鐨勫(浣犵殑鈥滃姩鐗╁洯鈥)涓湁寰堝瀹犵墿锛屽苟涓斾綘鎯宠窡韪叧浜庡畠浠悇绉嶇被鍨嬬殑淇℃伅銆備綘鍙互閫氳繃鍒涘缓琛ㄦ潵淇濆瓨浣犵殑鏁版嵁骞舵牴鎹墍闇瑕佺殑淇℃伅瑁呰浇浠栦滑锛岀劧鍚庝綘鍙互浠庤〃涓绱㈡暟鎹潵鍥炵瓟鍏充簬鍔ㄧ墿涓嶅悓绉嶇被鐨勯棶棰樸傛湰鑺傛樉绀哄浣曞仛鍒版墍鏈夎繖浜涗簨鎯咃細
路 鍒涘缓鏁版嵁搴
路 鍒涘缓鏁版嵁搴撹〃
路 瑁呰浇鏁版嵁鍒版暟鎹簱琛
路 浠ュ悇绉嶆柟娉曚粠琛ㄤ腑妫绱㈡暟鎹
路 浣跨敤澶氫釜琛
鍔ㄧ墿鍥暟鎹簱寰堢畝鍗(鐗规剰鐨)锛屼絾鏄笉闅炬妸瀹冩兂璞℃垚鍙兘鐢ㄥ埌绫讳技鏁版嵁搴撶殑鐪熷疄涓栫晫鎯呭喌銆備緥濡傦紝鍐滃か鍙互浣跨敤杩欐牱鐨勪竴涓暟鎹簱鏉ヨ拷韪鐣滐紝鎴栬呭吔鍖诲彲浠ョ敤瀹冭窡韪梾鐣滆褰曘備粠MySQL缃戝潃涓婂彲浠ヨ幏寰楀悗闈㈢珷鑺備腑灏嗙敤鍒扮殑鍚湁閮ㄥ垎鏌ヨ鍜屾牱渚嬫暟鎹殑鍔ㄧ墿鍥垎鍙戙傛湁tar鍘嬬缉鏍煎紡 (http://www.mysql.com/Downloads/Contrib/Examples/menagerie.tar.gz)鍜Zip鍘嬬缉鏍煎紡 (http://www.mysql.com/Downloads/Contrib/Examples/menagerie.zip)銆
浣跨敤SHOW璇彞鎵惧嚭鏈嶅姟鍣ㄤ笂褰撳墠瀛樺湪浠涔堟暟鎹簱锛
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
鍙兘浣犵殑鏈哄櫒涓婄殑鏁版嵁搴撳垪琛ㄦ槸涓嶅悓鐨勶紝浣嗘槸寰堝彲鑳芥湁mysql鍜test鏁版嵁搴撱mysql鏄繀闇鐨勶紝鍥犱负瀹冩弿杩扮敤鎴疯闂潈闄愶紝test鏁版嵁搴撶粡甯镐綔涓虹敤鎴疯瘯韬墜鐨勫伐浣滃尯銆
璇锋敞鎰忓鏋滄病鏈SHOW DATABASES鏉冮檺锛屽垯涓嶈兘鐪嬭鎵鏈夋暟鎹簱銆傚弬瑙13.5.1.3鑺傦紝鈥淕RANT鍜孯EVOKE璇硶鈥銆
濡傛灉test鏁版嵁搴撳瓨鍦紝灏濊瘯璁块棶瀹冿細
mysql> USE test
Database changed
娉ㄦ剰锛USE锛岀被浼QUIT锛屼笉闇瑕佷竴涓垎鍙枫傦紙濡傛灉浣犲枩娆紝浣犲彲浠ョ敤涓涓垎鍙风粓姝㈣繖鏍风殑璇彞锛涜繖鏃犵锛USE璇彞鍦ㄤ娇鐢ㄤ笂涔熸湁鍙﹀涓涓壒娈婄殑鍦版柟锛氬畠蹇呴』鍦ㄤ竴涓崟琛屼笂缁欏嚭銆
浣犲彲鍒楀湪鍚庨潰鐨勪緥瀛愪腑浣跨敤test鏁版嵁搴(濡傛灉浣犺兘璁块棶瀹)锛屼絾鏄綘鍦ㄨ鏁版嵁搴撳垱寤虹殑浠讳綍涓滆タ鍙互琚闂畠鐨勫叾瀹冧汉鍒犻櫎锛屽洜姝わ紝浣犲簲璇ヨ闂MySQL绠$悊鍛樿鍙綘浣跨敤鑷繁鐨勪竴涓暟鎹簱銆傚亣瀹氫綘鎯宠璋冪敤浣犵殑menagerie锛岀鐞嗗憳闇瑕佹墽琛岃繖鏍蜂竴鏉″懡浠わ細
mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
杩欓噷your_mysql_name鏄垎閰嶇粰浣犵殑MySQL鐢ㄦ埛鍚嶏紝your_client_host鏄墍杩炴帴鐨勬湇鍔″櫒鎵鍦ㄧ殑涓绘満銆
mysql> CREATE DATABASE menagerie;
鍦Unix涓嬶紝鏁版嵁搴撳悕绉版槸鍖哄垎澶у皬鍐欑殑(涓嶅儚SQL鍏抽敭瀛)锛屽洜姝や綘蹇呴』鎬绘槸浠menagerie璁块棶鏁版嵁搴擄紝鑰屼笉鑳界敤Menagerie銆MENAGERIE鎴栧叾瀹冧竴浜涘彉閲忋傚琛ㄥ悕涔熸槸杩欐牱鐨勩傦紙鍦Windows涓嬶紝璇ラ檺鍒朵笉閫傜敤锛屽敖绠′綘蹇呴』鍦ㄤ竴涓粰瀹氱殑鏌ヨ涓娇鐢ㄥ悓鏍风殑澶у皬鍐欐潵寮曠敤鏁版嵁搴撳拰琛ㄣ備絾鏄紝鐢变簬澶氱鍘熷洜锛屼綔涓烘渶濂界殑鎯緥锛屼竴瀹氳浣跨敤涓庢暟鎹簱鍒涘缓鏃剁殑鍚屾牱鐨勫ぇ灏忓啓銆傦級
鍒涘缓鏁版嵁搴撳苟涓嶈〃绀洪夊畾骞朵娇鐢ㄥ畠锛屼綘蹇呴』鏄庣‘鍦版搷浣溿備负浜嗕娇menagerie鎴愪负褰撳墠鐨勬暟鎹簱锛屼娇鐢ㄨ繖涓懡浠わ細
mysql> USE menagerie
Database changed
鏁版嵁搴撳彧闇瑕佸垱寤轰竴娆★紝浣嗘槸蹇呴』鍦ㄦ瘡娆″惎鍔mysql浼氳瘽鏃跺湪浣跨敤鍓嶅厛閫夋嫨瀹冦備綘鍙互鏍规嵁涓婇潰鐨勪緥瀛愭墽琛屼竴涓USE璇彞鏉ュ疄鐜般傝繕鍙互鍦ㄨ皟鐢mysql鏃讹紝閫氳繃鍛戒护琛岄夋嫨鏁版嵁搴擄紝鍙渶瑕佸湪鎻愪緵杩炴帴鍙傛暟涔嬪悗鎸囧畾鏁版嵁搴撳悕绉般備緥濡傦細
shell> mysql -h host -u user -p menagerie
Enter password: ********
娉ㄦ剰锛屽垰鎵嶆樉绀虹殑鍛戒护琛屼腑鐨menagerie涓鏄綘鐨 瀵嗙爜銆傚鏋滀綘鎯宠鍦ㄥ懡浠よ涓婂湪-p閫夐」鍚庢彁渚 瀵嗙爜锛屽垯涓嶈兘鎻掑叆绌烘牸(渚嬪锛屽-pmypassword锛屼笉鏄-p mypassword)銆備絾鏄紝涓嶅缓璁湪鍛戒护琛岃緭鍏ュ瘑鐮侊紝鍥犱负杩欐牱浼氭毚闇 瀵嗙爜锛岃兘琚湪鏈哄櫒涓婄櫥褰曠殑鍏跺畠鐢ㄦ埛绐ユ帰鍒般
鍒涘缓鏁版嵁搴撴槸寰堝鏄撶殑閮ㄥ垎锛屼絾鏄湪杩欐椂瀹冩槸绌虹殑锛屾濡SHOW TABLES灏嗗憡璇変綘鐨勶細
mysql> SHOW TABLES;
Empty set (0.00 sec)
杈冮毦鐨勯儴鍒嗘槸鍐冲畾浣犵殑鏁版嵁搴撶粨鏋勫簲璇ユ槸浠涔堬細浣犻渶瑕佷粈涔堟暟鎹簱琛紝鍚勬暟鎹簱琛ㄤ腑鏈変粈涔堟牱鐨勫垪銆
浣犲皢闇瑕佷竴涓寘鍚綘姣忎釜瀹犵墿鐨勮褰曠殑琛ㄣ傚畠鍙О涓pet琛紝骞朵笖瀹冨簲璇ュ寘鍚紝鏈灏戯紝姣忎釜鍔ㄧ墿鐨勫悕瀛椼傚洜涓哄悕瀛楁湰韬笉鏄緢鏈夎叮锛岃〃搴旇鍖呭惈鍙﹀鐨勪俊鎭備緥濡傦紝濡傛灉鍦ㄤ綘璞㈠吇瀹犵墿鐨勫搴湁瓒呰繃涓涓汉锛屼綘鍙兘鎯宠鍒楀嚭姣忎釜鍔ㄧ墿鐨勪富浜恒備綘鍙兘涔熸兂瑕佽褰曚緥濡傜绫诲拰鎬у埆鐨勪竴浜涘熀鏈殑鎻忚堪淇℃伅銆
骞撮緞鍛紵閭e彲鑳芥湁瓒o紝浣嗘槸瀛樺偍鍒颁竴涓暟鎹簱涓笉鏄竴浠跺ソ浜嬫儏銆傚勾榫勯殢鐫鏃堕棿娴侀濊屽彉鍖栵紝杩欐剰鍛崇潃浣犲皢瑕佷笉鏂湴鏇存柊浣犵殑璁板綍銆傜浉鍙, 瀛樺偍涓涓浐瀹氬间緥濡傜敓鏃ユ瘮杈冨ソ锛岄偅涔堬紝鏃犺浣曟椂浣犻渶瑕佸勾榫勶紝鍙互浠ュ綋鍓嶆棩鏈熷拰鍑虹敓鏃ユ湡涔嬮棿鐨勫樊鏉ヨ绠楀畠銆MySQL鎻愪緵浜嗘棩鏈熻繍绠楀嚱鏁帮紝鍥犳杩欏苟涓嶅洶闅俱傚瓨鍌ㄥ嚭鐢熸棩鏈熻岄潪骞撮緞杩樻湁鍏跺畠浼樼偣锛
路 浣犲彲浠ヤ娇鐢ㄦ暟鎹簱瀹屾垚杩欐牱鐨勪换鍔★紝渚嬪鐢熸垚鍗冲皢鍒版潵鐨勫疇鐗╃敓鏃ョ殑鎻愮ず銆傦紙濡傛灉浣犺涓鸿繖绫绘煡璇㈡湁鐐硅牏锛屾敞鎰忥紝杩欎笌浠庡晢鍔℃暟鎹簱鏉ヨ瘑鍒嚭涓嶄箙瑕佸彂缁欑敓鏃ョ璐虹殑瀹㈡埛鏄悓涓涓棶棰橈紝鍥犱负璁$畻鏈哄府鍔╃浜鸿仈缁溿傦級
路 浣犲彲浠ョ浉瀵逛簬鏃ユ湡鑰屼笉姝㈡槸褰撳墠鏃ユ湡鏉ヨ绠楀勾榫勩備緥濡傦紝濡傛灉浣犲湪鏁版嵁搴撳瓨鍌ㄦ浜℃棩鏈燂紝浣犺兘寰堝鏄撳湴璁$畻鍑轰竴鍙疇鐗╂鏃舵湁澶氬ぇ銆
浣犲彲鑳芥兂鍒pet琛ㄤ腑鍏跺畠鏈夌敤鐨勫叾瀹冪被鍨嬩俊鎭紝浣嗘槸鍒扮洰鍓嶄负姝㈣繖浜涘凡缁忚冻澶熶簡锛氬悕瀛椼佷富浜恒佺绫伙紝鎬у埆銆佸嚭鐢熷拰姝讳骸鏃ユ湡銆
浣跨敤涓涓CREATE TABLE璇彞鎸囧畾浣犵殑鏁版嵁搴撹〃鐨勫竷灞锛
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR閫傚悎浜name銆owner鍜species鍒楋紝鍥犱负鍒楀兼槸鍙橀暱鐨勩傝繖浜涘垪鐨勯暱搴︿笉蹇呴兘鐩稿悓锛岃屼笖涓嶅繀鏄20銆備綘鍙互鎸戦変粠1鍒65535鐨勪换浣曢暱搴︼紝浠庝腑閫夋嫨涓涓渶鍚堢悊鐨勫笺傦紙濡傛灉閫夋嫨寰椾笉鍚堥傦紝鍚庢潵璇佹槑浣犻渶瑕佷竴涓洿闀跨殑瀛楁锛MySQL鎻愪緵涓涓ALTER TABLE璇彞銆傦級
鍙互鐢ㄥ绉嶇被鍨嬬殑鍊兼潵琛ㄧず鍔ㄧ墿璁板綍涓殑鎬у埆锛屼緥濡傦紝"m"鍜"f"锛屾垨"male"鍜"female"銆備娇鐢ㄥ崟瀛楃"m"鍜"f"鏄渶绠鍗曠殑鏂规硶銆
寰堟樉鐒讹紝birth鍜death鍒楀簲閫夌敤DATE鏁版嵁绫汇
鍒涘缓浜嗘暟鎹簱琛ㄥ悗锛SHOW TABLES搴旇浜х敓涓浜涜緭鍑猴細
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet |
+---------------------+
涓轰簡楠岃瘉浣犵殑琛ㄦ槸鎸変綘鏈熸湜鐨勬柟寮忓垱寤猴紝浣跨敤涓涓DESCRIBE璇彞锛
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
浣犲彲浠ラ殢鏃朵娇鐢DESCRIBE锛屼緥濡傦紝濡傛灉浣犲繕璁拌〃涓殑鍒楃殑鍚嶇О鎴栫被鍨嬫椂銆
鍒涘缓琛ㄥ悗锛岄渶瑕佸~鍏ュ唴瀹广傞氳繃LOAD DATA鍜INSERT璇彞鍙互瀹屾垚璇ヤ换鍔°
鍋囧畾浣犵殑瀹犵墿绾綍鎻忚堪濡備笅銆傦紙鍋囧畾鍦MySQL涓湡鏈涚殑鏃ユ湡鏍煎紡鏄YYYY-MM-DD锛涜繖鍙兘涓庝綘涔犳儻鐨勪笉鍚屻傦級
name |
owner |
species |
sex |
birth |
death |
Fluffy |
Harold |
cat |
f |
1993-02-04 |
|
Claws |
Gwen |
cat |
m |
1994-03-17 |
|
Buffy |
Harold |
dog |
f |
1989-05-13 |
|
Fang |
Benny |
dog |
m |
1990-08-27 |
|
Bowser |
Diane |
dog |
m |
1979-08-31 |
1995-07-29 |
Chirpy |
Gwen |
bird |
f |
1998-09-11 |
|
Whistler |
Gwen |
bird |
|
1997-12-09 |
|
Slim |
Benny |
snake |
m |
1996-04-29 |
|
鍥犱负浣犳槸浠庝竴涓┖琛ㄥ紑濮嬬殑锛屽~鍏呭畠鐨勪竴涓畝鏄撴柟娉曟槸鍒涘缓涓涓枃鏈枃浠讹紝姣忎釜鍔ㄧ墿鍚勪竴琛岋紝鐒跺悗鐢ㄤ竴涓鍙ュ皢鏂囦欢鐨勫唴瀹硅杞藉埌琛ㄤ腑銆
浣犲彲浠ュ垱寤轰竴涓枃鏈枃浠鈥pet.txt鈥锛屾瘡琛屽寘鍚竴涓褰曪紝鐢ㄥ畾浣嶇(tab)鎶婂煎垎寮锛屽苟涓斾互CREATE TABLE璇彞涓垪鍑虹殑鍒楁搴忕粰鍑恒傚浜庝涪澶辩殑鍊(渚嬪鏈煡鐨勬у埆锛屾垨浠嶇劧娲荤潃鐨勫姩鐗╃殑姝讳骸鏃ユ湡)锛屼綘鍙互浣跨敤NULL鍊笺備负浜嗗湪浣犵殑鏂囨湰鏂囦欢涓〃绀鸿繖浜涘唴瀹癸紝浣跨敤\N锛堝弽鏂滅嚎锛屽瓧姣N锛銆備緥濡傦紝Whistler楦熺殑璁板綍搴斾负(杩欓噷鍊间箣闂寸殑绌虹櫧鏄竴涓畾浣嶇)锛
name |
owner |
species |
sex |
birth |
death |
Whistler |
Gwen |
bird |
\N |
1997-12-09 |
\N |
瑕佹兂灏嗘枃鏈枃浠鈥pet.txt鈥瑁呰浇鍒pet琛ㄤ腑锛屼娇鐢ㄨ繖涓懡浠わ細
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
璇锋敞鎰忓鏋滅敤Windows涓殑缂栬緫鍣紙浣跨敤\r\n鍋氫负琛岀殑缁撴潫绗锛鍒涘缓鏂囦欢锛屽簲浣跨敤锛
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
-> LINES TERMINATED BY '\r\n';
锛堝湪杩愯OS X鐨Apple鏈轰笂锛屽簲浣跨敤琛岀粨鏉熺'\r'銆傦級
濡傛灉浣犳効鎰忥紝浣犺兘鏄庣‘鍦板湪LOAD DATA璇彞涓寚鍑哄垪鍊肩殑鍒嗛殧绗﹀拰琛屽熬鏍囪锛屼絾鏄粯璁ゆ爣璁版槸瀹氫綅绗﹀拰鎹㈣绗︺傝繖瀵硅鍏ユ枃浠鈥pet.txt鈥鐨勮鍙ュ凡缁忚冻澶熴
濡傛灉璇ヨ鍙ュけ璐ワ紝鍙兘鏄綘瀹夎鐨MySQL涓嶄笌浣跨敤榛樿鍊肩殑鏈湴鏂囦欢鍏煎銆傚叧浜庡浣曟洿鏀硅鍙傝5.6.4鑺傦紝鈥淟OAD DATA LOCAL瀹夊叏闂鈥銆
濡傛灉鎯宠涓娆″鍔犱竴涓柊璁板綍锛屽彲浠ヤ娇鐢INSERT璇彞銆傛渶绠鍗曠殑褰㈠紡鏄紝鎻愪緵姣忎竴鍒楃殑鍊硷紝鍏堕『搴忎笌CREATE TABLE璇彞涓垪鐨勯『搴忕浉鍚屻傚亣瀹Diane鎶婁竴鍙柊浠撻紶鍛藉悕涓Puffball锛屼綘鍙互浣跨敤涓嬮潰鐨INSERT璇彞娣诲姞涓鏉℃柊璁板綍锛
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
娉ㄦ剰锛岃繖閲屽瓧绗︿覆鍜屾棩鏈熷煎潎涓哄紩鍙锋墿璧锋潵鐨勫瓧绗︿覆銆傚彟澶栵紝鍙互鐩存帴鐢INSERT璇彞鎻掑叆NULL浠h〃涓嶅瓨鍦ㄧ殑鍊笺備笉鑳戒娇鐢LOAD DATA涓墍绀虹殑鐨\N銆
浠庤繖涓緥瀛愶紝浣犲簲璇ヨ兘鐪嬪埌娑夊強寰堝鐨勯敭鍏ョ敤澶氫釜INSERT璇彞鑰岄潪鍗曚釜LOAD DATA璇彞瑁呰浇浣犵殑鍒濆璁板綍銆
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+
濡傛灉浣犳兂瑕佹祻瑙堟暣涓〃锛屽彲浠ヤ娇鐢ㄨ繖绉嶅舰寮忕殑SELECT锛渚嬪锛屽垰鍒氳杞戒簡鍒濆鏁版嵁闆嗕互鍚庛備篃鏈夊彲鑳戒綘鎯冲埌Bowser鐨勭敓鏃ョ湅璧锋潵涓嶅緢瀵广傛煡闃呬綘鍘熸潵鐨勫璋憋紝浣犲彂鐜版纭殑鍑虹敓骞存槸1989锛岃屼笉鏄1979銆
鑷冲皯鏈変袱绉嶄慨姝f柟娉曪細
路 缂栬緫鏂囦欢鈥pet.txt鈥鏀规閿欒锛岀劧鍚庝娇鐢DELETE鍜LOAD DATA娓呯┖骞堕噸鏂拌杞借〃:
路 mysql> DELETE FROM pet;
路 mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;
鐒惰, 濡傛灉杩欐牱鎿嶅仛锛屽繀椤婚噸鏂拌緭鍏Puffball璁板綍銆
路 鐢ㄤ竴涓UPDATE璇彞浠呬慨姝i敊璇褰曪細
路 mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
UPDATE鍙洿鏀规湁闂鐨勮褰曪紝涓嶉渶瑕侀噸鏂拌杞芥暟鎹簱琛ㄣ
鍙互浠庤〃涓彧閫夋嫨鐗瑰畾鐨勮銆備緥濡傦紝濡傛灉浣犳兂瑕侀獙璇佷綘瀵Bowser鐨勭敓鏃ユ墍鍋氱殑鏇存敼锛屾寜涓嬭堪鏂规硶閫夋嫨Bowser鐨勮褰曪細
mysql> SELECT * FROM pet WHERE name = 'Bowser';
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
杈撳嚭璇佸疄姝g‘鐨勫勾浠借褰曚负1989锛岃屼笉鏄1979銆
瀛楃涓叉瘮杈冩椂閫氬父瀵瑰ぇ灏忎簺涓嶆晱鎰燂紝鍥犳浣犲彲浠ュ皢鍚嶅瓧鎸囧畾涓"bowser"銆"BOWSER"绛夛紝鏌ヨ缁撴灉鐩稿悓銆
浣犲彲浠ュ湪浠讳綍鍒椾笂鎸囧畾鏉′欢锛屼笉鍙粎浠呮槸name銆備緥濡傦紝濡傛灉浣犳兂瑕佺煡閬撳摢涓姩鐗╁湪1998浠ュ悗鍑虹敓鐨勶紝娴嬭瘯birth鍒楋細
mysql> SELECT * FROM pet WHERE birth > '1998-1-1';
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
鍙互缁勫悎鏉′欢锛屼緥濡傦紝鎵惧嚭闆屾х殑鐙楋細
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
涓婇潰鐨勬煡璇娇鐢AND閫昏緫鎿嶄綔绗︼紝涔熸湁涓涓OR鎿嶄綔绗︼細
mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+
AND鍜OR鍙互娣风敤锛屼絾AND姣OR鍏锋湁鏇撮珮鐨勪紭鍏堢骇銆傚鏋滀綘浣跨敤涓や釜鎿嶄綔绗︼紝浣跨敤鍦嗘嫭鍙锋寚鏄庡浣曞鏉′欢杩涜鍒嗙粍鏄竴涓ソ涓绘剰锛
mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
-> OR (species = 'dog' AND sex = 'f');
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
mysql> SELECT name, birth FROM pet;
+----------+------------+
| name | birth |
+----------+------------+
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Buffy | 1989-05-13 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Puffball | 1999-03-30 |
+----------+------------+
鎵惧嚭璋佹嫢鏈夊疇鐗╋紝浣跨敤杩欎釜鏌ヨ锛
mysql> SELECT owner FROM pet;
+--------+
| owner |
+--------+
| Harold |
| Gwen |
| Harold |
| Benny |
| Diane |
| Gwen |
| Gwen |
| Benny |
| Diane |
+--------+
璇锋敞鎰忚鏌ヨ鍙槸绠鍗曞湴妫绱㈡瘡涓褰曠殑owner鍒楋紝骞朵笖浠栦滑涓殑涓浜涘嚭鐜板娆°備负浜嗕娇杈撳嚭鍑忓埌鏈灏戯紝澧炲姞鍏抽敭瀛DISTINCT妫绱㈠嚭姣忎釜鍞竴鐨勮緭鍑鸿褰曪細
mysql> SELECT DISTINCT owner FROM pet;
+--------+
| owner |
+--------+
| Benny |
| Diane |
| Gwen |
| Harold |
+--------+
鍙互浣跨敤涓涓WHERE瀛愬彞缁撳悎琛岄夋嫨涓庡垪閫夋嫨銆備緥濡傦紝瑕佹兂鏌ヨ鐙楀拰鐚殑鍑虹敓鏃ユ湡锛屼娇鐢ㄨ繖涓煡璇細
mysql> SELECT name, species, birth FROM pet
-> WHERE species = 'dog' OR species = 'cat';
+--------+---------+------------+
| name | species | birth |
+--------+---------+------------+
| Fluffy | cat | 1993-02-04 |
| Claws | cat | 1994-03-17 |
| Buffy | dog | 1989-05-13 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
+--------+---------+------------+
杩欓噷鏄姩鐗╃敓鏃ワ紝鎸夋棩鏈熸帓搴忥細
mysql> SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
| name | birth |
+----------+------------+
| Buffy | 1989-05-13 |
| Bowser | 1989-08-31 |
| Fang | 1990-08-27 |
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+
鍦ㄥ瓧绗︾被鍨嬪垪涓婏紝涓庢墍鏈夊叾浠栨瘮杈冩搷浣滅被浼硷紝鍒嗙被鍔熻兘姝e父鎯呭喌涓嬫槸浠ュ尯鍒嗗ぇ灏忓啓鐨勬柟寮忔墽琛岀殑銆傝繖鎰忓懗鐫锛屽浜庣瓑鍚屼絾澶у皬鍐欎笉鍚岀殑鍒楋紝骞舵湭瀹氫箟鍏堕『搴忋傚浜庢煇涓鍒楋紝鍙互浣跨敤BINARY寮哄埗鎵ц鍖哄垎澶у皬鍐欑殑鍒嗙被鍔熻兘锛屽锛ORDER BY BINARY col_name.
榛樿鎺掑簭鏄崌搴忥紝鏈灏忕殑鍊煎湪绗竴銆傝鎯充互闄嶅簭鎺掑簭锛屽湪浣犳鍦ㄦ帓搴忕殑鍒楀悕涓婂鍔DESC锛堥檷搴 锛夊叧閿瓧锛
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Fluffy | 1993-02-04 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Buffy | 1989-05-13 |
+----------+------------+
鍙互瀵瑰涓垪杩涜鎺掑簭锛屽苟涓斿彲浠ユ寜涓嶅悓鐨勬柟鍚戝涓嶅悓鐨勫垪杩涜鎺掑簭銆備緥濡傦紝鎸夊崌搴忓鍔ㄧ墿鐨勭绫昏繘琛屾帓搴忥紝鐒跺悗鎸夐檷搴忔牴鎹敓鏃ュ鍚勫姩鐗╃绫昏繘琛屾帓搴忥紙鏈骞磋交鐨勫姩鐗╁湪鏈鍓嶉潰锛夛紝浣跨敤涓嬪垪鏌ヨ锛
mysql> SELECT name, species, birth FROM pet
-> ORDER BY species, birth DESC;
+----------+---------+------------+
| name | species | birth |
+----------+---------+------------+
| Chirpy | bird | 1998-09-11 |
| Whistler | bird | 1997-12-09 |
| Claws | cat | 1994-03-17 |
| Fluffy | cat | 1993-02-04 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
| Buffy | dog | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |
| Slim | snake | 1996-04-29 |
+----------+---------+------------+
娉ㄦ剰DESC鍏抽敭瀛椾粎閫傜敤浜庡湪瀹冨墠闈㈢殑鍒楀悕(birth)锛涗笉褰卞搷species鍒楃殑鎺掑簭椤哄簭銆
MySQL鎻愪緵浜嗗嚑涓嚱鏁帮紝鍙互鐢ㄦ潵璁$畻鏃ユ湡锛屼緥濡傦紝璁$畻骞撮緞鎴栨彁鍙栨棩鏈熼儴鍒嗐
瑕佹兂纭畾姣忎釜瀹犵墿鏈夊澶э紝鍙互璁$畻褰撳墠鏃ユ湡鐨勫勾鍜屽嚭鐢熸棩鏈熶箣闂寸殑宸傚鏋滃綋鍓嶆棩鏈熺殑鏃ュ巻骞存瘮鍑虹敓鏃ユ湡鏃╋紝鍒欏噺鍘讳竴骞淬備互涓嬫煡璇㈡樉绀轰簡姣忎釜瀹犵墿鐨勫嚭鐢熸棩鏈熴佸綋鍓嶆棩鏈熷拰骞撮緞鏁板肩殑骞存暟瀛椼
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM pet;
+----------+------------+------------+------+
| name | birth | CURDATE() | age |
+----------+------------+------------+------+
| Fluffy | 1993-02-04 | 2003-08-19 | 10 |
| Claws | 1994-03-17 | 2003-08-19 | 9 |
| Buffy | 1989-05-13 | 2003-08-19 | 14 |
| Fang | 1990-08-27 | 2003-08-19 | 12 |
| Bowser | 1989-08-31 | 2003-08-19 | 13 |
| Chirpy | 1998-09-11 | 2003-08-19 | 4 |
| Whistler | 1997-12-09 | 2003-08-19 | 5 |
| Slim | 1996-04-29 | 2003-08-19 | 7 |
| Puffball | 1999-03-30 | 2003-08-19 | 4 |
+----------+------------+------------+------+
姝ゅ锛YEAR()鎻愬彇鏃ユ湡鐨勫勾閮ㄥ垎锛RIGHT()鎻愬彇鏃ユ湡鐨MM-DD (鏃ュ巻骞)閮ㄥ垎鐨勬渶鍙抽潰5涓瓧绗︺傛瘮杈MM-DD鍊肩殑琛ㄨ揪寮忛儴鍒嗙殑鍊间竴鑸负1鎴0锛屽鏋CURDATE()鐨勫勾姣birth鐨勫勾鏃╋紝鍒欏勾浠藉簲鍑忓幓1銆傛暣涓〃杈惧紡鏈変簺闅炬噦锛屼娇鐢alias (age)鏉ヤ娇杈撳嚭鐨勫垪鏍囪鏇存湁鎰忎箟銆
灏界鏌ヨ鍙锛屽鏋滀互鏌愪釜椤哄簭鎺掑垪琛岋紝鍒欒兘鏇村鏄撳湴娴忚缁撴灉銆傛坊鍔ORDER BY name瀛愬彞鎸夌収鍚嶅瓧瀵硅緭鍑鸿繘琛屾帓搴忓垯鑳藉瀹炵幇銆
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM pet ORDER BY name;
+----------+------------+------------+------+
| name | birth | CURDATE() | age |
+----------+------------+------------+------+
| Bowser | 1989-08-31 | 2003-08-19 | 13 |
| Buffy | 1989-05-13 | 2003-08-19 | 14 |
| Chirpy | 1998-09-11 | 2003-08-19 | 4 |
| Claws | 1994-03-17 | 2003-08-19 | 9 |
| Fang | 1990-08-27 | 2003-08-19 | 12 |
| Fluffy | 1993-02-04 | 2003-08-19 | 10 |
| Puffball | 1999-03-30 | 2003-08-19 | 4 |
| Slim | 1996-04-29 | 2003-08-19 | 7 |
| Whistler | 1997-12-09 | 2003-08-19 | 5 |
+----------+------------+------------+------+
涓轰簡鎸age鑰岄潪name鎺掑簭杈撳嚭锛屽彧瑕佸啀浣跨敤涓涓ORDER BY瀛愬彞锛
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM pet ORDER BY age;
+----------+------------+------------+------+
| name | birth | CURDATE() | age |
+----------+------------+------------+------+
| Chirpy | 1998-09-11 | 2003-08-19 | 4 |
| Puffball | 1999-03-30 | 2003-08-19 | 4 |
| Whistler | 1997-12-09 | 2003-08-19 | 5 |
| Slim | 1996-04-29 | 2003-08-19 | 7 |
| Claws | 1994-03-17 | 2003-08-19 | 9 |
| Fluffy | 1993-02-04 | 2003-08-19 | 10 |
| Fang | 1990-08-27 | 2003-08-19 | 12 |
| Bowser | 1989-08-31 | 2003-08-19 | 13 |
| Buffy | 1989-05-13 | 2003-08-19 | 14 |
+----------+------------+------------+------+
鍙互浣跨敤涓涓被浼肩殑鏌ヨ鏉ョ‘瀹氬凡缁忔浜″姩鐗╃殑姝讳骸骞撮緞銆備綘閫氳繃妫鏌death鍊兼槸鍚︽槸NULL鏉ョ‘瀹氭槸鍝簺鍔ㄧ墿锛岀劧鍚庯紝瀵逛簬閭d簺闈NULL鍊肩殑鍔ㄧ墿锛岄渶瑕佽绠楀嚭death鍜birth鍊间箣闂寸殑宸細
mysql> SELECT name, birth, death,
-> (YEAR(death)-YEAR(birth)) - (RIGHT(death,5)<RIGHT(birth,5))
-> AS age
-> FROM pet WHERE death IS NOT NULL ORDER BY age;
+--------+------------+------------+------+
| name | birth | death | age |
+--------+------------+------------+------+
| Bowser | 1989-08-31 | 1995-07-29 | 5 |
+--------+------------+------------+------+
鏌ヨ浣跨敤death IS
NOT NULL鑰岄潪death
!= NULL锛屽洜涓NULL鏄壒娈婄殑鍊硷紝涓嶈兘浣跨敤鏅氭瘮杈冪鏉ユ瘮杈冿紝浠ュ悗浼氱粰鍑鸿В閲娿傚弬瑙3.3.4.6鑺傦紝鈥淣ULL鍊兼搷浣鈥銆
濡傛灉浣犳兂瑕佺煡閬撳摢涓姩鐗╀笅涓湀杩囩敓鏃ワ紝鎬庝箞鍔烇紵瀵逛簬杩欑被璁$畻锛屽勾鍜屽ぉ鏄棤鍏崇殑锛屼綘鍙渶瑕佹彁鍙birth鍒楃殑鏈堜唤閮ㄥ垎銆MySQL鎻愪緵鍑犱釜鏃ユ湡閮ㄥ垎鐨勬彁鍙栧嚱鏁帮紝渚嬪YEAR( )銆MONTH( )鍜DAYOFMONTH( )銆傚湪杩欓噷MONTH()鏄傚悎鐨勫嚱鏁般備负浜嗙湅瀹冩庢牱宸ヤ綔锛岃繍琛屼竴涓畝鍗曠殑鏌ヨ锛屾樉绀birth鍜MONTH(birth)鐨勫硷細
mysql> SELECT name, birth, MONTH(birth) FROM pet;
+----------+------------+--------------+
| name | birth | MONTH(birth) |
+----------+------------+--------------+
| Fluffy | 1993-02-04 | 2 |
| Claws | 1994-03-17 | 3 |
| Buffy | 1989-05-13 | 5 |
| Fang | 1990-08-27 | 8 |
| Bowser | 1989-08-31 | 8 |
| Chirpy | 1998-09-11 | 9 |
| Whistler | 1997-12-09 | 12 |
| Slim | 1996-04-29 | 4 |
| Puffball | 1999-03-30 | 3 |
+----------+------------+--------------+
鎵惧嚭涓嬩釜鏈堢敓鏃ョ殑鍔ㄧ墿涔熸槸瀹规槗鐨勩傚亣瀹氬綋鍓嶆湀鏄4鏈堬紝閭d箞鏈堝兼槸4锛浣犲彲浠ユ壘鍦5鏈堝嚭鐢熺殑鍔ㄧ墿 (5鏈)锛屾柟娉曟槸锛
mysql> SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
+-------+------------+
| name | birth |
+-------+------------+
| Buffy | 1989-05-13 |
+-------+------------+
濡傛灉褰撳墠鏈堜唤鏄12鏈堬紝灏辨湁鐐瑰鏉備簡銆備綘涓嶈兘鍙妸1鍔犲埌鏈堜唤鏁(12)涓婂苟瀵绘壘鍦13鏈堝嚭鐢熺殑鍔ㄧ墿锛屽洜涓烘病鏈夎繖鏍风殑鏈堜唤銆傜浉鍙嶏紝浣犲簲瀵绘壘鍦1鏈堝嚭鐢熺殑鍔ㄧ墿(1鏈) 銆
浣犵敋鑷冲彲浠ョ紪鍐欐煡璇紝涓嶇褰撳墠鏈堜唤鏄粈涔堝畠閮借兘宸ヤ綔銆傞噰鐢ㄨ繖绉嶆柟娉曚笉蹇呭湪鏌ヨ涓娇鐢ㄤ竴涓壒瀹氱殑鏈堜唤锛DATE_ADD( )鍏佽鍦ㄤ竴涓粰瀹氱殑鏃ユ湡涓婂姞涓婃椂闂撮棿闅斻傚鏋滃湪NOW( )鍊间笂鍔犱笂涓涓湀锛岀劧鍚庣敤MONTH()鎻愬彇鏈堜唤锛岀粨鏋滀骇鐢熺敓鏃ユ墍鍦ㄦ湀浠斤細
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));
瀹屾垚璇ヤ换鍔$殑鍙︿竴涓柟娉曟槸鍔1浠ュ緱鍑哄綋鍓嶆湀浠界殑涓嬩竴涓湀(鍦ㄤ娇鐢ㄥ彇妯″嚱鏁(MOD)鍚庯紝濡傛灉鏈堜唤褰撳墠鍊兼槸12锛屽垯鈥滃洖婊氣濆埌鍊0)锛
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MOD(MONTH(CURDATE()), 12) + 1;
娉ㄦ剰锛MONTH杩斿洖鍦1鍜12涔嬮棿鐨勪竴涓暟瀛楋紝涓MOD(something,12)杩斿洖鍦0鍜11涔嬮棿鐨勪竴涓暟瀛楋紝鍥犳蹇呴』鍦MOD( )浠ュ悗鍔1锛屽惁鍒欐垜浠皢浠11鏈( 11 )璺冲埌1鏈(1)銆
NULL鍊煎彲鑳戒护浜烘劅鍒板鎬洿鍒颁綘涔犳儻瀹冦傛蹇典笂锛NULL鎰忓懗鐫鈥滄病鏈夊尖濇垨鈥滄湭鐭ュ尖濓紝涓斿畠琚湅浣滀笌浼椾笉鍚岀殑鍊笺備负浜嗘祴璇NULL锛屼綘涓嶈兘浣跨敤绠楁湳姣旇緝 鎿嶄綔绗︿緥濡=銆<鎴!=銆備负浜嗚鏄庡畠锛岃瘯璇曚笅鍒楁煡璇細
mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
寰堟樉鐒朵綘涓嶈兘閫氳繃杩欎簺姣旇緝寰楀埌鏈夋剰涔夌殑缁撴灉銆傜浉鍙嶄娇鐢IS NULL鍜IS NOT NULL鎿嶄綔绗︼細
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
璇锋敞鎰忓湪MySQL涓紝0鎴 NULL鎰忓懗鐫鍋囪屽叾瀹冨兼剰鍛崇潃鐪熴傚竷灏旇繍绠楃殑榛樿鐪熷兼槸1銆
瀵NULL鐨勭壒娈婂鐞嗗嵆鏄湪鍓嶉潰鐨勭珷鑺備腑锛屼负浜嗗喅瀹氬摢涓姩鐗╀笉鍐嶆槸娲荤潃鐨勶紝浣跨敤death IS NOT NULL鑰屼笉浣跨敤death != NULL鐨勫師鍥犮
鍦GROUP BY涓紝涓や釜NULL鍊艰涓虹浉鍚屻
鎵цORDER BY鏃讹紝濡傛灉杩愯 ORDER BY ... ASC锛鍒NULL鍊煎嚭鐜板湪鏈鍓嶉潰锛岃嫢杩愯ORDER BY ... DESC锛屽垯NULL鍊煎嚭鐜板湪鏈鍚庨潰銆
NULL鎿嶄綔鐨勫父瑙侀敊璇槸涓嶈兘鍦ㄥ畾涔変负NOT NULL鐨勫垪鍐呮彃鍏0鎴栫┖瀛楃涓诧紝浣嗕簨瀹炲苟闈炲姝ゃ傚湪NULL琛ㄧず"娌℃湁鏁板"鐨勫湴鏂规湁鏁板笺備娇鐢IS [NOT] NULL鍒欏彲浠ュ緢瀹规槗鍦拌繘琛屾祴璇曪紝濡備笅鎵绀猴細
mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL;
+-----------+---------------+------------+----------------+
| 0 IS NULL | 0 IS NOT NULL | '' IS NULL | '' IS NOT NULL |
+-----------+---------------+------------+----------------+
| 0 | 1 | 0 | 1 |
+-----------+---------------+------------+----------------+
鍥犳瀹屽叏鍙互鍦ㄥ畾涔変负NOT
NULL鐨勫垪鍐呮彃鍏0鎴栫┖瀛楃涓诧紝瀹為檯鏄NOT
NULL銆傚弬瑙A.5.3鑺傦紝鈥滀笌NULL鍊兼湁鍏崇殑闂鈥銆
MySQL鎻愪緵鏍囧噯鐨SQL妯″紡鍖归厤锛屼互鍙婁竴绉嶅熀浜庤薄Unix瀹炵敤绋嬪簭濡vi銆grep鍜sed鐨勬墿灞曟鍒欒〃杈惧紡妯″紡鍖归厤鐨勬牸寮忋
SQL妯″紡鍖归厤鍏佽浣犱娇鐢鈥_鈥鍖归厤浠讳綍鍗曚釜瀛楃锛岃鈥%鈥鍖归厤浠绘剰鏁扮洰瀛楃(鍖呮嫭闆跺瓧绗)銆傚湪 MySQL涓紝SQL鐨勬ā寮忛粯璁ゆ槸蹇界暐澶у皬鍐欑殑銆備笅闈㈢粰鍑轰竴浜涗緥瀛愩傛敞鎰忎娇鐢SQL妯″紡鏃讹紝涓嶈兘浣跨敤=鎴!=锛涜屽簲浣跨敤LIKE鎴NOT LIKE姣旇緝鎿嶄綔绗︺
瑕佹兂鎵惧嚭浠鈥b鈥寮澶寸殑鍚嶅瓧锛
mysql> SELECT * FROM pet WHERE name LIKE 'b%';
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+
瑕佹兂鎵惧嚭浠鈥fy鈥缁撳熬鐨勫悕瀛楋細
mysql> SELECT * FROM pet WHERE name LIKE '%fy';
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+
瑕佹兂鎵惧嚭鍖呭惈鈥w鈥鐨勫悕瀛楋細
mysql> SELECT * FROM pet WHERE name LIKE '%w%';
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+
瑕佹兂鎵惧嚭姝eソ鍖呭惈5涓瓧绗︾殑鍚嶅瓧锛屼娇鐢鈥_鈥妯″紡瀛楃锛
mysql> SELECT * FROM pet WHERE name LIKE '_____';
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
鐢MySQL鎻愪緵鐨勬ā寮忓尮閰嶇殑鍏跺畠绫诲瀷鏄娇鐢ㄦ墿灞曟鍒欒〃杈惧紡銆傚綋浣犲杩欑被妯″紡杩涜鍖归厤娴嬭瘯鏃讹紝浣跨敤REGEXP鍜NOT REGEXP鎿嶄綔绗(鎴RLIKE鍜NOT RLIKE锛屽畠浠槸鍚屼箟璇)銆
鎵╁睍姝e垯琛ㄨ揪寮忕殑涓浜涘瓧绗︽槸锛
路 鈥.鈥欏尮閰嶄换浣曞崟涓殑瀛楃銆
路 瀛楃绫鈥[...]鈥鍖归厤鍦ㄦ柟鎷彿鍐呯殑浠讳綍瀛楃銆備緥濡傦紝鈥[abc]鈥鍖归厤鈥a鈥銆鈥b鈥鎴鈥c鈥銆備负浜嗗懡鍚嶅瓧绗︾殑鑼冨洿锛屼娇鐢ㄤ竴涓-鈥濄鈥[a-z]鈥鍖归厤浠讳綍瀛楁瘝锛岃鈥[0-9]鈥鍖归厤浠讳綍鏁板瓧銆
路 鈥 * 鈥鍖归厤闆朵釜鎴栧涓湪瀹冨墠闈㈢殑瀛楃銆備緥濡傦紝鈥x*鈥鍖归厤浠讳綍鏁伴噺鐨鈥x鈥瀛楃锛鈥[0-9]*鈥鍖归厤浠讳綍鏁伴噺鐨勬暟瀛楋紝鑰鈥.*鈥鍖归厤浠讳綍鏁伴噺鐨勪换浣曞瓧绗︺
涓轰簡璇存槑鎵╁睍姝e垯琛ㄨ揪寮忓浣曞伐浣滐紝涓嬮潰浣跨敤REGEXP閲嶅啓涓婇潰鎵绀虹殑LIKE鏌ヨ锛
涓轰簡鎵惧嚭浠鈥b鈥寮澶寸殑鍚嶅瓧锛屼娇鐢鈥^鈥鍖归厤鍚嶅瓧鐨勫紑濮嬶細
mysql> SELECT * FROM pet WHERE name REGEXP '^b';
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+
濡傛灉浣犳兂寮哄埗浣REGEXP姣旇緝鍖哄垎澶у皬鍐欙紝浣跨敤BINARY鍏抽敭瀛椾娇鍏朵腑涓涓瓧绗︿覆鍙樹负浜岃繘鍒跺瓧绗︿覆銆傝鏌ヨ鍙尮閰嶅悕绉伴瀛楁瘝鐨勫皬鍐欌b鈥欍
mysql> SELECT * FROM pet WHERE name REGEXP BINARY '^b';
涓轰簡鎵惧嚭浠鈥fy鈥缁撳熬鐨勫悕瀛楋紝浣跨敤鈥$鈥鍖归厤鍚嶅瓧鐨勭粨灏撅細
mysql> SELECT * FROM pet WHERE name REGEXP 'fy$';
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+
涓轰簡鎵惧嚭鍖呭惈涓涓鈥w鈥鐨勫悕瀛楋紝浣跨敤浠ヤ笅鏌ヨ锛
mysql> SELECT * FROM pet WHERE name REGEXP 'w';
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+
鏃㈢劧濡傛灉涓涓鍒欒〃杈惧紡鍑虹幇鍦ㄥ肩殑浠讳綍鍦版柟锛屽叾妯″紡鍖归厤浜嗭紝灏变笉蹇呭湪鍏堝墠鐨勬煡璇腑鍦ㄦā寮忕殑涓や晶鏀剧疆涓涓氶厤绗︿互浣垮緱瀹冨尮閰嶆暣涓硷紝灏卞儚浣犱娇鐢ㄤ簡涓涓SQL妯″紡閭f牱銆
涓轰簡鎵惧嚭鍖呭惈姝eソ5涓瓧绗︾殑鍚嶅瓧锛屼娇鐢鈥^鈥鍜鈥$鈥鍖归厤鍚嶅瓧鐨勫紑濮嬪拰缁撳熬锛屽拰5涓鈥.鈥瀹炰緥鍦ㄤ袱鑰呬箣闂达細
mysql> SELECT * FROM pet WHERE name REGEXP '^.....$';
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
浣犱篃鍙互浣跨敤鈥{n}鈥鈥滈噸澶n娆♀濇搷浣滅閲嶅啓鍓嶉潰鐨勬煡璇細
mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
闄勫綍G锛MySQL姝e垯琛ㄨ揪寮 鎻愪緵浜嗗叧浜庢鍒欒〃杈惧紡鐨勫彞娉曠殑璇︾粏淇℃伅銆
璁$畻浣犳嫢鏈夊姩鐗╃殑鎬绘暟鐩笌鈥滃湪pet琛ㄤ腑鏈夊灏戣?鈥濇槸鍚屾牱鐨勯棶棰橈紝鍥犱负姣忎釜瀹犵墿鏈変竴涓褰曘COUNT(*)鍑芥暟璁$畻琛屾暟锛屾墍浠ヨ绠楀姩鐗╂暟鐩殑鏌ヨ搴斾负锛
mysql> SELECT COUNT(*) FROM pet;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+
鍦ㄥ墠闈紝浣犳绱簡鎷ユ湁瀹犵墿鐨勪汉鐨勫悕瀛椼傚鏋滀綘鎯宠鐭ラ亾姣忎釜涓讳汉鏈夊灏戝疇鐗╋紝浣犲彲浠ヤ娇鐢COUNT( )鍑芥暟锛
mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;
+--------+----------+
| owner | COUNT(*) |
+--------+----------+
| Benny | 2 |
| Diane | 2 |
| Gwen | 3 |
| Harold | 2 |
+--------+----------+
娉ㄦ剰锛屼娇鐢GROUP BY瀵规瘡涓owner鐨勬墍鏈夎褰曞垎缁勶紝娌℃湁瀹冿紝浣犱細寰楀埌閿欒娑堟伅锛
mysql> SELECT owner, COUNT(*) FROM pet;
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...)
with no GROUP columns is illegal if there is no GROUP BY clause
COUNT( )鍜GROUP BY浠ュ悇绉嶆柟寮忓垎绫讳綘鐨勬暟鎹備笅鍒椾緥瀛愭樉绀哄嚭杩涜鍔ㄧ墿鏅煡鎿嶄綔鐨勪笉鍚屾柟寮忋
姣忕鍔ㄧ墿鐨勬暟閲忥細
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
+---------+----------+
| species | COUNT(*) |
+---------+----------+
| bird | 2 |
| cat | 2 |
| dog | 3 |
| hamster | 1 |
| snake | 1 |
+---------+----------+
姣忕鎬у埆鐨勫姩鐗╂暟閲忥細
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
+------+----------+
| sex | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+
锛堝湪杩欎釜杈撳嚭涓紝NULL琛ㄧず鈥滄湭鐭ユу埆鈥濄傦級
鎸夌绫诲拰鎬у埆缁勫悎鐨勫姩鐗╂暟閲忥細
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | NULL | 1 |
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
鑻ヤ娇鐢COUNT( )锛屼綘涓嶅繀妫绱㈡暣涓〃銆備緥濡, 鍓嶉潰鐨勬煡璇紝褰撳彧瀵圭嫍鍜岀尗杩涜鏃讹紝搴斾负锛
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE species = 'dog' OR species = 'cat'
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
+---------+------+----------+
鎴栵紝濡傛灉浣犱粎闇瑕佺煡閬撳凡鐭ユу埆鐨勬寜鎬у埆鐨勫姩鐗╂暟鐩細
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE sex IS NOT NULL
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
路 瀹冮渶瑕佸寘鍚疇鐗╁悕瀛椾互渚夸綘鐭ラ亾姣忎釜浜嬩欢灞炰簬鍝釜鍔ㄧ墿銆
路 闇瑕佷竴涓棩鏈熶互渚夸綘鐭ラ亾浜嬩欢鏄粈涔堟椂鍊欏彂鐢熺殑銆
路 闇瑕佷竴涓弿杩颁簨浠剁殑瀛楁銆
路 濡傛灉浣犳兂瑕佸浜嬩欢杩涜鍒嗙被锛屽垯闇瑕佷竴涓簨浠剁被鍨嬪瓧娈点
缁煎悎涓婅堪鍥犵礌锛event琛ㄧ殑CREATE TABLE璇彞搴斾负锛
mysql> CREATE TABLE event (name VARCHAR(20), date DATE,
-> type VARCHAR(15), remark VARCHAR(255));
瀵逛簬pet琛紝鏈瀹规槗鐨勬柟娉曟槸鍒涘缓鍖呭惈淇℃伅鐨勭敤瀹氫綅绗﹀垎闅旂殑鏂囨湰鏂囦欢鏉ヨ杞藉垵濮嬭褰曪細
name |
date |
type |
remark |
Fluffy |
1995-05-15 |
litter |
4 kittens, 3 female, 1 male |
Buffy |
1993-06-23 |
litter |
5 puppies, 2 female, 3 male |
Buffy |
1994-06-19 |
litter |
3 puppies, 3 female |
Chirpy |
1999-03-21 |
vet |
needed beak straightened |
Slim |
1997-08-03 |
vet |
broken rib |
Bowser |
1991-10-12 |
kennel |
|
Fang |
1991-10-12 |
kennel |
|
Fang |
1998-08-28 |
birthday |
Gave him a new chew toy |
Claws |
1998-03-17 |
birthday |
Gave him a new flea collar |
Whistler |
1998-12-09 |
birthday |
First birthday |
閲囩敤濡備笅鏂瑰紡瑁呰浇璁板綍锛
mysql> LOAD DATA LOCAL INFILE 'event.txt' INTO TABLE event;
鏍规嵁浣犱粠宸茬粡杩愯鍦pet琛ㄤ笂鐨勬煡璇腑瀛﹀埌鐨勶紝浣犲簲璇ヨ兘鎵ц瀵event琛ㄤ腑璁板綍鐨勬绱紱鍘熺悊鏄竴鏍风殑銆備絾鏄粈涔堟椂鍊event琛ㄦ湰韬笉鑳藉洖绛斾綘鍙兘闂殑闂鍛紵
褰撲粬浠湁浜嗕竴绐濆皬鍔ㄧ墿鏃讹紝鍋囧畾浣犳兂瑕佹壘鍑烘瘡鍙疇鐗╃殑骞撮緞銆傛垜浠墠闈㈢湅鍒颁簡濡備綍閫氳繃涓や釜鏃ユ湡璁$畻骞撮緞銆event琛ㄤ腑鏈夋瘝浜茬殑鐢熶骇鏃ユ湡锛屼絾鏄负浜嗚绠楁瘝浜茬殑骞撮緞锛屼綘闇瑕佸ス鐨勫嚭鐢熸棩鏈燂紝瀛樺偍鍦pet琛ㄤ腑銆傝鏄庢煡璇㈤渶瑕佷袱涓〃锛
mysql> SELECT pet.name,
-> (YEAR(date)-YEAR(birth)) - (RIGHT(date,5)<RIGHT(birth,5)) AS age,
-> remark
-> FROM pet, event
-> WHERE pet.name = event.name AND event.type = 'litter';
+--------+------+-----------------------------+
| name | age | remark |
+--------+------+-----------------------------+
| Fluffy | 2 | 4 kittens, 3 female, 1 male |
| Buffy | 4 | 5 puppies, 2 female, 3 male |
| Buffy | 5 | 3 puppies, 3 female |
+--------+------+-----------------------------+
鍏充簬璇ユ煡璇㈣娉ㄦ剰鐨勫嚑浠朵簨鎯咃細
浣犱笉蹇呮湁2涓笉鍚岀殑琛ㄦ潵杩涜鑱旂粨銆傚鏋滀綘鎯宠灏嗕竴涓〃鐨勮褰曚笌鍚屼竴涓〃鐨勫叾瀹冭褰曡繘琛屾瘮杈冿紝鍙互灏嗕竴涓〃鑱旂粨鍒拌嚜韬備緥濡傦紝涓轰簡鍦ㄤ綘鐨勫疇鐗╀箣涓箒娈栭厤鍋讹紝浣犲彲浠ョ敤pet鑱旂粨鑷韩鏉ヨ繘琛岀浉浼肩绫荤殑闆勯泴閰嶅锛
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
-> FROM pet AS p1, pet AS p2
-> WHERE p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';
+--------+------+--------+------+---------+
| name | sex | name | sex | species |
+--------+------+--------+------+---------+
| Fluffy | f | Claws | m | cat |
| Buffy | f | Fang | m | dog |
| Buffy | f | Bowser | m | dog |
+--------+------+--------+------+---------+
鍦ㄨ繖涓煡璇腑锛屾垜浠负琛ㄥ悕鎸囧畾鍒悕浠ヤ究鑳藉紩鐢ㄥ垪骞朵笖浣垮緱姣忎竴涓垪寮曠敤涓庡摢涓〃瀹炰緥鐩稿叧鑱旀洿鐩磋銆
浣犲凡缁忚鍒颁簡SHOW DATABASES锛屽畠鍒楀嚭鐢辨湇鍔″櫒绠$悊鐨勬暟鎹簱銆備负浜嗘壘鍑哄綋鍓嶉夋嫨浜嗗摢涓暟鎹簱锛屼娇鐢DATABASE( )鍑芥暟锛
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
濡傛灉浣犺繕娌¢夋嫨浠讳綍鏁版嵁搴擄紝缁撴灉鏄NULL銆
涓轰簡鎵惧嚭褰撳墠鐨勬暟鎹簱鍖呭惈浠涔堣〃(渚嬪锛屽綋浣犱笉鑳界‘瀹氫竴涓〃鐨勫悕瀛)锛屼娇鐢ㄨ繖涓懡浠わ細
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| event |
| pet |
+---------------------+
濡傛灉浣犳兂瑕佺煡閬撲竴涓〃鐨勭粨鏋勶紝鍙互浣跨敤DESCRIBE鍛戒护锛涘畠鏄剧ず琛ㄤ腑姣忎釜鍒楃殑淇℃伅锛
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
Field鏄剧ず鍒楀悕瀛楋紝Type鏄垪鐨勬暟鎹被鍨嬶紝Null琛ㄧず鍒楁槸鍚﹁兘鍖呭惈NULL鍊硷紝Key鏄剧ず鍒楁槸鍚﹁绱㈠紩鑰Default鎸囧畾鍒楃殑榛樿鍊笺
濡傛灉琛ㄦ湁绱㈠紩锛SHOW INDEX FROM tbl_name鐢熸垚鏈夊叧绱㈠紩鐨勪俊鎭
shell> mysql < batch-file
濡傛灉鍦Windows涓嬭繍琛mysql锛屽苟涓旀枃浠朵腑鏈変竴浜涘彲浠ラ犳垚闂鐨勭壒娈婂瓧绗︼紝鍙互杩欐牱鎿嶄綔锛
C:\> mysql -e "source batch-file"
濡傛灉浣犻渶瑕佸湪鍛戒护琛屼笂鎸囧畾杩炴帴鍙傛暟锛屽懡浠ゅ簲涓猴細
shell> mysql -h host -u user -p < batch-file
Enter password: ********
褰撹繖鏍锋搷浣mysql鏃讹紝鍒欏垱寤轰竴涓剼鏈枃浠讹紝鐒跺悗鎵ц鑴氭湰銆
濡傛灉浣犳兂鍦ㄨ鍙ュ嚭鐜伴敊璇殑鏃跺欎粛鎯崇户缁墽琛岃剼鏈紝鍒欏簲浣跨敤--force鍛戒护琛岄夐」銆
涓轰粈涔堣浣跨敤涓涓剼鏈紵鏈夊緢澶氬師鍥狅細
路 shell> mysql < batch-file | more
路 shell> mysql < batch-file > mysql.out
褰撲綘浠ユ壒妯″紡杩愯mysql鏃讹紝姣旇捣浣犱氦浜掑湴浣跨敤瀹冩椂锛屽叾榛樿杈撳嚭鏍煎紡鏄笉鍚岀殑(鏇寸畝鏄庝簺)銆備緥濡傦紝褰撲氦浜掑紡杩愯SELECT DISTINCT species FROM pet鏃讹紝杈撳嚭搴斾负锛
+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+
浣嗘槸褰撲互鎵规ā寮忚繍琛屾椂锛岃緭鍑哄簲涓猴細
species
bird
cat
dog
hamster
snake
濡傛灉浣犳兂瑕佸湪鎵规ā寮忎腑寰楀埌浜や簰杈撳嚭鏍煎紡锛屼娇鐢mysql -t銆備负浜嗗洖鏄句互杈撳嚭琚墽琛岀殑鍛戒护锛屼娇鐢mysql -vvv銆
浣犺繕鍙互浣跨敤婧愪唬鐮佹垨 \.鍛戒护浠mysql鎻愮ず绗﹁繍琛岃剼鏈細
mysql> source filename;
mysql> \. filename
涓嬮潰鏄竴浜涘涔犲浣曠敤MySQL瑙e喅涓浜涘父瑙侀棶棰樼殑渚嬪瓙銆
鍦ㄤ竴浜涗緥瀛愪腑锛屼娇鐢ㄦ暟鎹簱琛ㄢshop鈥濇潵鍌ㄥ瓨鏌愪釜鍟嗕汉锛堢粡閿鍟嗭級鐨勬瘡浠剁墿鍝(鐗╁搧鍙)鐨勪环鏍笺傚亣瀹氭瘡涓晢浜哄姣忛」鐗╁搧鏈変竴涓浐瀹氫环鏍硷紝閭d箞(鐗╁搧锛屽晢浜)鍗充负璇ヨ褰曠殑涓诲叧閿瓧銆
鍚姩鍛戒护琛屽伐鍏mysql骞堕夋嫨鏁版嵁搴擄細
shell> mysql your-database-name
锛堝湪澶у鏁MySQL涓紝浣犲彲浠ヤ娇鐢test鏁版嵁搴擄級銆
浣犲彲浠ヤ娇鐢ㄤ互涓嬭鍙ュ垱寤虹ず渚嬭〃锛
mysql> CREATE TABLE shop (
-> article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
-> dealer CHAR(20) DEFAULT '' NOT NULL,
-> price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
-> PRIMARY KEY(article, dealer));
mysql> INSERT INTO shop VALUES
-> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
-> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
鎵ц璇彞鍚庯紝琛ㄥ簲鍖呭惈浠ヤ笅鍐呭锛
mysql> SELECT * FROM shop;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+
鈥滄渶澶х殑鐗╁搧鍙锋槸浠涔堬紵鈥
SELECT MAX(article) AS article FROM shop; +---------+ | article | +---------+ | 4 | +---------+
杩欏緢瀹规槗鐢ㄤ竴涓瓙鏌ヨ鍋氬埌锛
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop);
鍙︿竴涓В鍐虫柟妗堟槸鎸変环鏍奸檷搴忔帓搴忔墍鏈夎骞剁敤MySQL鐗瑰畾LIMIT瀛愬彞鍙緱鍒扮涓琛岋細
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1;
娉:濡傛灉鏈夊椤规渶璐电殑鐗╁搧( 渚嬪姣忎釜鐨勪环鏍间负19.95)锛LIMIT瑙e喅鏂规浠呬粎鏄剧ず鍏朵腑涓涓紒
浠诲姟锛氭瘡椤圭墿鍝佺殑鐨勬渶楂樹环鏍兼槸澶氬皯锛
SELECT article, MAX(price) AS price FROM shop GROUP BY article +---------+-------+ | article | price | +---------+-------+ | 0001 | 3.99 | | 0002 | 10.99 | | 0003 | 1.69 | | 0004 | 19.95 | +---------+-------+
浠诲姟锛氬姣忛」鐗╁搧锛屾壘鍑烘渶璐典环鏍肩殑鐗╁搧鐨勭粡閿鍟嗐
鍙互鐢ㄨ繖鏍蜂竴涓瓙鏌ヨ瑙e喅璇ラ棶棰橈細
SELECT article, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article);
浣犲彲浠ユ竻绌MySQL鐢ㄦ埛鍙橀噺浠ヨ褰曠粨鏋滐紝涓嶅繀灏嗗畠浠繚瀛樺埌瀹㈡埛绔殑涓存椂鍙橀噺涓傦紙鍙傝 9.3鑺傦紝鈥滅敤鎴峰彉閲忊.锛夈
渚嬪锛岃鎵惧嚭浠锋牸鏈楂樻垨鏈浣庣殑鐗╁搧鐨勶紝鍏舵柟娉曟槸锛
mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price; +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0003 | D | 1.25 | | 0004 | D | 19.95 | +---------+--------+-------+
鍦MySQL涓紝InnoDB琛ㄦ敮鎸佸澶栭儴鍏抽敭瀛楃害鏉熸潯浠剁殑妫鏌ャ傚弬瑙15.2鑺傦紝鈥淚nnoDB瀛樺偍寮曟搸鈥銆傝繕鍙互鍙傝 1.8.5.5鑺傦紝鈥滃閿銆
鍙槸鑱旀帴涓や釜琛ㄦ椂锛屼笉闇瑕佸閮ㄥ叧閿瓧銆傚浜庨櫎InnoDB绫诲瀷鐨勮〃锛屽綋浣跨敤REFERENCES tbl_name(col_name)瀛愬彞瀹氫箟鍒楁椂鍙互浣跨敤澶栭儴鍏抽敭瀛楋紝璇ュ瓙鍙ユ病鏈夊疄闄呯殑鏁堟灉锛鍙綔涓哄蹇樺綍鎴栨敞閲婃潵鎻愰啋锛屼綘鐩墠姝e畾涔夌殑鍒楁寚鍚戝彟涓涓〃涓殑涓涓垪銆鎵ц璇ヨ鍙ユ椂锛屽疄鐜颁笅闈㈠緢閲嶈锛
路 MySQL涓嶆墽琛岃〃tbl_name 涓殑鍔ㄤ綔锛屼緥濡備綔涓轰綘姝e畾涔夌殑琛ㄤ腑鐨勮鐨勫姩浣滅殑鍝嶅簲鑰屽垹闄よ锛涙崲鍙ヨ瘽璇达紝璇ュ彞娉曚笉浼氳嚧浣ON DELETE鎴ON UPDATE琛屼负锛堝鏋滀綘鍦REFERENCES瀛愬彞涓啓鍏ON DELETE鎴ON UPDATE瀛愬彞锛屽皢琚拷鐣ワ級銆
路 璇ュ彞娉曞彲浠ュ垱寤轰竴涓column锛涗絾涓嶅垱寤轰换浣曠储寮曟垨鍏抽敭瀛椼
路 濡傛灉鐢ㄨ鍙ユ硶瀹氫箟InnoDB琛紝灏嗕細瀵艰嚧閿欒銆
浣犲彲浠ヤ娇鐢ㄤ綔涓鸿仈鎺ュ垪鍒涘缓鐨勫垪锛屽涓嬫墍绀猴細
CREATE TABLE person (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE shirt (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
PRIMARY KEY (id)
);
INSERT INTO person VALUES (NULL, 'Antonio Paz');
SELECT @last := LAST_INSERT_ID();
INSERT INTO shirt VALUES
(NULL, 'polo', 'blue', @last),
(NULL, 'dress', 'white', @last),
(NULL, 't-shirt', 'blue', @last);
INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');
SELECT @last := LAST_INSERT_ID();
INSERT INTO shirt VALUES
(NULL, 'dress', 'orange', @last),
(NULL, 'polo', 'red', @last),
(NULL, 'dress', 'blue', @last),
(NULL, 't-shirt', 'white', @last);
SELECT * FROM person;
+----+---------------------+
| id | name |
+----+---------------------+
| 1 | Antonio Paz |
| 2 | Lilliana Angelovska |
+----+---------------------+
SELECT * FROM shirt;
+----+---------+--------+-------+
| id | style | color | owner |
+----+---------+--------+-------+
| 1 | polo | blue | 1 |
| 2 | dress | white | 1 |
| 3 | t-shirt | blue | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
| 7 | t-shirt | white | 2 |
+----+---------+--------+-------+
SELECT s.* FROM person p, shirt s
WHERE p.name LIKE 'Lilliana%'
AND s.owner = p.id
AND s.color <> 'white';
+----+-------+--------+-------+
| id | style | color | owner |
+----+-------+--------+-------+
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
+----+-------+--------+-------+
鎸夌収杩欑鏂瑰紡浣跨敤锛REFERENCES瀛愬彞涓嶄細鏄剧ず鍦SHOW CREATE TABLE鎴DESCRIBE鐨勮緭鍑轰腑:
SHOW CREATE TABLE shirt\G
*************************** 1. row ***************************
Table: shirt
Create Table: CREATE TABLE `shirt` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`style` enum('t-shirt','polo','dress') NOT NULL,
`color` enum('red','blue','orange','white','black') NOT NULL,
`owner` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
鍦ㄥ垪瀹氫箟涓紝鎸夎繖绉嶆柟寮忎娇鐢REFERENCES浣滀负娉ㄩ噴鎴栤滄彁绀衡濋傜敤浜庤〃MyISAM鍜BerkeleyDB銆
鍙互鍏呭垎鍒╃敤浣跨敤鍗曞叧閿瓧鐨OR瀛愬彞锛屽鍚AND鐨勫鐞嗐
涓涓瘮杈冪伒娲荤殑渚嬪瓙鏄鎵句袱涓氳繃OR缁勫悎鍒颁竴璧风殑鍏抽敭瀛楋細
SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR field2_index = '1'
璇ユ儏褰㈡槸宸茬粡浼樺寲杩囩殑銆傚弬瑙7.2.6鑺傦紝鈥滅储寮曞悎骞朵紭鍖栤銆
杩樺彲浠ヤ娇鐢UNION灏嗕袱涓崟鐙殑SELECT璇彞鐨勮緭鍑哄悎鎴愬埌涓璧锋潵鏇存湁鏁堝湴瑙e喅璇ラ棶棰樸傚弬瑙13.2.7.2鑺傦紝鈥淯NION璇硶
鈥銆
姣忎釜SELECT鍙悳绱竴涓叧閿瓧锛屽彲浠ヨ繘琛屼紭鍖栵細
SELECT field1_index, field2_index
FROM test_table WHERE field1_index = '1'
UNION
SELECT field1_index, field2_index
FROM test_table WHERE field2_index = '1';
涓嬮潰鐨勪緥瀛愭樉绀轰簡濡備綍浣跨敤浣嶇粍鍑芥暟鏉ヨ绠楁瘡涓湀涓敤鎴疯闂綉椤电殑澶╂暟銆
CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,
day INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),
(2000,2,23),(2000,2,23);
绀轰緥琛ㄤ腑鍚湁浠h〃鐢ㄦ埛璁块棶缃戦〉鐨勫勾锛嶆湀锛嶆棩鍊笺傚彲浠ヤ娇鐢ㄤ互涓嬫煡璇㈡潵纭畾姣忎釜鏈堢殑璁块棶澶╂暟锛
SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1
GROUP BY year,month;
灏嗚繑鍥烇細
+------+-------+------+
| year | month | days |
+------+-------+------+
| 2000 | 01 | 3 |
| 2000 | 02 | 2 |
+------+-------+------+
璇ユ煡璇㈣绠椾簡鍦ㄨ〃涓寜骞/鏈堢粍鍚堢殑涓嶅悓澶╂暟锛屽彲浠ヨ嚜鍔ㄥ幓闄ら噸澶嶇殑璇㈤棶銆
鍙互閫氳繃AUTO_INCREMENT灞炴т负鏂扮殑琛屼骇鐢熷敮涓鐨勬爣璇嗭細
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO animals (name) VALUES
('dog'),('cat'),('penguin'),
('lax'),('whale'),('ostrich');
SELECT * FROM animals;
灏嗚繑鍥烇細
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
浣犲彲浠ヤ娇鐢LAST_INSERT_ID()SQL鍑芥暟鎴mysql_insert_id() C API鍑芥暟鏉ユ煡璇㈡渶鏂扮殑AUTO_INCREMENT鍊笺傝繖浜涘嚱鏁颁笌鍏蜂綋杩炴帴鏈夊叧锛屽洜姝ゅ叾杩斿洖鍊间笉浼氳鍏跺畠鎵ц鎻掑叆鍔熻兘鐨勮繛鎺ュ奖鍝嶃
娉ㄩ噴锛瀵逛簬澶氳鎻掑叆锛LAST_INSERT_ID()鍜mysql_insert_id()浠庢彃鍏ョ殑绗竴琛屽疄闄呰繑鍥AUTO_INCREMENT鍏抽敭瀛椼傚湪澶嶅埗璁剧疆涓紝閫氳繃璇ュ嚱鏁板彲浠ュ湪鍏跺畠鏈嶅姟鍣ㄤ笂姝g‘澶嶅埗澶氳鎻掑叆銆
瀵逛簬MyISAM鍜BDB琛紝浣犲彲浠ュ湪绗簩鏍忔寚瀹AUTO_INCREMENT浠ュ強澶氬垪绱㈠紩銆傛鏃讹紝AUTO_INCREMENT鍒楃敓鎴愮殑鍊肩殑璁$畻鏂规硶涓猴細MAX(auto_increment_column) + 1 WHERE prefix=given-prefix銆傚鏋滄兂瑕佸皢鏁版嵁鏀惧叆鍒版帓搴忕殑缁勪腑鍙互浣跨敤璇ユ柟娉曘
CREATE TABLE animals (
grp ENUM('fish','mammal','bird') NOT NULL,
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (grp,id)
);
INSERT INTO animals (grp,name) VALUES
('mammal','dog'),('mammal','cat'),
('bird','penguin'),('fish','lax'),('mammal','whale'),
('bird','ostrich');
SELECT * FROM animals ORDER BY grp,id;
灏嗚繑鍥烇細
+--------+----+---------+
| grp | id | name |
+--------+----+---------+
| fish | 1 | lax |
| mammal | 1 | dog |
| mammal | 2 | cat |
| mammal | 3 | whale |
| bird | 1 | penguin |
| bird | 2 | ostrich |
+--------+----+---------+
璇锋敞鎰忓湪杩欑鎯呭喌涓嬶紙AUTO_INCREMENT鍒楁槸澶氬垪绱㈠紩鐨勪竴閮ㄥ垎锛夛紝濡傛灉浣犲湪浠讳綍缁勪腑鍒犻櫎鏈夋渶澶AUTO_INCREMENT鍊肩殑琛岋紝灏嗕細閲嶆柊鐢ㄥ埌AUTO_INCREMENT鍊笺傚浜MyISAM琛ㄤ篃濡傛,瀵逛簬璇ヨ〃涓鑸笉閲嶅浣跨敤AUTO_INCREMENT鍊笺
濡傛灉AUTO_INCREMENT鍒楁槸澶氱储寮曠殑涓閮ㄥ垎锛MySQL灏嗕娇鐢ㄨ绱㈠紩鐢熸垚浠AUTO_INCREMENT鍒楀紑濮嬬殑搴忓垪鍊笺傘備緥濡傦紝濡傛灉animals琛ㄥ惈鏈夌储寮PRIMARY KEY (grp, id)鍜INDEX(id)锛MySQL鐢熸垚搴忓垪鍊兼椂灏嗗拷鐣PRIMARY KEY銆傜粨鏋滄槸锛岃琛ㄥ寘鍚竴涓崟涓殑搴忓垪锛岃屼笉鏄鍚grp鍊肩殑搴忓垪銆
瑕佹兂浠AUTO_INCREMENT鍊煎紑濮嬭屼笉鏄1锛屼綘鍙互閫氳繃CREATE TABLE鎴ALTER TABLE鏉ヨ缃鍊硷紝濡備笅鎵绀:
mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
鍏充簬AUTO_INCREMENT鐨勮缁嗕俊鎭細
路 濡備綍涓哄垪鎸囧畾AUTO_INCREMENT灞炴э細13.1.5鑺傦紝鈥淐REATE TABLE璇硶鈥鍜 13.1.2鑺傦紝鈥淎LTER TABLE璇硶鈥銆
路 AUTO_INCREMENT鐨勫姩浣滃彇鍐充簬SQL妯″紡锛5.3.2鑺傦紝鈥淪QL鏈嶅姟鍣ㄦā寮忊銆
路 鎵惧嚭鍚湁鏈鏂AUTO_INCREMENT鍊肩殑琛岋細12.1.3鑺傦紝鈥滄瘮杈冨嚱鏁板拰鎿嶄綔绗︹銆
路 璁剧疆灏嗙敤鍒扮殑AUTO_INCREMENT鍊: 13.5.3鑺傦紝鈥淪ET璇硶鈥 銆
路 AUTO_INCREMENT鍜屽鍒讹細6.7鑺傦紝鈥滃鍒剁壒鎬у拰宸茬煡闂鈥.
路 AUTO_INCREMENT鐩稿叧鐨勫彲鐢ㄤ簬澶嶅埗鐨Server-system鍙橀噺(auto_increment_increment鍜auto_increment_offset)锛5.3.3鑺傦紝鈥滄湇鍔″櫒绯荤粺鍙橀噺鈥銆
杩欎釜椤圭洰鏄Institute of Environmental Medicine at Karolinska Institutet Stockholm 鍜 the Section on Clinical Research in Aging and Psychology at the University of Southern California鐨勫悎浣滈」鐩
璇ラ」鐩寘鎷瓫閫夐儴鍒嗭紝鍗抽氳繃鐢佃瘽鍥炶鍦ㄧ憺鍏歌秴杩 65 宀佺殑鎵鏈夊鐢熴傛弧瓒虫煇绉嶆爣鍑嗙殑瀛敓杩涘叆涓嬩竴闃舵銆傚湪涓嬩竴闃舵涓紝鍖荤敓/鎶ゅ+灏忕粍灏嗚闂兂鍙傚姞鐨勫鐢熴傞儴鍒嗘鏌ュ寘鎷墿鐞嗘鏌ュ拰绁炵粡銆佸績鐞嗘鏌ャ佸疄楠屽璇曢獙銆佺缁忔垚鍍忋佸績鐞嗙姸鍐佃瘎浼板拰瀹舵棌鍘嗗彶鎼滈泦銆傚苟涓旓紝搴旀牴鎹尰鐤楀拰鐜椋庨櫓鍥犵礌鏉ユ悳闆嗘暟鎹
鍙粠浠ヤ笅閾炬帴鎵惧埌瀛敓鐮旂┒鐨勬洿澶氫俊鎭細
http://www.mep.ki.se/twinreg/index_en.html
鐢ㄤ竴涓敤Perl鍜MySQL缂栧啓鐨web鎺ュ彛鏉ョ鐞嗛」鐩殑鍚庨潰閮ㄥ垎銆
姣忓ぉ鏅氫笂鎵鏈変細璋堢殑鏁版嵁琚Щ鍏ヤ竴涓MySQL鏁版嵁搴撱
涓嬪垪鏌ヨ鐢ㄦ潵鍐冲畾璋佽繘鍏ラ」鐩殑绗簩閮ㄥ垎锛
SELECT CONCAT(p1.id, p1.tvab) + 0 AS tvid, CONCAT(p1.christian_name, ' ', p1.surname) AS Name, p1.postal_code AS Code, p1.city AS City, pg.abrev AS Area, IF(td.participation = 'Aborted', 'A', ' ') AS A, p1.dead AS dead1, l.event AS event1, td.suspect AS tsuspect1, id.suspect AS isuspect1, td.severe AS tsevere1, id.severe AS isevere1, p2.dead AS dead2, l2.event AS event2, h2.nurse AS nurse2, h2.doctor AS doctor2, td2.suspect AS tsuspect2, id2.suspect AS isuspect2, td2.severe AS tsevere2, id2.severe AS isevere2, l.finish_date FROM twin_project AS tp /* For Twin 1 */ LEFT JOIN twin_data AS td ON tp.id = td.id AND tp.tvab = td.tvab LEFT JOIN informant_data AS id ON tp.id = id.id AND tp.tvab = id.tvab LEFT JOIN harmony AS h ON tp.id = h.id AND tp.tvab = h.tvab LEFT JOIN lentus AS l ON tp.id = l.id AND tp.tvab = l.tvab /* For Twin 2 */ LEFT JOIN twin_data AS td2 ON p2.id = td2.id AND p2.tvab = td2.tvab LEFT JOIN informant_data AS id2 ON p2.id = id2.id AND p2.tvab = id2.tvab LEFT JOIN harmony AS h2 ON p2.id = h2.id AND p2.tvab = h2.tvab LEFT JOIN lentus AS l2 ON p2.id = l2.id AND p2.tvab = l2.tvab, person_data AS p1, person_data AS p2, postal_groups AS pg WHERE /* p1 gets main twin and p2 gets his/her twin. */ /* ptvab is a field inverted from tvab */ p1.id = tp.id AND p1.tvab = tp.tvab AND p2.id = p1.id AND p2.ptvab = p1.tvab AND /* Just the screening survey */ tp.survey_no = 5 AND /* Skip if partner died before 65 but allow emigration (dead=9) */ (p2.dead = 0 OR p2.dead = 9 OR (p2.dead = 1 AND (p2.death_date = 0 OR (((TO_DAYS(p2.death_date) - TO_DAYS(p2.birthday)) / 365) >= 65)))) AND ( /* Twin is suspect */ (td.future_contact = 'Yes' AND td.suspect = 2) OR /* Twin is suspect - Informant is Blessed */ (td.future_contact = 'Yes' AND td.suspect = 1 AND id.suspect = 1) OR /* No twin - Informant is Blessed */ (ISNULL(td.suspect) AND id.suspect = 1 AND id.future_contact = 'Yes') OR /* Twin broken off - Informant is Blessed */ (td.participation = 'Aborted' AND id.suspect = 1 AND id.future_contact = 'Yes') OR /* Twin broken off - No inform - Have partner */ (td.participation = 'Aborted' AND ISNULL(id.suspect) AND p2.dead = 0)) AND l.event = 'Finished' /* Get at area code */ AND SUBSTRING(p1.postal_code, 1, 2) = pg.code /* Not already distributed */ AND (h.nurse IS NULL OR h.nurse=00 OR h.doctor=00) /* Has not refused or been aborted */ AND NOT (h.status = 'Refused' OR h.status = 'Aborted' OR h.status = 'Died' OR h.status = 'Other') ORDER BY tvid;
涓浜涜В閲婏細
路 CONCAT(p1.id, p1.tvab) + 0 AS tvid
鎴戜滑鎯宠鍦id鍜tvab鐨勮繛鎺ヤ笂浠ユ暟瀛楅『搴忔帓搴忋傜粨鏋滃姞0浣垮緱MySQL鎶婄粨鏋滃彉涓轰竴涓暟瀛椼
路 鍒id
杩欐爣璇嗕竴瀵瑰鐢熴傚畠鏄墍鏈夎〃涓殑涓涓敭銆
路 鍒tvab
杩欐爣璇嗗鐢熶腑鐨勪竴涓傚畠鐨勫间负1鎴2銆
路 鍒ptvab
杩欐槸tvab鐨涓涓嗚繍绠椼傚綋tvab鏄1锛屽畠鏄2锛屽弽涔嬩害鐒躲傚畠鐢ㄦ潵淇濆瓨杈撳叆骞朵笖浣MySQL鐨浼樺寲鏌ヨ鏇村鏄撱
杩欎釜鏌ヨ琛ㄦ槑锛屾庢牱鐢ㄨ仈缁(p1鍜p2)浠庡悓涓涓〃涓煡鎵捐〃銆傚湪渚嬪瓙涓紝杩欒鐢ㄦ潵妫鏌ュ鐢熺殑涓涓槸鍚﹀湪65宀佸墠姝讳簡銆傚鏋滃姝わ紝琛屼笉杩斿洖鍊笺
涓婅堪鎵鏈夊鐢熶俊鎭瓨鍦ㄤ簬鎵鏈夎〃涓傛垜浠id,tvab锛堟墍鏈夎〃锛夊拰id,ptvab (person_data) 涓婇噰鐢ㄩ敭浠ヤ娇鏌ヨ鏇村揩銆
鍦ㄦ垜浠殑鐢熶骇鏈哄櫒涓(涓鍙200MHz UltraSPARC)锛岃繖涓煡璇㈣繑鍥炲ぇ绾 150-200 琛屽苟涓旀椂闂翠笉瓒呰繃涓绉掋
琛 |
琛屾暟 |
person_data |
71074 |
lentus |
5291 |
twin_project |
5286 |
twin_data |
2012 |
informant_data |
663 |
harmony |
381 |
postal_groups |
100 |
SELECT
t1.event,
t2.event,
COUNT(*)
FROM
lentus AS t1,
lentus AS t2,
twin_project AS tp
WHERE
/* We are looking at one pair at a time */
t1.id = tp.id
AND t1.tvab=tp.tvab
AND t1.id = t2.id
/* Just the screening survey */
AND tp.survey_no = 5
/* This makes each pair only appear once */
AND t1.tvab='1' AND t2.tvab='2'
GROUP BY
t1.event, t2.event;
浣犲彲浠ュ皢浠ヤ笅鍐呭鏀惧埌Apache閰嶇疆鏂囦欢涓紝鏇存敼Apache鏃ュ織鏍煎紡锛屼娇MySQL鏇村鏄撹鍙栵細
LogFormat \
"\"%h\",%{%Y%m%d%H%M%S}t,%>s,\"%b\",\"%{Content-Type}o\", \
\"%U\",\"%{Referer}i\",\"%{User-Agent}i\""
瑕佹兂灏嗚鏍煎紡鐨勬棩蹇楁枃浠惰杞藉埌MySQL锛屼綘鍙互浣跨敤浠ヤ笅璇彞:
LOAD DATA INFILE '/local/access_log' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
鎵鍒涘缓鐨勮〃涓殑鍒楀簲涓庡啓鍏ユ棩蹇楁枃浠剁殑LogFormat琛屽搴斻
杩欐槸MySQL鍙傝冩墜鍐岀殑缈昏瘧鐗堟湰锛屽叧浜嶮ySQL鍙傝冩墜鍐岋紝璇疯闂dev.mysql.com銆 鍘熷鍙傝冩墜鍐屼负鑻辨枃鐗堬紝涓庤嫳鏂囩増鍙傝冩墜鍐岀浉姣旓紝鏈炕璇戠増鍙兘涓嶆槸鏈鏂扮殑銆