- 1 1. ã¯ããã«
- 2 2. VARCHARåã®åºæ¬
- 3 3. MySQLã®VARCHARåã®æå€§å€
- 4 4. ã¹ãã¬ãŒãžå¹çãšèæ ®ç¹
- 5 5. VARCHAR(255)ã®éžæãäžè¬çãªçç±
- 6 6. å®è·µäŸãšãã¹ããã©ã¯ãã£ã¹
- 7 7. FAQïŒãããã質åïŒ
- 7.1 Q1. VARCHARåãšTEXTåã®éãã¯äœã§ããïŒ
- 7.2 Q2. VARCHARã®é·ããè¶ ããããŒã¿ãæ¿å ¥ãããšã©ããªããŸããïŒ
- 7.3 Q3. utf8ãšutf8mb4ã®éãã¯äœã§ããïŒ
- 7.4 Q4. VARCHARåã«æé©ãªé·ãã®èšå®æ¹æ³ã¯ïŒ
- 7.5 Q5. VARCHARåã®ããã©ãŒãã³ã¹ã«åœ±é¿ããèŠå ã¯ïŒ
- 7.6 Q6. VARCHARåã®ããŒã¿ãã¹ãã¬ãŒãžå¶éã«åŒã£ãããå Žåã®å¯ŸåŠæ³ã¯ïŒ
- 7.7 Q7. VARCHARåãã€ã³ããã¯ã¹ã«äœ¿çšããéã®æ³šæç¹ã¯ïŒ
- 7.8 ãŸãšã
- 8 8. ãŸãšã
1. ã¯ããã«
MySQLã§ããŒã¿ããŒã¹ãèšèšããéãVARCHARåã®æå€§å€ã仿§ã«ã€ããŠæ£ç¢ºã«çè§£ããããšã¯éåžžã«éèŠã§ããç¹ã«ãããŒã¿ããŒã¹ã®ã¹ãã¬ãŒãžå¹çãããã©ãŒãã³ã¹ã«åœ±é¿ãäžãããããæé©ãªèšå®ãéžæããããšãæ±ããããŸãã
æ¬èšäºã§ã¯ããMySQL VARCHAR æå€§ããšããããŒãã軞ã«ãVARCHARåã®åºæ¬çãªç¹æ§ããæå€§å€ãã¹ãã¬ãŒãžå¹çã®è©³çްãå®éã®äœ¿çšäŸãŸã§å¹ åºã解説ããŸãããã®èšäºãèªãããšã§ã次ã®ãããªãã€ã³ããåŠã¹ãŸãã
- VARCHARåã®åºæ¬ä»æ§ãšçšé
- VARCHARåã®æå€§é·ã«é¢ããæè¡çãªè©³çް
- å¹ççãªããŒã¿ããŒã¹èšèšã®ããã®ãã¹ããã©ã¯ãã£ã¹
åå¿è ããäžçŽè ã®ããŒã¿ããŒã¹ãšã³ãžãã¢ãããã°ã©ããŒã«åããå 容ãšãªã£ãŠããŸãã®ã§ããã²æåŸãŸã§ãä»ãåããã ããã
2. VARCHARåã®åºæ¬
VARCHARåãšã¯ïŒ
VARCHARåã¯ãMySQLã«ãããå¯å€é·æååããŒã¿ãæ ŒçŽããããã®ããŒã¿åã§ããå¯å€é·ãšããæ§è³ªãæã€ãããæååããŒã¿ã®é·ãã«å¿ããŠå¿ èŠãªã¹ãã¬ãŒãžå®¹éãå€åããŸãããã®æè»æ§ã«ãããCHARåãšæ¯ã¹ãŠã¹ãã¬ãŒãžå¹çãé«ããããŒã¿ããŒã¹èšèšã«ãããŠåºãå©çšãããŠããŸãã
CHARåãšã®éã
CHARåã¯åºå®é·æååãæ ŒçŽããããŒã¿åã§ããæååããŒã¿ãçãå Žåã§ãæå®ãããé·ãã«æºããããã«ã¹ããŒã¹ã远å ãããŸããäžæ¹ãVARCHARåã¯å®éã«æ ŒçŽããæååã®é·ãã«å¿ããŠã¹ãã¬ãŒãžå®¹éãæ±ºãŸããããç¡é§ããããŸããã
ããŒã¿å | ç¹åŸŽ | 䜿çšäŸ |
---|---|---|
CHAR | åºå®é·ãçãããŒã¿ã«é©ãã | éµäŸ¿çªå·ãåœã³ãŒã |
VARCHAR | å¯å€é·ãé·ãæååã«é©ãã | ååãã¡ãŒã«ã¢ãã¬ã¹ |
äŸãšããŠã以äžã®SQLãèŠãŠã¿ãŸãããïŒ
CREATE TABLE example (
char_column CHAR(10),
varchar_column VARCHAR(10)
);
ãã®å Žåãchar_column
ã¯åžžã«10æååã®ã¹ãã¬ãŒãžãæ¶è²»ããŸãããvarchar_column
ã¯å®éã®ããŒã¿é·ïŒ1ïœ2ãã€ãã®é·ãããªãã£ã¯ã¹åã®ã¿ãæ¶è²»ããŸãã
çšéãšé©åãªäœ¿ãåã
- CHARå: é·ããåºå®ãããŠããããŸãã¯ã»ãŒäžå®ã®ããŒã¿ïŒäŸ: åœã³ãŒããéµäŸ¿çªå·ïŒã
- VARCHARå: é·ããå¯å€ã§ãã¹ãã¬ãŒãžå¹çãéèŠãããããŒã¿ïŒäŸ: ãŠãŒã¶ãŒåãã¡ãŒã«ã¢ãã¬ã¹ïŒã
VARCHARåã¯ããã®æè»æ§ãšå¹çæ§ãããäžè¬çãªããŒã¿ããŒã¹èšèšã«ãããŠããã©ã«ãã®æåååãšããŠäœ¿çšãããããšãå€ãã§ãã
3. MySQLã®VARCHARåã®æå€§å€
VARCHARåã®æå€§é·ãšã¯ïŒ
MySQLã§ã¯ãVARCHARåã«èšå®ã§ããæå€§é·ãããŒã¿ããŒã¹ã®ä»æ§ãæåã»ããã«äŸåããŸããVARCHARåã®æå€§é·ã¯ã1ïœ65,535ãã€ãã®ç¯å²å ã§èšå®å¯èœã§ãããã ãããã®æ°å€ã¯å®éã®ããŒã¿é·ã ãã§ãªããããŒãã«æ§é ã䜿çšããæåã»ããã«ãã£ãŠå¶çŽãåããŸãã
å ·äœçãªå¶çŽæ¡ä»¶
- æåã»ããã®åœ±é¿
- MySQLã§ã¯æåã»ããã«ãã1æåãããã®ãã€ãæ°ãç°ãªããŸãã
- äŸ:
utf8
ïŒ1æå = æå€§3ãã€ãïŒutf8mb4
ïŒ1æå = æå€§4ãã€ãïŒ
utf8mb4
ã䜿çšããå ŽåãVARCHARåã®æå€§é·ã¯16,383æåïŒ4ãã€ã à 16,383 = 65,532ãã€ãïŒã«å¶éãããŸãã
- ããŒãã«å šäœã®è¡ãµã€ãº
- MySQLã®InnoDBã¹ãã¬ãŒãžãšã³ãžã³ã§ã¯ã1è¡ãããã®ããŒã¿ãµã€ãºãæå€§65,535ãã€ãã§ãããã®äžã«ã¯ãããŒãã«å ã®ãã¹ãŠã®ã«ã©ã ã®ããŒã¿ãµã€ãºãå«ãŸãããããVARCHARåã®æå€§é·ã圱é¿ãåããŸãã
èšç®äŸ: VARCHAR(255)
次ã«ãå
·äœäŸãšããŠVARCHAR(255)
ãèããŠã¿ãŸãããã
- æåã»ããã
utf8mb4
ã®å Žå: - 1æå = æå€§4ãã€ã
VARCHAR(255)
ã®æå€§ãµã€ãº = 255 à 4ãã€ã = 1,020ãã€ã + é·ãããªãã£ã¯ã¹ïŒ2ãã€ãïŒ- åèšã§1,022ãã€ããå¿ èŠã§ãã
ãããèæ ®ããããŒãã«èšèšæã«ã¯ããŒã¿ãµã€ãºãæ éã«èšç®ããå¿ èŠããããŸãã
SQLã¯ãšãªäŸ: æå€§é·ã®èšå®
以äžã®äŸã§ã¯ãutf8mb4
æåã»ããã䜿çšããŠãæå€§16,383æåãæ ŒçŽå¯èœãªVARCHARåã«ã©ã ãäœæããŠããŸãã
CREATE TABLE example (
large_text VARCHAR(16383)
) CHARACTER SET utf8mb4;
ãã®ã¯ãšãªã§ã¯ãlarge_text
ã«ã©ã ãæåã»ããã«å¿ããŠæå€§65,532ãã€ããæ¶è²»ããããšã«ãªããŸãã
å®åã§ã®æ³šæç¹
- VARCHARã®é·ããæé©åãã: VARCHARåã®é·ããäžå¿ èŠã«å€§ããèšå®ãããšãã¹ãã¬ãŒãžã®ç¡é§ãããã©ãŒãã³ã¹äœäžãæãå¯èœæ§ããããŸããé©åãªé·ããéžã¶ããšãéèŠã§ãã
- 䜿çšããæåã»ãããæèãã: ç¹ã«
utf8mb4
ã䜿çšããå Žåãçµµæåãç¹æ®æåãå«ãããŒã¿ã®æ ŒçŽãå¯èœã§ãããã¹ãã¬ãŒãžå¹çã«åœ±é¿ãäžããããæ³šæãå¿ èŠã§ãã
4. ã¹ãã¬ãŒãžå¹çãšèæ ®ç¹
VARCHARåã®ã¹ãã¬ãŒãžå¹çã®ä»çµã¿
VARCHARåã¯ãå¯å€é·æååãæ ŒçŽããããã®ããŒã¿åã§ãããå¹ççãªã¹ãã¬ãŒãžå©çšãå¯èœã«ããŸãããã ããå¹çæ§ã¯èšå®ãèšèšã«ãã£ãŠå·Šå³ãããããã以äžã®ãã€ã³ããçè§£ããããšãéèŠã§ãã
- ããŒã¿ã®å®é·ã«å¿ããã¹ãã¬ãŒãžäœ¿çš
- VARCHARåã¯æ ŒçŽããããŒã¿ã®å®éã®é·ãã«åºã¥ããŠã¹ãã¬ãŒãžãæ¶è²»ããŸãã
- äŸ:
VARCHAR(100)
ã«ãHelloããšãã5æåãæ ŒçŽããå Žåãå¿ èŠãªã¹ãã¬ãŒãžã¯5æååïŒé·ãããªãã£ã¯ã¹ïŒ1ïœ2ãã€ãïŒã§ãã
- é·ãããªãã£ã¯ã¹
- VARCHARåã®ããŒã¿ã«ã¯ããã®é·ãã瀺ãããªãã£ã¯ã¹ãä»äžãããŸãã
- ããŒã¿é·ã255ãã€ã以äžã®å Žå: ããªãã£ã¯ã¹ã¯1ãã€ãã
- ããŒã¿é·ã256ãã€ã以äžã®å Žå: ããªãã£ã¯ã¹ã¯2ãã€ãã
- äŸ:
VARCHAR(255)
ã«200æåã®ããŒã¿ãæ ŒçŽããå Žåã200ãã€ã + 1ãã€ãïŒããªãã£ã¯ã¹ïŒã䜿çšãããŸãã
è¡ãµã€ãºå¶éãšã®é¢ä¿
MySQLã®InnoDBã¹ãã¬ãŒãžãšã³ãžã³ã§ã¯ã1è¡ãããã®ãµã€ãºãæå€§65,535ãã€ãã«å¶éãããŠããŸãããã ããVARCHARåã®ã«ã©ã ãããŒãã«å ã«è€æ°ååšããå Žåãåèšãµã€ãºããã®å¶éå ã«åãŸããªããã°ãªããŸããã
- èæ
®äŸ:
以äžã®SQLã¯1è¡ãµã€ãºå¶éã«éåããå¯èœæ§ããããŸãã
CREATE TABLE example (
column1 VARCHAR(32767),
column2 VARCHAR(32767)
) CHARACTER SET utf8mb4;
utf8mb4
ã®å Žåã1æåãæå€§4ãã€ããšãªãããã32767 à 4ãã€ãïŒcolumn1ïŒïŒ32767 à 4ãã€ãïŒcolumn2ïŒ = 131,068ãã€ããšãªããå¶éãè¶ ããŸãã- 解決ç: å¿ èŠã«å¿ããŠãTEXTåã䜿çšããããVARCHARåã®é·ããæžããããšã§å¶éãåé¿ããŸãã
ã¹ãã¬ãŒãžå¹çãé«ããããã®ãã¹ããã©ã¯ãã£ã¹
- ã«ã©ã ã®é·ããé©åã«èšå®ãã
- VARCHARåã®é·ãã¯ãå®éã«æ ŒçŽããããŒã¿ã®é·ãã«åºã¥ããŠæ±ºå®ããã®ãçæ³ã§ãã
- äŸ: ãŠãŒã¶ãŒåãæ ŒçŽããå Žåã
VARCHAR(50)
ã§ååãªã±ãŒã¹ãå€ãã§ãããã
- CHARåãšã®äœ¿ãåã
- ããŒã¿ã®é·ããåºå®ãŸãã¯ã»ãŒäžå®ã®å Žåã¯ãCHARåã®æ¹ãå¹ççã§ãã
- äŸ: éµäŸ¿çªå·ïŒ5æ¡åºå®ïŒã«ã¯
CHAR(5)
ã䜿çšã
- æåã»ãããèæ ®ãã
- å¿
èŠãªå Žåã«ã®ã¿
utf8mb4
ãéžæããã¹ãã¬ãŒãžå¹çãéèŠããå Žåã¯utf8
ãä»ã®è»œéæåã»ãããéžã¶ã
- é©åãªã€ã³ããã¯ã¹èšèš
- VARCHARåã®ã«ã©ã ã«ã€ã³ããã¯ã¹ãèšå®ããå Žåãé·ãããå€ã¯ããã©ãŒãã³ã¹ãäœäžãããå¯èœæ§ããããŸãã
- éšåã€ã³ããã¯ã¹ã掻çšããããšã§ãã€ã³ããã¯ã¹å¹çãåäžãããããšãå¯èœã§ãã
å®åã§ã®æ³šæç¹
- ã¹ãã¬ãŒãžå¹çãšããã©ãŒãã³ã¹ãæå€§åããããã«ãããŒãã«èšèšæã«ã¯ä»¥äžã確èªããŠãã ãã:
- åã«ã©ã ã®é©åãªããŒã¿åãšé·ãã
- å šäœã®è¡ãµã€ãºãMySQLã®å¶éãè¶ ããªãããã«ããã
- é·å€§ãªæååããŒã¿ãæ±ãå Žåã¯ãTEXTåãå€éšã¹ãã¬ãŒãžã®æŽ»çšãæ€èšã
5. VARCHAR(255)ã®éžæãäžè¬çãªçç±
ãªãVARCHAR(255)ããã䜿ãããã®ãïŒ
MySQLã®ããŒã¿ããŒã¹èšèšã«ãããŠãVARCHAR(255)ã¯å€ãã®éçºè ã«ãšã£ãŠããã©ã«ãã®éžæè¢ãšãããŠããŸãããã®çç±ã«ã¯æŽå²çãªèæ¯ãæè¡çãªå¶çŽãäºææ§ã®åé¡ãé¢ä¿ããŠããŸãã以äžã§ã¯ãVARCHAR(255)ãäžè¬çã«éžã°ããçç±ã詳ãã解説ããŸãã
1. æŽå²çèæ¯
ãã€ãŠã®MySQLã§ã¯ãã€ã³ããã¯ã¹ã«èšå®å¯èœãªæå€§é·ã255ãã€ãã«å¶éãããŠããŸããããã®å¶éã¯çŸåšã§ã¯ç·©åãããŠããŸãããå€ãã®éçºè ãåœæã®æ £ç¿ãåŒãç¶ãã§ããããã255ãšããæ°å€ãåºã䜿ãããŠããŸãã
2. ã€ã³ããã¯ã¹å¶éãšã®é¢é£
VARCHARåã®ã«ã©ã ã«ã€ã³ããã¯ã¹ãèšå®ããå Žåãã€ã³ããã¯ã¹ãµã€ãºã倧ãããããšããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸããVARCHAR(255)ã¯é©åºŠãªé·ãã§ãããå€ãã®ãŠãŒã¹ã±ãŒã¹ã§ã€ã³ããã¯ã¹èšå®ã«åé¡ãåŒãèµ·ãããŸããã
- äŸ:
ã€ã³ããã¯ã¹ä»ãã®VARCHARã«ã©ã ãæã€ããŒãã«ãäœæããå Žå:
CREATE TABLE users (
username VARCHAR(255),
PRIMARY KEY(username)
);
255ãã€ãã¯ãæåã»ããã«äŸåãããã®ã®å€ãã®æååããŒã¿ãã«ããŒããã®ã«ååã§ãã
3. äºææ§ã®èгç¹
ä»ã®ããŒã¿ããŒã¹ãšã³ãžã³ããã¬ãŒã ã¯ãŒã¯ã§ããVARCHAR(255)ãæšæºçãªèšå®ãšããŠå©çšãããŠããŸããããã«ãããMySQLããå¥ã®ããŒã¿ããŒã¹ãžç§»è¡ããéã®äºææ§ã確ä¿ããããããªããŸãã
- äŸ: WordPressãªã©ã®CMSã§ã¯ãå€ãã®ããŒãã«ã§VARCHAR(255)ãæ¡çšãããŠããŸããããã¯ãããŸããŸãªãµãŒããŒç°å¢ãèšå®ã§ã®äºææ§ãä¿ã€ããã§ãã
4. å®åçãªæè»æ§
VARCHAR(255)ã¯ãå€ãã®æååããŒã¿ïŒäŸ: ååãã¡ãŒã«ã¢ãã¬ã¹ãçã説ææïŒãååã«æ ŒçŽã§ããé·ãã§ãã
- äŸ:
- ãŠãŒã¶ãŒå: 50ïœ100æåãäžè¬çã
- ã¡ãŒã«ã¢ãã¬ã¹: æå€§320æåïŒèŠæ ŒäžïŒã ãã255æåã§ã»ãŒãã¹ãŠãã«ããŒå¯èœã
çãããé·ããèšå®ãããšãå°æ¥ã®ããŒã¿æ¡åŒµã«å¯Ÿå¿ã§ããªããªããªã¹ã¯ãããããã255ã¯é©åºŠãªãã©ã³ã¹ãæäŸããŸãã
5. utf8mb4ãšã®é¢ä¿
utf8mb4æåã»ããã䜿çšããå Žåã1æåãããæå€§4ãã€ããå¿ èŠãšããŸãããã®ãããVARCHAR(255)ã§ã¯æå€§ã§255 à 4 = 1,020ãã€ãïŒ+2ãã€ãã®é·ãããªãã£ã¯ã¹ïŒãå¿ èŠã§ããããã¯è¡ãµã€ãºã®å¶çŽïŒ65,535ãã€ãïŒãèæ ®ããå Žåã§ãååã«åãŸããŸãã
VARCHAR(255)ãéžæããéã®æ³šæç¹
- éå°ãªèšå®ãé¿ãã:
VARCHAR(255)ã¯äŸ¿å©ã§ãããåžžã«æé©ãªéžæè¢ã§ã¯ãããŸãããããŒã¿ã®ç¹æ§ã«å¿ããŠé©åãªé·ããéžæããããšãéèŠã§ãã - äŸ: åœã³ãŒããéµäŸ¿çªå·ãªã©ãåºå®é·ã®ããŒã¿ã«ã¯CHARåã䜿çšããæ¹ãå¹ççã§ãã
- ããŒã¿ããŒã¹èšèšå
šäœãèæ
®:
ããŒãã«å ã®ãã¹ãŠã®ã«ã©ã ãVARCHAR(255)ã«èšå®ãããšãã¹ãã¬ãŒãžå¹çãäœäžããè¡ãµã€ãºå¶éãè¶ ãããªã¹ã¯ããããŸãã
6. å®è·µäŸãšãã¹ããã©ã¯ãã£ã¹
å®éã®äœ¿çšäŸ: VARCHARåã®èšå®
VARCHARåã¯æè»æ§ã®é«ãããŒã¿åã§ãããå®åã§ã®äœ¿çšæã«ã¯ããã€ãã®æ³šæç¹ãšãã¹ããã©ã¯ãã£ã¹ãæŒãããŠããå¿ èŠããããŸããããã§ã¯ãå ·äœçãªäœ¿çšäŸãšãå¹ççã«æŽ»çšããããã®ãã€ã³ãã解説ããŸãã
1. ãŠãŒã¹ã±ãŒã¹ã«åºã¥ãèšèš
çãæååã®å Žå
çãæååïŒäŸ: ãŠãŒã¶ãŒåãéµäŸ¿çªå·ïŒãæ ŒçŽããå ŽåãVARCHARåãé©åã«äœ¿çšããããšã§ã¹ãã¬ãŒãžå¹çãé«ããããŸãã
- äŸ:
ãŠãŒã¶ãŒåãæ ŒçŽããããŒãã«ãèšèšããå ŽåïŒ
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL
);
VARCHAR(50)
ã¯ãã»ãšãã©ã®ãŠãŒã¶ãŒåãã«ããŒããååãªé·ãã§ãã
é·ãæååã®å Žå
é·ãæååïŒäŸ: ã³ã¡ã³ããã¬ãã¥ãŒïŒãæ±ãå ŽåããVARCHARåã¯åœ¹ç«ã¡ãŸãããã ããæå€§é·ã倧ããå Žåã¯ã¹ãã¬ãŒãžå¶çŽãèæ ®ããŸãããã
- äŸ:
ã¬ãã¥ãŒãæ ŒçŽããããŒãã«ãèšèšããå ŽåïŒ
CREATE TABLE reviews (
id INT AUTO_INCREMENT PRIMARY KEY,
review_text VARCHAR(1000)
);
- é·ãããããŒã¿ã¯åãæšãŠãããå¯èœæ§ããããããããŒã¿ã®ä»æ§ã«åãããé·ããèšå®ããŸãã
2. ã¹ãã¬ãŒãžå¹çãèæ ®ããèšå®
VARCHARåã®é·ãã¯ããŒã¿éã«çŽæ¥åœ±é¿ããŸããé·ããé©åã«èšå®ããããšã§ãç¡é§ãªã¹ãã¬ãŒãžæ¶è²»ãæããããšãã§ããŸãã
- 泚æäºé :
VARCHAR(255)
ãªã©ãå¿ èŠä»¥äžã«å€§ããªé·ããæå®ããªãã- å¿
èŠãªå Žåã¯
TEXT
åãæ€èšããã
éšåã€ã³ããã¯ã¹ã®æŽ»çš
é·ãæååã«ã€ã³ããã¯ã¹ãèšå®ããå Žåãéšåã€ã³ããã¯ã¹ã䜿çšããããšã§å¹çãåäžã§ããŸãã
- äŸ:
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(500),
INDEX (title(100))
);
- ã€ã³ããã¯ã¹é·ãå¶éããããšã§ãã¹ãã¬ãŒãžå¹çãšããã©ãŒãã³ã¹ãæ¹åããŸãã
3. ãšã©ãŒãã³ããªã³ã°
VARCHARåã®æå€§é·ãè¶ ããããŒã¿ãæ¿å ¥ããããšãããšãMySQLã®èšå®ã«ãã£ãŠãšã©ãŒãŸãã¯èŠåãçºçããŸãã
- ãšã©ãŒäŸ:
INSERT INTO users (username) VALUES ('a'.repeat(100)); -- ãšã©ãŒçºç
- 察ç:
- é©åãªããŒã¿æ€èšŒãã¢ããªã±ãŒã·ã§ã³åŽã§è¡ãã
STRICT
ã¢ãŒããæå¹ã«ããŠãããŒã¿ã®æŽåæ§ãä¿ã€ã
4. ãã¹ããã©ã¯ãã£ã¹
é·ããæé©åãã
- æ ŒçŽããããŒã¿ã®æå€§é·ãåæããå°ãäœè£ãæãããèšå®ãè¡ããŸãããã
- äŸ: ã¡ãŒã«ã¢ãã¬ã¹ãªã
VARCHAR(320)
ã§èŠæ Œãã«ããŒå¯èœã
CHARåãšã®äœ¿ãåã
- åºå®é·ããŒã¿ã«ã¯CHARåã䜿çšããVARCHARåã¯å¯å€é·ããŒã¿ã«éå®ããŸãã
ããŒãã«èšèšå šäœãèæ ®
- VARCHARåã«ã©ã ãå€ãå Žåãè¡ãµã€ãºã倧ãããªããããªãããæ³šæããŠãã ããã
- å¿ èŠã«å¿ããŠãããŒã¿ãå¥ã®ããŒãã«ã«åå²ãããªã©ã®å·¥å€«ãè¡ããŸãã
ãŸãšã
VARCHARåã¯ãMySQLã§æãæè»ã«äœ¿ããæååããŒã¿åã§ããé©åãªé·ãã®èšå®ãå¹ççãªã€ã³ããã¯ã¹èšèšãè¡ãããšã§ãããã©ãŒãã³ã¹ãšã¹ãã¬ãŒãžå¹çãæå€§éã«åŒãåºãããšãã§ããŸãããããã®å®è·µçãªã¢ãããŒããåèã«ããŠãæé©ãªããŒã¿ããŒã¹èšèšãç®æããŸãããã

7. FAQïŒãããã質åïŒ
Q1. VARCHARåãšTEXTåã®éãã¯äœã§ããïŒ
A: VARCHARåãšTEXTåã¯ã©ã¡ããæååããŒã¿ãæ ŒçŽã§ããŸãããäž»ãªéãã¯ä»¥äžã®éãã§ãã
é ç® | VARCHAR | TEXT |
---|---|---|
ã¹ãã¬ãŒãž | ããŒãã«å ã«çŽæ¥ä¿åããã | å€éšã¹ãã¬ãŒãžã«ä¿åããã |
æå€§é· | æå€§65,535ãã€ã | æå€§65,535ãã€ãïŒTEXTåå šè¬ïŒ |
ã€ã³ããã¯ã¹ | å šäœã«èšå®å¯èœ | éšåã€ã³ããã¯ã¹ã®ã¿èšå®å¯èœ |
çšé | çãæååããŒã¿ïŒäŸ: ååïŒ | é·ãããã¹ãããŒã¿ïŒäŸ: èšäºå å®¹ïŒ |
éžæåºæº:
- VARCHARåã¯çãå¯å€é·æååããŒã¿ã«é©ããŠããŸãã
- TEXTåã¯éåžžã«é·ãæååïŒäŸ: ããã°èšäºãã³ã¡ã³ãïŒãæ±ãå Žåã«äœ¿çšãããŸãã
Q2. VARCHARã®é·ããè¶ ããããŒã¿ãæ¿å ¥ãããšã©ããªããŸããïŒ
A: MySQLã®åäœã¯ãSQLã¢ãŒãã®èšå®ã«äŸåããŸãã
- STRICTã¢ãŒããæå¹ãªå ŽåïŒæšå¥šèšå®ïŒ
- ãšã©ãŒãçºçããããŒã¿ã¯æ¿å ¥ãããŸããã
- äŸ:
sql SET sql_mode = 'STRICT_ALL_TABLES'; INSERT INTO users (username) VALUES ('a'.repeat(300)); -- ãšã©ãŒçºç
- STRICTã¢ãŒããç¡å¹ãªå Žå
- è¶ éããããŒã¿ã¯èªåçã«åãæšãŠãããèŠåã¡ãã»ãŒãžãçæãããŸãã
- ãã®åäœã¯ããŒã¿ã®æŽåæ§ã«åœ±é¿ãäžãããããSTRICTã¢ãŒããæå¹ã«ããããšãæšå¥šããŸãã
Q3. utf8ãšutf8mb4ã®éãã¯äœã§ããïŒ
A: utf8mb4ã¯utf8ã®æ¡åŒµçã§ãããçµµæåãç¹æ®ãªUnicodeæåããµããŒãããŸãã
é ç® | utf8 | utf8mb4 |
---|---|---|
1æåã®æå€§ãã€ãæ° | 3ãã€ã | 4ãã€ã |
察å¿å¯èœãªæå | åºæ¬çãªUnicodeæå | Unicodeã®å šãŠã®æåïŒçµµæåå«ãïŒ |
éžæåºæº:
- çµµæåãç¹æ®æåã䜿çšããã¢ããªã±ãŒã·ã§ã³ã§ã¯utf8mb4ãéžæã
- ã¹ãã¬ãŒãžå¹çãéèŠããå Žåã¯utf8ãæ€èšã
Q4. VARCHARåã«æé©ãªé·ãã®èšå®æ¹æ³ã¯ïŒ
A: ããŒã¿ã®ç¹æ§ãšäœ¿çšçšéã«åºã¥ããŠé·ããèšå®ããããšãéèŠã§ãã
- çãæåå: ãŠãŒã¶ãŒåãéµäŸ¿çªå·ãªã©ã®å Žåã
VARCHAR(50)
ãVARCHAR(10)
ã§ååã - é·ãæåå: ã¡ãŒã«ã¢ãã¬ã¹ãªã
VARCHAR(320)
ãçã説ææãªãVARCHAR(1000)
ã - ããŒã¿åæ: å®éã®ããŒã¿ã®æå€§é·ãææ¡ããå°ãäœè£ãæãããèšå®ãè¡ããŸãããã
Q5. VARCHARåã®ããã©ãŒãã³ã¹ã«åœ±é¿ããèŠå ã¯ïŒ
A: 以äžã®èŠå ãVARCHARåã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŸãã
- é·ãããã«ã©ã é·:
- äžå¿ èŠã«é·ãã«ã©ã ã¯ã¹ãã¬ãŒãžå¹çãäœäžãããæ€çŽ¢ããã©ãŒãã³ã¹ã«ã圱é¿ããŸãã
- æåã»ãã:
- utf8mb4ã䜿çšããå Žåãã¹ãã¬ãŒãžäœ¿çšéãå¢å ãããããé·ãæååãå€çšããå Žåã¯æ³šæãå¿ èŠã§ãã
- ã€ã³ããã¯ã¹èšèš:
- é·ãVARCHARåã«ã©ã ã«å¯ŸããŠã€ã³ããã¯ã¹ãèšå®ããå Žåãéšåã€ã³ããã¯ã¹ã䜿çšããããšã§ããã©ãŒãã³ã¹ãæé©åã§ããŸãã
Q6. VARCHARåã®ããŒã¿ãã¹ãã¬ãŒãžå¶éã«åŒã£ãããå Žåã®å¯ŸåŠæ³ã¯ïŒ
A: 以äžã®æ¹æ³ãæ€èšããŠãã ããã
- VARCHARåã®é·ããèŠçŽã:
- å¿ èŠä»¥äžã«é·ãã«ã©ã é·ãèšå®ããŠããå Žåã¯ãçŸå®çãªå€ã«æžãããŸãã
- TEXTåãžã®å€æŽ:
- éåžžã«é·ãããŒã¿ãæ ŒçŽããå ŽåãVARCHARåããTEXTåãžã®åãæ¿ããæ€èšã
- ããŒã¿ã®æ£èŠå:
- 倧ããªããŒã¿ãå¥ããŒãã«ã«åå²ããããšã§ãè¡ãµã€ãºãæžå°ãããŸãã
Q7. VARCHARåãã€ã³ããã¯ã¹ã«äœ¿çšããéã®æ³šæç¹ã¯ïŒ
A: VARCHARåã®ã€ã³ããã¯ã¹ã䜿çšããå Žåã以äžãèæ ®ããŠãã ããïŒ
- éšåã€ã³ããã¯ã¹ã®æŽ»çš:
é·ãæååããŒã¿ã®å Žåãéšåã€ã³ããã¯ã¹ãèšå®ããŠå¹çãåäžãããŸãã
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(500),
INDEX (title(100))
);
- é©åãªé·ãã®èšå®:
ã€ã³ããã¯ã¹ã®é·ãã倧ãããããšãæ€çŽ¢ããã©ãŒãã³ã¹ãäœäžããããæ³šæãå¿ èŠã§ãã
ãŸãšã
FAQã»ã¯ã·ã§ã³ã§ã¯ãéçºè ãçŽé¢ããã¡ãªçåãšãã®è§£æ±ºçã«ã€ããŠè§£èª¬ããŸãããããããåèã«ããããšã§ãVARCHARåã广çã«æŽ»çšããMySQLããŒã¿ããŒã¹ã®èšèšãããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
8. ãŸãšã
MySQLã®VARCHARåã广çã«æŽ»çšããããã«
æ¬èšäºã§ã¯ããMySQL VARCHAR æå€§ããšããããŒããäžå¿ã«ãVARCHARåã®åºæ¬ä»æ§ããæå€§å€ãã¹ãã¬ãŒãžå¹çãå®è·µäŸããããŠãã¹ããã©ã¯ãã£ã¹ãŸã§å¹ åºã解説ããŸãããæåŸã«ãæ¬èšäºã®éèŠãªãã€ã³ããæ¯ãè¿ããŸãããã
ãã®èšäºã§åŠãã ããš
- VARCHARåã®åºæ¬ä»æ§
- å¯å€é·æååããŒã¿ãæ ŒçŽããæè»ãªããŒã¿åã§ãã¹ãã¬ãŒãžå¹çã«åªããŠããã
- CHARåãšã®éããçè§£ããçšéã«å¿ããé©åãªéžæãéèŠã
- VARCHARåã®æå€§é·
- MySQLã®ããŒãžã§ã³ãæåã»ããã«å¿ããŠãæå€§65,535ãã€ããŸã§èšå®å¯èœã
- utf8mb4ã䜿çšããå Žåãæå€§é·ã¯16,383æåïŒ4ãã€ãÃæåæ°ïŒãšãªãã
- ã¹ãã¬ãŒãžå¹çãšèšèšäžã®æ³šæç¹
- é·ãããªãã£ã¯ã¹ãè¡ãµã€ãºå¶éãèæ ®ããå¹ççãªããŒã¿ããŒã¹èšèšãè¡ãããšãéèŠã
- å¿ èŠä»¥äžã«å€§ããªã«ã©ã é·ãé¿ããã¹ãã¬ãŒãžãšããã©ãŒãã³ã¹ã®ãã©ã³ã¹ãæé©åããã
- VARCHAR(255)ãäžè¬çã«éžã°ããçç±
- æŽå²çèæ¯ãã€ã³ããã¯ã¹å¶éã®ç·©åã«äŒŽã圱é¿ã
- äºææ§ãå®åã§ã®æè»æ§ãé«ãã
- å€ãã®æåã»ãããããŒã¿ãã¿ãŒã³ã«å¯Ÿå¿ã§ããæ±çšæ§ã
- å®è·µäŸãšãã¹ããã©ã¯ãã£ã¹
- ãŠãŒã¹ã±ãŒã¹ãå ·äœäŸãè±å¯ã§ãèšäºãèªãã åŸããã«å¿çšã§ããå 容ãšãªã£ãŠããã
- éšåã€ã³ããã¯ã¹ã®æŽ»çšãªã©ãå®åã§åœ¹ç«ã€è©³çްãªã¢ããã€ã¹ãå«ãŸããŠããã
- ãããã質åïŒFAQïŒã§ã®çåè§£æ¶
- VARCHARåãšTEXTåã®éããã€ã³ããã¯ã¹ã®æ³šæç¹ãããŒã¿é·ãè¶ ããå Žåã®å¯ŸåŠæ³ãªã©ã確èªã
å¹ççãªããŒã¿ããŒã¹èšèšãç®æããŠ
MySQLã§ã®VARCHARåã®æŽ»çšã¯ãããŒã¿ããŒã¹èšèšã®åºç€ãšãªãéèŠãªèŠçŽ ã§ããé©åãªé·ãã®èšå®ãã¹ãã¬ãŒãžå¹çãèæ ®ããèšèšã¯ãããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹åäžãšã¹ã±ãŒã©ããªãã£ã«çŽçµããŸãã
- ããŒã¿ç¹æ§ãããçè§£ããå¿ èŠæå°éã®é·ããèšå®ããã
- ããŒãã«å šäœã®æ§é ãèŠçŽããè¡ãµã€ãºå¶éã«æ³šæããã
- VARCHARåã®æè»æ§ã掻çšãã€ã€ãé©åãªããŒã¿åãéžæããã
次ã®ã¹ããã
ãã®èšäºã§åŸãç¥èãå®éã®ãããžã§ã¯ãã§æŽ»çšããããšã§ãå¹ççãªããŒã¿ããŒã¹èšèšãå®çŸããŸãããŸããé¢é£æ å ±ããã¹ããã©ã¯ãã£ã¹ãåèã«ããŠãããã«æ·±ãç¥èã身ã«ã€ããããšãããããããŸãã
å¹ççã§ããã©ãŒãã³ã¹ã«åªããããŒã¿ããŒã¹æ§ç¯ã«åããŠããã²ä»åã®å 容ãã圹ç«ãŠãã ããïŒ