???????????????????? EXPLAIN???SELECT??? ????????????????LIMIT 1 ???????谓????? ??Join?????????????????校??????????? ????ORDER BY RAND() ????SELECT * ???????????????ID ???ENUM??????VARCHAR ??PROCEDURE ANALYSE() ??y??? ??????????NOT NULL PreparedStatement ???????? ??IP?????? UNSIGNED INT ????????????? ?????? ????? DELETE ?? INSERT ??? ?小???谢???? ????????娲�???? ???????????????????Object Relational Mapper?? 小??“????”
????1. ????????????????
???????????MySQL???????????????????妾�???????????效??????????????????MySQL??????????娲�???????泻?????????????????蔚??????些???????????????????校???????????????????????貌????????????????????
????????????????????????????????????????????????????????????????些?????????MySQL???????妾�????????????
????// ??????娌�????
????$r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");
????// ??????????
????$today = date("Y-m-d");
????$r = mysql_query("SELECT username FROM user WHERE signup_date >= '$today'");
????????????SQL???????? CURDATE() ??MySQL???????????????????????谩???????? NOW() ?? RAND() ??????????????????SQL?????????????????妫�?????些????????????????????????????????????????????????????MySQL????????????????妾�
????2. EXPLAIN ??? SELECT ???
??????? EXPLAIN ???????????????MySQL????未??????SQL????????????????????????????????????????
????EXPLAIN ??????????????????????????????????????????????????伪????????????……????????
????3. ??????????????? LIMIT 1
???????????????些?????????????????????????????????????????fetch?伪??????????????榉�?????????
??????????????锟�????? LIMIT 1 ??????????????????????MySQL?????????????????????????????????????????????????????????????????
??????????????????????????????“?泄?”????????????????????????????效???????????????????Select *?????????Select 1??
????// ???效????
????$r = mysql_query("SELECT * FROM user WHERE country = 'China'");
????if (mysql_num_rows($r) > 0) {
????// ...
????}
????// ??效????
????$r = mysql_query("SELECT 1 FROM user WHERE country = 'China' LIMIT 1");
????if (mysql_num_rows($r) > 0) {
????// ...
????}
????4. ???????谓?????
????5. ??Join??????????????????????????????
????????????贸????泻?? JOIN ?????????????????????Join?????????????????????????MySQL??????????????Join??SQL????????
???????????些??????Join????危????????????????????纾�???????? DECIMAL ??魏???? INT ???Join?????MySQL???????????????????????些STRING?????????????????????????小????????????????锌?????????
????6. ???? ORDER BY RAND()
????????????????????????写??????????N???????????????????????????????????????????????????????????????????MySQL???貌?????RAND?????????????CPU???????????????????屑??????校????????????????????????limit 1???????锟�?????????
?????????????????????????
????-- ??????????
????SELECT last_name FROM actor ORDER BY RAND() LIMIT 1;-- ???: 0.252s
????-- ?????????
????SELECT COUNT(*) FROM actor;
????-- ?????????????????0~count(*)-1??????????rand???????????sql????
????SELECT last_name FROM actor limit rand?? 1;
????7. ???? SELECT *
???????????????????????????????????? ?????????????WEB??????????????????????????????????绱�??????
???????????????????????????????????????
????8. ???????????????????
????????????????????????????????ID?????????????????????INT??????????UNSIGN????????????????????AUTO_INCREMENT?????
??????????users?????????????“email”????危??????????????????????VARCHAR???????????????????????????????????????校?????????????????????????????????
???????????MySQL?????????锟�??????些????????????????????些????锟�?????????????????梅??????????纾�?????????….???????????????
?????????????????????????????“??????”??“???”???????????????????????????????????????伞????????????????“???”?????纾�?懈?“?????”???????ID???懈?“?纬??”?锌纬?ID?????“?????”??“??????”???????????????纬??????????校????ID??纬?ID??“???”?涔�??????????
????9. ??? ENUM ?????? VARCHAR
????ENUM??????????????????????????????TINYINT????????????????????????????? ???????????????些????斜?????????????
????????????????危?????“???”??“”??“????”??“??”??“????”?????????些??蔚?????????????????????????????? ENUM ?????? VARCHAR??
????MySQL??????“????”???????????????????????????????????????????? VARCHAR ???????????????????????? ENUM ???????? PROCEDURE ANALYSE() ?????????????椤�
????10. ?? PROCEDURE ANALYSE() ??y???
????PROCEDURE ANALYSE() ???? MySQL ??????????????魏????????????????????些???????椤�??斜????????????????些????????????????????些???????????????????????????
???????纾�???????????? INT ?????????????????????????????????????PROCEDURE ANALYSE()????????????蔚??????? MEDIUMINT ???????????????? VARCHAR ??危???????????????????????????????? ENUM ????椤�??些???椋�?????????????????????????????貌??????
?????????????些?????椋�??械???????????????????????些???????????????????????????????????????
????11. ?????????? NOT NULL
???????????????????????????? NULL ???????????????????伪??? NOT NULL?????????????械????椋�?????????
??????????????????“Empty”??“NULL”?卸????????????INT??????0??NULL?????????????????????????????????????NULL????????????? Oracle ??NULL ?? Empty ???????????????)
?????????? NULL ???????????????????????????????斜??????????????????? ?????????????????????NULL????????????????????????些????锟�?????????NULL???
????12. PreparedStatement
????PreparedStatement????娲�????????????????????SQL??浼�?????????????PreparedStatement??煤????????????????????????????
????PreparedStatement???????些?????????????????????????????????“SQL????”??????????????????????????????些?????????????????????????????????????????????????????????些framework????ORM??????????????????些??
????????????妫�????????????????煤??蔚??????????????????????????????????些PreparedStatement?????些????????MySQL????????巍?