大ãããã¨ã¯æ¸ãã¦ããã¾ããã
æ°ä»ãããã¨ã®ã¡ã¢ç¨åº¦ã§ãã
ãçè«ããå¦ã¶ãã¼ã¿ãã¼ã¹å®è·µå ¥é ~ãªã¬ã¼ã·ã§ãã«ã¢ãã«ã«ããå¹ççãªSQL (WEB+DB PRESS plus) ããå°ãæ¬å±ã§ç«ã¡èªã¿ãã¾ããã(ãããã¯ã¼ãã³ã°ãã¢ã«ãããã§ããã®ã§ç«ã¡èªã¿ããã§ããªã(´ã»Ïã»ï½))
ãã®æ¬ã®ä¸ã§å±¥æ´ç³»ãã¼ãã«ã®æ±ãæ¹ã¨ããã®ã«ä¸¸ã ä¸ç« ãå²ãå½ã¦ããã¦ãã¾ããã
ã ããããããªãã¨ãæ¸ããã¦ãã¨æãã
ãæé軸ã¨ç´äº¤ãã¦ããªããã¨ããç¹ã¯ãå±¥æ´ãã¼ãã«ã¯éå»ã®äºå®ã®éåã§ããã¼ã¿ãåå¾ããæ¡ä»¶ãå¤ããã°çµæãç°ãªãã®ã¯å½ããåã ã¨æããã ãã©ãã
— enum (@enum) 2015, 3æ 16
ãããã«ãRDBMSã§ã¯å±¥æ´ãã¼ã¿ã¨ããã®ã¯ç¸æ§ãæªãã
åã¯é¸ä¸ç«¶æãè¦ãã®ã好ããªã®ã§ãããã®ãã¼ã¿ã¢ãã«ããã¾ã«èããããã¦ãã¾ããã§ãé¸æã®æ°åãå¤ãããã¨ããããªã¼ã¨èããã¨ããããåå¾ããã¨ãã®SQLã¯â¦SQLã§ä¸çºã§åããªããããã¨æ©ãã ããã¾ãã
ã¨ããããã§ãæ©ãã§ããä¾ããã®ã¾ã¾æ¸ãã¦ã¿ããã¨æãã
ä¾ãã°é¸æã¨ãããã¼ãã«ãä½ãã¨ãããã次ã®ãããªãã¼ãã«ã«ãªãã¨æãããã
é¸æ
ã«ã©ã | å |
---|---|
é¸æçªå· | æ°å¤ |
é¸æå§å | æåå |
é¸æåå | æåå |
ã ããå®éã¯ãé¸æã®å§åã¯å¤ãããã¨ãããã
ä¾ãæããã°ããªããªãã®ã§ããã次ã®ãããªé¸æãæãããã¾ãã
- äºæä¹ ç¾å(æ§å§ï¼æ± ç°ä¹ ç¾å/女åèµ°å¹ è·³æ¥æ¬è¨é²ä¿æè )
- ç¦æ¬å¹¸(æ§å§ï¼é山幸/女åèµ°é«è·³æ¥æ¬æ´ä»£5ä½è¨é²ä¿æè )
- åè麻ç¾(æ§å§ï¼ä¸¹é麻ç¾/女å400mæ¥æ¬è¨é²ä¿æè )
- äºç¶ç§å(æ§å§ï¼éåæ³¢ç§å/å 女å100m,200mæ¥æ¬è¨é²ä¿æè )
æ¥æ¬ã§ååã®å¤æ´ã¯è£å¤ãè¡ã£ã¦ã¯ããã¦å¯è½ã«ãªããããã®ã§ããã¡ãã¯ããªãã®ã¬ã¢ã±ã¼ã¹ãªã®ã§ãã»ã¼ç¡è¦ãã¦æ§ããªãã¨ãã¾ãã
äºæãããç¦æ¬ãããäºç¶ãããä»ã¯ç«¶æä¼ã«åºå ´ããªãã®ã§ãä»ç¾å½¹ãªã®ãåèé¸æã§ããã400mã®æ¥æ¬è¨é²ãè¦ãã¨æ¬¡ã®ããã«æ¸ããã¦ããã
ç¨®ç® | è¨é² | æ°å | æå± | è¨é²å¹´ææ¥ |
---|---|---|---|---|
400m | 51.75 | 丹ééº»ç¾ | ããã¥ãªã« | 2008/05/03 |
åºå±:æ¥æ¬é¸ä¸ç«¶æé£ç
ä¸æ¹ãç¾å¨ã¯åèé¸æã¯åè麻ç¾ã§å¤§ä¼ã«åºå ´ãã¦ããã
åå | é½éåºç | æå± | è³æ ¼è¨é² | èªå·±ãã¹ã |
---|---|---|---|---|
åèéº»ç¾ | ç¦å³¶ | æ±é¦éè¡ | 53.76 | 51.75 |
åºå±:第98åæ¥æ¬é¸ä¸ç«¶æé¸æ権大ä¼
ã¤ã¾ããå§åãã«é¢ãã¦ã¯æ¥ä»ã®æ å ±ãã表è¨ãå¤ãããã¨ããããããããã£ã¦ããã®ãé¸æãã¨ãããã¼ãã«ã¯ãå§åãã«ã©ã ãå¥ã®ãã¼ãã«ã«åé¢ãã¦ç®¡çããã¹ãå±¥æ´ç³»ãã¼ãã«ã§ããã
ãããã£ã¦ãä¸è¨ã®ãé¸æããã¼ãã«ã¯æ¬¡ã®ããã«æ¹ããªããã°ãªããªãã
é¸æ
ã«ã©ã | å |
---|---|
é¸æçªå· | æ°å¤ |
é¸æåå | æåå |
é¸æå§å
ã«ã©ã | å |
---|---|
é¸æå§åçªå· | æ°å¤ |
é¸æçªå· | æ°å¤ |
é¸æå§å | æåå |
é©ç¨å¹´ææ¥ | æ¥ä» |
ãªããåã¯ä¸»ãã¼ã(é¸æçªå·, é¸æå§å)ã«ããã®ãæ°æã¡æªãã¨èããã®ã§ããµãã²ã¼ããã¼ãè¨ãã¦ãã¾ãããã¾ãããã®ã¸ãã¯èªè ã®å¥½ãã«ãã£ã¦ãã ãã
ã§ã¯ãããæç¹ã§ã®é¸æã®æ°åãåå¾ããSQLãæ¸ãã¾ãããã
SELECT A.é¸æçªå·, B.é¸æå§å, A.é¸æåå FROM é¸æ A JOIN é¸æå§å B ON A.é¸æçªå· = B.é¸æçªå· WHERE B.é¸æå§å = 'hoge' AND A.é¸æåå = 'foo' AND B.é©ç¨å¹´ææ¥ <= 'date'
ãã¦ããããdateãä»æ¥ã®æ¥ä»ã ã£ãããåè麻ç¾é¸æã®ã¬ã³ã¼ãã¯äºä»¶ã«ãªã£ã¦ãã¾ãã¾ããã
ä¸çºã§ä¸ä»¶åãããã®ã«ããããåããªãã®ãå±¥æ´ç³»ãã¼ãã«åé¡ã§ãããã¾ããã¿ãªããçµé¨æ¸ã¿ã§ããã
ãããã¨ãã£ã¦ãSQLã§é å¼µã£ã¦ã¿ã¾ã
SELECT A.é¸æçªå·, B.é¸æå§å, A.é¸æåå FROM é¸æ A JOIN é¸æå§å B ON A.é¸æçªå· = B.é¸æçªå· WHERE B.é¸æå§å = 'hoge' AND A.é¸æåå = 'foo' AND B.é©ç¨å¹´ææ¥ = (SELECT MAX(é©ç¨å¹´ææ¥) FROM é¸æå§å C JOIN é¸æ D ON C.é¸æçªå· = D.é¸æçªå· WHERE C.é¸æå§å = 'hoge' AND D.é¸æåå = 'foo' GROUP BY C.é¸æçªå·)
ããæè¿SQLæ¸ãã¦ããªãã®ã§ãééã£ã¦ããããããã¾ããã
ãã ãã¾ããæ°æã¡æªãSQLã ã¨ãããã¨ã¯ããããã¨æãã¾ãã
ããããããã®åã«ãåã®ãã¼ãã«ã®è¨è¨ãã¢ã¬ã ãã¨ããã®ã¯ããããã§ãã
ããã¯ãé¸æå§åããã¼ãã«ã«çµäºæ¥ãè¨ãã¦ãæ¯è¼æ¼ç®åã§æ½åºã§ããã ãã¨ãã話ã§ãã
é¸æå§å
ã«ã©ã | å |
---|---|
é¸æå§åçªå· | æ°å¤ |
é¸æçªå· | æ°å¤ |
é¸æå§å | æåå |
é©ç¨å¹´ææ¥ | æ¥ä» |
çµäºå¹´ææ¥ | æ¥ä» |
ããã¯ãããã§SQLä¸çºã§ã§ãããã§ããã©ã以ä¸ã®äºç¹ãæ°ã«é£ããªãã®ã§ãåã¯çµ¶å¯¾ã«ãã®ãããªè¨è¨ã«ãã¾ããã
- ãé©ç¨å¹´ææ¥ãã¨ãçµäºå¹´ææ¥ããç°ãªãã¬ã³ã¼ãéã§ä¾åé¢ä¿ãçºçãã¦ãã¾ã
- çµäºãã¦ããªãå ´åãçµäºå¹´ææ¥ãã
NULL
ã«ãªã
ã¾ãã両è
ã®åé¡ã解決ããç»æçãªæ¹æ³ã¨ãã¦æ¥ä»ã«9999/12/31
ãå
¥ããã¨ããã®ãããã ãããããã£ã¦ããã¨ããã¯ãã£ã¦ãããã§ããã§ããããã¯åãªãNULL
ã¨å¤ãããªãããæ°ããã¬ã³ã¼ãã追å ããã ããªã®ã«ãINSERT
ã ãã§ãªããUPDATE
ãå®è¡ããªãã¨ãããªãâ¦
ä¸è¨ã®åé¡ã解決ããç»æçãªæ¹æ³ã¨ãã¦ããçµäºå¹´ææ¥ããã¾ãå¥ã®ãã¼ãã«ã«åé¢ããã¨ããæãããã¾ãã
é¸æå§å
ã«ã©ã | å |
---|---|
é¸æå§åçªå· | æ°å¤ |
é¸æçªå· | æ°å¤ |
é¸æå§å | æåå |
é©ç¨å¹´ææ¥ | æ¥ä» |
é¸æå§åçµäº
ã«ã©ã | å |
---|---|
é¸æå§åçªå· | æ°å¤ |
çµäºå¹´ææ¥ | æ¥ä» |
ã§ã¯ãããã§ææ°ã®æ¥ä»ãåãããâ¦ã¯ããå¯åãåãããã¾ãçºçãã¾ãããéè¨é¢æ°ã使ããªãåã¾ã ã¾ãã§ãããããã§ãnot in
ã使ãã¾ããâ¦
ãã®ãããªå±¥æ´ç³»ãã¼ãã«åé¡ã¸ã®å¯¾å¦æ¡ãä¸è¨ã®æ¸ç±ã§ã¯æ示ãã¦ãã¾ã(åã®ããã«ã¨ããé ã®æã¡ä¸»ã¯ä¸èªããã ãã§ã¯ç解ã§ãã¾ããã§ãã(´ã»Ïã»ï½))ã
ãã¦ããããã£ãåé¡ãçºçããæã®ããã«SE=ï½»ï¾ã®å¯¾å¿ãè¦ã¦ã¿ã¾ãããã
調æ´æ³1
- SE=ï½»ï¾
- å®è£ ã大å¤ãªã®ã§ãå±¥æ´ãæããªãæ¹åã§èª¿æ´ããã¦ãããã¾ããã
ã¤ã¾ããããã¾ã§åãèãã¦ããé¸æå§åãã¨ããé¸æå§åçµäºãã¨ãããªãã«ãã¦ããé¸æãã«å¯¾ãã¦å§åãå¤ãã£ããUPDATE
ãããã¦ãã¾ãã¾ãããã¨ãããã¨ã§ãã
ä¸æçã«ã¯ããã®ããããã¾ããããæ¬å½ã«å±¥æ´ãå¿ è¦ãªæ¥åã ã£ãå ´åããã®SE=ï½»ï¾ã©ããããã§ããããã
調æ´æ³2
- SE=ï½»ï¾
- PG=ï½»ï¾ãå§åã®é¨åã¯
ããã¹ã
åã«ãã¦ãJSONã§æã¤ããã«ãã¦ãã ããã
- PG=ï½»ï¾ãå§åã®é¨åã¯
ããã¯ãã£ããæ£è¦åãããã¼ãã«ã0次æ£è¦åããã¨ãããã¨ã§ããããããªãã¨èããSE=ï½»ï¾ã¯äººçãããç´ããã¤ããæ¥çãã足ãæ´ã£ã¦ãã ãã(æ£è¦ååç主義è ã«ãã声æ(ã¡ãªã¿ã«åã¯ç¬¬ä¸æ£è¦åãããã¾ã§ãããããã¾ãããâ¦))ã
ã¾ããä¸è¨ã®èª¿æ´ãããå ´åãæ°ããå§åã追å ãããå ´åã¯ãINSERT
ã§ã¯ãªããUPDATE
ãå®è¡ãããã¨ã«ãªãã¾ãã
以ä¸ãåã®è¶³ããªãé ã§èããå±¥æ´ç³»ãã¼ãã«ã®åé¡ç¹ã¨åé¡ã ããã®å¯¾å¿çã§ãã
å±¥æ´ç³»ãã¼ãã«ããã£ããåä»ã§ããã¤èããã®ã ã¨ãããã¨ãããã£ã¦ããã ããã¨æãã¾ãã
ã§ãå
ã®æ¸ç±ãèªãã§ãã¦ããã¼ã¿ãã¼ã¹ã«ãããUPDATE
æã¨ããã®ã¯ããã£ããå±¥æ´ãã¼ã¿ã«å¯¾ãã¦ãèããã®ã«ã¯èçãªå½ä»¤ãªã®ã§ã¯ãªãã ãããã¨æãã¾ããã
çµè«
ãããä¸éå端ãªã¨ããã§çµããã«ãããã§ããã©ãå±¥æ´ç³»ãã¼ãã«åé¡ã¯é£ããã§ããâ¦
ãã¨ãä¸éå端ãã¤çè«æ¦è£ ãªãã§ãããªã¨ã³ããªã¼ãæ¸ãã¦ãä¸ã®ä¸ã®æã人ããå¼·åãªããµã«ãªãæãã¤ãããã¦ãé¸æå§åçµäºããã¨ããé¸æçå½çµäºãããããªã®ã§ãããã§çµããã«ãã¾ãã