â»ãã®èšäºã¯ãã¡ãã®ããã°èšäºãQiitaã«ç§»æ€ãããã®ã§ãã
ã¯ããã«
ããããšæã£ãŠããå人éçºãã©ãã«ãæ»ã£ããŸãŸäœã¶æãçµã£ãŠããŸããã§ãä¹
ã
ã«èšäºã ãã§ãæŽæ°ããªãããªãšããããšã§ä»åã¯æè¡æžã®ç޹ä»ã
ä»å玹ä»ããã®ã¯SQLã¢ã³ããã¿ãŒã³ãšããæ¬ãæ¥åã§DBèšèšãããæ©äŒãå¢ããŠãèšèšã«é¢ããŠæ°ãã€ããªãããããªãããšãææ¡ããããšæã£ãŠè²·ã£ãŠã¿ãã
æ¬å
šäœã®ææ³ãšããŠã¯ãDBèšèšã«é¢ãã人ãªãäžåºŠã¯èªãã§ããã¹ãæ¬ã ãªãšããå°è±¡ãããŒãã«å®çŸ©ãèšèšãªã©ã§é¿ããã¹ãããšãç¶²çŸ
ãããŠããæãã
玹ä»ãããŠãããã¿ãŒã³ã25ãããã®ã§ãä»åã¯ç¹ã«ãããã¡ãªãã¿ãŒã³ã3ã€ã»ã©ç޹ä»ããŠã¿ãã
3ç« : IDãªã¯ã¯ã€ã¢ãïŒãšããããIDïŒ
æ°ããããŒãã«ãäœãæãäœã§ãããã§ããšããããIDã«ã©ã ãå
¥ãããšããã®ããããã¡ãªäººã¯çµæ§å€ãã®ã§ã¯ãªãããšïŒèªåå«ãïŒã
äŸãã°ãåŠçããšã«åè¬ããç§ç®ãå®çŸ©ããstudent_subjectãšããããŒãã«ãèããŠã¿ãïŒstudentããŒãã«ãšsubjectããŒãã«ã¯å¥éå®çŸ©ãããŠãããšããïŒã
| id | student_id | subject_id |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 3 |
| 4 | 3 | 2 |
ãŸããããŒãã«ãçæããéã«UNIQUE KEY (student_id, subject_id)ã§student_idãšsubject_idãäžæã«ãªãããã«ããã
ãããªããšãâidâã«ã©ã ã£ãŠäœã®ããã«äœ¿ããã ãšãã話ã«ãªã£ãŠããã®ã§ãå¿
èŠã§ãªãã«ã©ã ããããŠå
¥ããŠããå¿
èŠã¯ãªãã®ã§ã¯ãšããããšã«ãªãã
ãšã¯ããããã®ããŒãã«ã«æçžŸã衚ãgradeãšããã«ã©ã ã远å ããŠãããã«å¥ã®ããŒãã«ãšé£çµãããå¿
èŠãåºãŠãããããå Žåã¯idã«ã©ã ã«çžåœãããã®ãå¿
èŠã«ãªãã®ã§ãã±ãŒã¹ãã€ã±ãŒã¹ã§ã¯ãããïŒãã£ãšãããã®å Žåã¯ããŒãã«åããã£ãšå¥ã®é©åãªååã«ãã¹ãã ãïŒã
èŠçŽãããšãããã®idã«ã©ã ãæ¬åœã«å¿
èŠã§ããïŒããšããããšãã
10ç« : ãµãŒãã£ãŒã¯ã³ãã¬ãŒããŒïŒ31ã®ãã¬ãŒããŒïŒ
ããã«ã©ã ã«å
¥ãæååã®å€ãããã€ãã«éå®ãããå ŽåãMySQLã§ã¯ENUMåã§å®çŸ©ããããšããããä»ã®RDBMSã¯ããŸã䜿ã£ãããšé·ãã®ã§ããããªãããCHECKå¶çŽãå
¥ããŠå
¥ãå€ãéå®ããããæ¹ããããããã
äŸãã°ãåŸæ¥å¡ãæå±ããæ¯ç€ŸãâTOKYOâãâOSAKAâãâNAGOYAâãâSAPPOROâã®4ã€ã®ãããããšããå Žåãofficeã«ã©ã ãENUM(âTOKYOâ,âOSAKAâ,âNAGOYAâ,âSAPPOROâ)ãšãã颚ã«å®çŸ©ããŠãããšããã
employeeããŒãã«
| employee_id | name | office |
|---|---|---|
| 1 | Suzuki | TOKYO |
| 2 | Sato | OSAKA |
| 3 | Tanaka | NAGOYA |
| 4 | Yamamoto | TOKYO |
| 5 | Yoshida | SAPPORO |
| ãšãããããæ¥ãé£èŠæ¯ç€Ÿãæ°ãã«è¿œå ãããå ŽåENUM(âTOKYOâ, âOSAKAâ,âNAGOYAâ,âSAPPOROâ,âNAHAâ)ã«å®çŸ©ã倿Žããã®ã¯çµæ§é¢åèãã |
ãã®ãããªç¶æ³ãé¿ããã«ã¯ã以äžã®ããã«ããã°ããã
officeããŒãã«ãæ°ãã«å®çŸ©ããemployeeããŒãã«ã«office_idãæãããã
employeeããŒãã«(ä¿®æ£ç)
| employee_id | name | office_id |
|---|---|---|
| 1 | Suzuki | 1 |
| 2 | Sato | 2 |
| 3 | Tanaka | 3 |
| 4 | Yamamoto | 1 |
| 5 | Yoshida | 4 |
| officeããŒãã«ïŒè¿œå ïŒ |
| office_id | office_name |
|---|---|
| 1 | TOKYO |
| 2 | OSAKA |
| 3 | NAGOYA |
| 4 | SAPPORO |
| 5 | NAHA |
ãã ããå ¥ãå€ãâLEFTâãâRIGHTâãªã©çµ¶å¯Ÿã«è¿œå ãããããšãç¡ããšæèšã§ããå Žåã¯ENUMåã䜿ã£ãŠããããšæãããªã®ã§ãENUMåã§ã®å®çŸ©ãèããå Žåã¯æ°ããªå€ã远å ãããå¯èœæ§ããŸãæ€èšãã¹ãããšã
18ç« : ã€ã³ããªã·ããã«ã©ã ïŒæé»ã®åïŒ
ããã°ã©ã å ã§ããŒã¿ããŒã¹ããæ€çŽ¢ããæã
SELECT * from ïŒããŒãã«åïŒ where ïŒæ€çŽ¢æ¡ä»¶ïŒ
ã«çžåœãããããªæ€çŽ¢ã¯ãšãªãåŒã³åºããããªåœ¢ã§çµæãååŸãããããªããšããããšæãã
ãããã¯ã
INSERT INTO ïŒããŒãã«åïŒ ïŒã«ã©ã ïŒ VALUES ïŒå€ïŒ
ã§ã¬ã³ãŒãã远å ãããšãã«ããã©ã«ãå€ãèšå®ãããŠããã«ã©ã ãçç¥ãããããããšãããã¯ãã
ãã©ãå®ã¯ãããã«ã¯èœãšã穎ããã£ãããããäŸãã°ãã«ã©ã æ°ã10ãã£ããšããŠãååŸããå€ãã«ã©ã ããšã«é
åã«å
¥ããŠããå Žåã誰ããäžèŠãªã«ã©ã ã1ã€åé€ãããšãããšãé
åã®èŠçŽ æ°ã9ãããªãã®ã«10çªç®ã®èŠçŽ ã«ã¢ã¯ã»ã¹ããããšã©ãŒã«ãªã£ãŠããŸãïŒ
ãã以å€ã«ãäžèŠãªããŒã¿ãŸã§ãæã£ãŠããŠããããšã§ã¯ãšãªãå¿
èŠä»¥äžã«éããªã£ãŠããŸãããšãããåŸãã
ãªã®ã§ãå€å°é¢åã§ãå¿
èŠãªã«ã©ã ã®ã¿ãæç€ºçã«æå®ããæ¹ãåŸã
åé¡ãçºçããã®ãé¿ããããšãã§ããã
çµããã«
25ã®ã¢ã³ããã¿ãŒã³ã®äžã§ãèªåãæ°ãã€ããŠããªããšã€ããããã¡ãªãã¿ãŒã³ã3ã€ã»ã©äžããŠã¿ããã©ãéã«ãããã¯æ®éãããªãã ããã£ãŠã®ãã¡ãã»ããã£ããªãã
äŸãã°ã1ç« ã®ããžã§ã€ãŠã©ãŒã¯ïŒä¿¡å·ç¡èŠïŒãã¯1ã€ã®ã«ã©ã ã«ç¡çããè€æ°ã®å€ãã«ã³ãåºåãã§å
¥ããã®ã¯å°ãªããšãèªåã¯æ°æã¡æªãæãããã20ç« ã®ãSQLã€ã³ãžã§ã¯ã·ã§ã³ãã¯æè¿ã®ãã¬ãŒã ã¯ãŒã¯ã ãšã»ãŒå¯ŸçããããŠããã®ã§ã¯ãªãããšïŒããã§ãããŠãŒã¶ãŒåãã®ã·ã¹ãã ã®å Žåã¯ãã¹ãã®æã«ãã©ãŒã ã«SQLæãå
¥ããŠå€ãªããšã«ãªããªããã®ç¢ºèªã¯ãããã©ïŒã
ããã§ãããããããã¹ãããéãã¯æèããŠéçºããŠããã°åŸã
ã®ãã©ãã«ã®å
ãæžãããããšã«ãªãã®ã§ãèšèšããŠããŠéåæãæãããæ¬ãèŠè¿ããŠåé¡ç¹ãšå¯Ÿçãææ¡ããŠããã®ãããã ãããªã
å幎è¿ãæ»ã£ãŠããå人éçºã®æ¹ããã©ããã®ã¿ã€ãã³ã°ã§åéããããªãã