ã¢ããªéçºãããŒã¿åæã«ææŠããããšæã£ããšããé¿ããŠéããªãã®ããããŒã¿ããŒã¹ãã®æäœã§ããèšå€§ãªããŒã¿ã®äžããå¿ èŠãªæ å ±ã ããäžç¬ã§åãåºããããæ¡ä»¶ã«åãããŠæžãæãããã§ããã¹ãã«ãããã°ãéçºå¹çã¯åçã«åäžããŸããâš
ãã®ããã«å¿ é ãšãªãã®ãSQLïŒStructured Query LanguageïŒãšããèšèªã§ããäžèŠé£ãããã«èŠããŸãããåºæ¬ã®ææ³ããæŒãããã°ã誰ã§ãçŽæçã«ããŒã¿ãæããããã«ãªããŸããããŒã¿ãèªç±ã«æ±ããæªæ¥ãæã«å ¥ããŠããšã³ãžãã¢ãšããŠã®å¯èœæ§ãåºããŸãããïŒð
ããŒã¿ããŒã¹ãšã¯ãç°¡åã«èšããšãããŒã¿ãæŽçããŠèç©ããŠããããã®ã·ã¹ãã ãã®ããšã§ããäŸãã°ã¢ããªãäœãéããŠãŒã¶ãŒã®ååã幎霢ãååã®è©³çްãªã©ã倧éã®æ å ±ãä¿åããŠããå Žæãå¿ èŠã«ãªããŸãããã¡ã€ã«ã«æžãåºãæ¹æ³ããããŸãããå¹ççã«ç®¡çã»æœåºããããã«ã¯å°çšã®ã·ã¹ãã ãäžå¯æ¬ ã§ãã
çŸåšæãæ®åããŠããã®ãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ïŒRDBïŒãã§ããããã¯ããŒã¿ãã衚圢åŒïŒããŒãã«ïŒãã§ç®¡çããã®ãç¹åŸŽã§ããð
æå€§ã®ç¹åŸŽã¯ãè€æ°ã®ããŒãã«ããçŽä»ãïŒãªã¬ãŒã·ã§ã³ïŒãã§ããç¹ã§ããäŸãã°ãããŠãŒã¶ãŒããŒãã«ã®è·æ¥IDããšãè·æ¥ããŒãã«ã®è·æ¥IDããçŽä»ããããšã§ããŠãŒã¶ãŒãå ·äœçã«ã©ããªè·æ¥ãªã®ããå¹çããååŸã§ããŸããð
SQLã䜿ã£ãŠããŒã¿ããŒã¹ãæäœããããã®ãäž»èŠãªã³ãã³ãã解説ããŸããããã§ã¯æšæºçãªSQLãããŒã¹ã«èª¬æããŸããð¡
ãŸãã¯ããŒã¿ãæ ŒçŽãããç®±ããäœããŸããããã§ã¯ãåã«ã©ã ã«ã©ã®ãããªåœ¢åŒïŒããŒã¿åïŒã§ä¿åããããæå®ããŸãã
åºæ¬æ§æïŒ
CREATE TABLE ããŒãã«å (
  ã«ã©ã å1 å,
  ã«ã©ã å2 å
);
代衚çãªåã«ã¯ãæŽæ°ãæ±ãINT64ãæååãæ±ãSTRINGãå°æ°ãæ±ãFLOAT64ãªã©ããããŸãããŸããããŒã¿ãäžæã«ç¹å®ããããã®ãäž»ããŒïŒPRIMARY KEYïŒããèšå®ããããšã§ãããŒã¿ã®éè€ãé²ããå¹ççã«æ€çŽ¢ã§ããããã«ãªããŸããð
äœæããããŒãã«ã«å ·äœçãªããŒã¿ãæžã蟌ã¿ãŸãã
INSERT INTO ããŒãã«å (ã«ã©ã å1, ã«ã©ã å2)
VALUES (å€1, å€2), (å€3, å€4);
äžåºŠã«è€æ°ã®ã¬ã³ãŒãã远å ããããšãå¯èœã§ããããããŒã¿ããªãå Žåã¯ãNULLããšããŠæ±ãããŸããâïž
SQLã§æãé »ç¹ã«äœ¿ãã®ãããã®æœåºæäœã§ãã
SELECT * FROM ããŒãã«å; ïŒã¢ã¹ã¿ãªã¹ã¯ã䜿ããšå
šã«ã©ã ãååŸã§ããŸãïŒWHERE å¥ã䜿ããŸããäŸãã°ãã幎霢ã20æ³ä»¥äžããšããæ¡ä»¶ãªã WHERE age >= 20 ãšèšè¿°ããŸãããŸããANDïŒãã€ïŒãORïŒãŸãã¯ïŒãBETWEENïŒç¯å²æå®ïŒãçµã¿åãããããšã§ãè€éãªæ¡ä»¶ã§ã®æœåºãèªç±èªåšã§ããð
å¥ã ã®ããŒãã«ã«ããæ å ±ããŸãšããŠäžã€ã®è¡šã«ããæäœã§ãã
ããŒãã«åãé·ãå Žå㯠AS ã䜿ã£ãŠå¥åïŒãšã€ãªã¢ã¹ïŒãã€ãããšãã³ãŒããã¹ãããªããŠèªã¿ããããªããŸããâš
æ¢åã®ããŒã¿ãæžãæããããäžèŠãªããŒã¿ãæ¶ãããããŸãã
UPDATE ããŒãã«å SET ã«ã©ã = æ°ããå€ WHERE æ¡ä»¶;DELETE FROM ããŒãã«å WHERE æ¡ä»¶;â ïž ãããæéèŠãã€ã³ãïŒ
UPDATEãDELETEãå®è¡ããéã¯ãå¿
ãäºåã« SELECT æã§ãæ¬åœã«ãã®ã¬ã³ãŒãã ããæœåºãããŠããããã確èªããŠãã ãããæ¡ä»¶ãééãããšãæå³ããªã倧éã®ããŒã¿ãæžãæãã£ããæ¶ããããããªã¹ã¯ãããããã§ããð±
ç¬åŠã§SQLããã¹ã¿ãŒããã«ã¯ãè¯è³ªãªææãšå¿«é©ãªäœæ¥ç°å¢ãæ¬ ãããŸãããå¹ççã«åŠç¿ããããã®å³éžã¢ã€ãã ãã玹ä»ããŸããð
ã1åãããšå®å¿ãSQLå
¥éæž
ãŸãã¯åºæ¬ææ³ãäœç³»çã«åŠã¹ãåèæžã1åæå
ã«çœ®ããŸããããã³ãŒããå®éã«æžããªããé²ããããšã§ãå®ççãæ Œæ®µã«ã¢ããããŸããð
ãã»ããã§åŠã³ãããPythonå
¥éæž
SQLã§æœåºããããŒã¿ãPythonã§åæããããã¢ããªã«çµã¿èŸŒãã ãããã®ããšã³ãžãã¢ã®çéã«ãŒãã§ãã䜵ããŠåŠç¿ããããšãããããããŸããð
ãéäžåã¢ãããå¿«é©ã¡ã«ãã«ã«ããŒããŒã
倧éã®ã¯ãšãªãæžããªããæéµæã®è¯ãããŒããŒãã¯å¿
é ãæã®ç²ãã軜æžããã³ãŒãã£ã³ã°ãžã®ã¢ãããŒã·ã§ã³ãé«ããŠãããŸããâšïž
ãç²åŽè»œæžãããŒãããœã³ã³ã¹ã¿ã³ã
ç»é¢ãåèŠããæéãé·ããªãSQLåŠç¿ãç®ç·ãäžããããšã§è©ãããé²ããé·æééäžããŠåŠç¿ã«åãçµããŸããð»
SELECTïŒæœåºïŒâ WHEREïŒçµã蟌ã¿ïŒâ JOINïŒçµåïŒâ INSERT/UPDATE/DELETEïŒæŽæ°ã»åé€ïŒã®é ã§åŠã¶ã®ãã¹ã ãŒãºã§ããSQLã¯ãäžåºŠèº«ã«ã€ããã°äžç䜿ãã匷åãªæŠåšã«ãªããŸããããŒã¿ã®æœåºãã管çãåæãŸã§ã§ããããã«ãªãã°ãéçºã®å¹ ãåºããã ãã§ãªããããžãã¹ã·ãŒã³ã§ã®æææ±ºå®ã¹ããŒããæ Œæ®µã«äžãããŸããð
ãŸãã¯ç°¡å㪠SELECT æããå§ããŠãå°ããã€è€éãªã¯ãšãªã«ææŠããŠã¿ãŠãã ããããã£ãšãããŒã¿ãèªç±èªåšã«åãå¿«æã«æ°ã¥ãã¯ãã§ãïŒâš
ð§© ããºã«ãè§£ãå¿«æãã³ãŒãã§…
âš ããã°ã©ã ã®åäœã軜ããã…
ð ãµãŒããŒãµã€ãéçºã®äžçãž…
âš é¢åãªWebäœæ¥ãèªååã…
ð ïž ããã¹ãããã€ããããå…
â³ ãåŸ ã¡æéãããŒãã«ãã