- 1 1. ã¯ããã«
- 2 2. åºæ¬çãªã«ã©ã äžèŠ§ã®ååŸæ¹æ³
- 3 ãŸãšã
- 4 3. å¿çšç·šïŒç¹å®ã®æ¡ä»¶ã§ã«ã©ã ãæ€çŽ¢ãã
- 5 ãŸãšã
- 6 4. èªååïŒã«ã©ã äžèŠ§ãã¹ã¯ãªããã§ååŸ
- 7 ãŸãšã
- 8 5. ãšã©ãŒå¯ŸçïŒæš©éãšã©ãŒãåºãå Žåã®è§£æ±ºç
- 8.1 5-1. SHOW COLUMNS ã§ãšã©ãŒãçºçããå Žå
- 8.2 5-2. INFORMATION_SCHEMA ã§ãšã©ãŒãçºçããå Žå
- 8.3 5-3. root ãŠãŒã¶ãŒã§ããšã©ãŒãçºçããå Žå
- 8.4 5-4. MySQL 8.0 ã§çºçããã¢ã¯ã»ã¹å¶éã®å€æŽç¹
- 8.5 5-5. MySQL Workbench ã§ãæš©éããããŸããããšè¡šç€ºãããå Žå
- 9 ãŸãšã
- 10 6. GUIããŒã«ã䜿ã£ãã«ã©ã äžèŠ§ã®ç¢ºèªæ¹æ³
- 11 ãŸãšã
- 12 7. FAQïŒãããã質åïŒ
- 12.1 7-1. SHOW COLUMNS ãš DESCRIBE ã®éãã¯ïŒ
- 12.2 7-2. INFORMATION_SCHEMA ã䜿ãã¡ãªããã¯ïŒ
- 12.3 7-3. ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ããæ¹æ³ã¯ïŒ
- 12.4 7-4. ã«ã©ã ã®ã³ã¡ã³ãæ å ±ãååŸããæ¹æ³ã¯ïŒ
- 12.5 7-5. ã«ã©ã äžèŠ§ãã¹ã¯ãªããã§èªåååŸããæ¹æ³ã¯ïŒ
- 13 ãŸãšã
- 14 8. ãŸãšã
- 14.1 8-1. MySQLã§ã«ã©ã äžèŠ§ãååŸããæ¹æ³ã®ç·ãŸãšã
- 14.2 8-2. å¿çšçãªã«ã©ã æ å ±ã®ååŸæ¹æ³
- 14.3 8-3. ã«ã©ã äžèŠ§ã®èªåååŸãšãšã©ãŒå¯Ÿç
- 14.4 8-4. GUIããŒã«ã䜿ã£ãã«ã©ã äžèŠ§ã®ç¢ºèª
- 14.5 8-5. FAQã®ãã€ã³ã
- 14.6 8-6. ä»åŸã®ããŒã¿ããŒã¹ç®¡çã®ãã³ã
- 15 ãŸãšããšæ¬¡ã®ã¹ããã
1. ã¯ããã«
MySQLãå©çšããŠããŒã¿ããŒã¹ãèšèšã»ç®¡çããéãããŒãã«ã®ã«ã©ã äžèŠ§ãååŸããæ¹æ³ã¯éåžžã«éèŠã§ãã
ã«ã©ã äžèŠ§ã確èªããããšã§ãããŒãã«ã®æ§é ãææ¡ãããããªããããŒã¿ã®æŽåæ§ãæé©ãªã¯ãšãªã®èšèšãå¯èœã«ãªããŸãã
ç¹ã«ã以äžã®ãããªå Žé¢ã§ã«ã©ã äžèŠ§ãååŸããå¿ èŠãåºãŠããŸãã
- ããŒã¿ããŒã¹ã®æ§é ã調æ»ãããšã
- æ°èŠã«ã©ã ãè¿œå ã»åé€ãããšã
- æ¢åã®ã«ã©ã åãããŒã¿åã確èªãããšã
- ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ãããšã
- ããã°ã©ã åŽã§ããŒãã«ãåçã«åŠçãããšã
æ¬èšäºã§ã¯ãMySQLã§ã«ã©ã äžèŠ§ãååŸããåºæ¬çãªæ¹æ³ããå¿çšç·šãŸã§è©³ãã解説ããŸãã
ãŸããSQLã³ãã³ãã®å®è¡äŸãèªååã¹ã¯ãªããããšã©ãŒå¯Ÿçãªã©ã®å®è·µçãªå
容ã玹ä»ããã®ã§ãåå¿è
ããäžçŽè
ãŸã§å¹
åºã圹ç«ã€æ
å ±ãšãªãã¯ãã§ãã
2. åºæ¬çãªã«ã©ã äžèŠ§ã®ååŸæ¹æ³
MySQLã§ã¯ãã«ã©ã äžèŠ§ãååŸããæ¹æ³ãããã€ããããŸããæãäžè¬çãªæ¹æ³ãšã㊠SHOW COLUMNS ã DESCRIBE ã䜿çšããæ¹æ³ããããŸãã
2-1. SHOW COLUMNS ã䜿ã£ãååŸ
MySQLã§ããŒãã«ã®ã«ã©ã äžèŠ§ãååŸããæãã·ã³ãã«ãªæ¹æ³ã¯ãSHOW COLUMNS
æã䜿ãããšã§ãã
䜿çšæ¹æ³
SHOW COLUMNS FROM ããŒãã«å;
ãŸãã¯ãFROM
ã®ä»£ããã« IN
ã䜿çšããããšãã§ããŸãã
SHOW COLUMNS IN ããŒãã«å;
ååŸã§ããæ å ±
SHOW COLUMNS
ãå®è¡ãããšã以äžã®ãããªæ
å ±ãååŸã§ããŸãã
ã«ã©ã å (Field) | ããŒã¿å (Type) | NULLèš±å¯ (Null) | ã㌠(Key) | ããã©ã«ãå€ (Default) | ãã®ä» (Extra) |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
name | varchar(255) | YES | NULL | ||
age | int(3) | YES | NULL |
å®è¡äŸ
äŸãã°ãusers
ããŒãã«ã®ã«ã©ã äžèŠ§ãååŸããå Žåã以äžã®SQLãå®è¡ããŸãã
SHOW COLUMNS FROM users;
åºåçµæïŒ
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255)| YES | | NULL | |
| age | int(3) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
SHOW COLUMNS ã®ã¡ãªããã»ãã¡ãªãã
â ã¡ãªãã
- ã·ã³ãã«ã§äœ¿ãããã
- ããŒãã«ã®æ§é ãçŽ æ©ãææ¡ã§ãã
â ãã¡ãªãã
- ç¹å®ã®ã«ã©ã ã®ã¿ãååŸããã®ãé£ãã
WHERE
å¥ã䜿ã£ãçµã蟌ã¿ãã§ããªã
2-2. DESCRIBE ã䜿ã£ãååŸ
SHOW COLUMNS
ãšã»ãŒåãæ©èœãæã€ã®ã DESCRIBE
æã§ãã
䜿çšæ¹æ³
DESCRIBE ããŒãã«å;
äŸãã°ãusers
ããŒãã«ã®ã«ã©ã æ
å ±ãååŸããå ŽåïŒ
DESCRIBE users;
åºåçµæïŒ
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255)| YES | | NULL | |
| age | int(3) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
DESCRIBE ãš SHOW COLUMNS ã®éã
DESCRIBE
㯠SHOW COLUMNS
ã®ãšã€ãªã¢ã¹ã§ãããåºæ¬çã«çµæã¯åãã§ãã
ãã ããSHOW COLUMNS ã®æ¹ã詳现ãªãªãã·ã§ã³ãæå®ã§ããç¹ã§ããåªããŠããŸãã
2-3. MySQL Workbench ã phpMyAdmin ã§ã«ã©ã äžèŠ§ã確èªãã
ã³ãã³ãã©ã€ã³ã§ã¯ãªããGUIããŒã«ã§ã«ã©ã äžèŠ§ã確èªããããšãå¯èœã§ãã
â
MySQL Workbench ã§ã¯ãããŒãã«ãå³ã¯ãªãã¯ããŠãããŒãã«æ§é ã衚瀺ã
â
phpMyAdmin ã§ã¯ã察象ããŒãã«ãã¯ãªãã¯ãããšãæ§é ãã¿ãã§äžèŠ§ã確èªå¯èœ
CLIã«æ £ããŠããªãå Žåã¯ãGUIããŒã«ã掻çšãããšçŽæçã«æäœã§ããŸãã
ãŸãšã
æ¬èšäºã§ã¯ãMySQLã§ã«ã©ã äžèŠ§ãååŸããåºæ¬çãªæ¹æ³ãšã㊠SHOW COLUMNS
ã DESCRIBE
ã«ã€ããŠè§£èª¬ããŸããã
äž»ãªãã€ã³ã
â SHOW COLUMNS
ã¯æãäžè¬çãªã«ã©ã ååŸæ¹æ³
â DESCRIBE
ã SHOW COLUMNS
ãšã»ãŒåãçµæãè¿ã
â GUIããŒã«ïŒMySQL WorkbenchãphpMyAdminïŒã§ãã«ã©ã äžèŠ§ã確èªå¯èœ

3. å¿çšç·šïŒç¹å®ã®æ¡ä»¶ã§ã«ã©ã ãæ€çŽ¢ãã
MySQLã® SHOW COLUMNS
ã DESCRIBE
ã¯äŸ¿å©ã§ããã倧éã®ããŒãã«ãã«ã©ã ãæ±ãå Žåã
ããæè»ãªæ€çŽ¢ãè¡ãããå Žé¢ãåºãŠããŸãã
ãã®ãããªå Žåã«äŸ¿å©ãªã®ã INFORMATION_SCHEMA ãå©çšããæ¹æ³ã§ãã
ããã§ã¯ãããŒã¿ããŒã¹å
šäœã®ã«ã©ã äžèŠ§ãååŸããæ¹æ³ãç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ããæ¹æ³ã解説ããŸãã
3-1. ããŒã¿ããŒã¹å ã®å šããŒãã«ã®ã«ã©ã äžèŠ§ãååŸ
MySQLã«ã¯ INFORMATION_SCHEMA.COLUMNS
ãšããã·ã¹ãã ãã¥ãŒãããã
ããã䜿ããš ããŒã¿ããŒã¹å
šäœã®ã«ã©ã æ
å ± ãååŸã§ããŸãã
SQLã®æ§æ
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_schema = 'ããŒã¿ããŒã¹å';
å®è¡äŸ
äŸãã°ãmy_database
ã®ãã¹ãŠã®ããŒãã«ãšã«ã©ã åãååŸãããå ŽåïŒ
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_schema = 'my_database';
åºåçµæ
+------------+--------------+
| table_name | column_name |
+------------+--------------+
| users | id |
| users | name |
| users | email |
| orders | id |
| orders | user_id |
| orders | total_price |
+------------+--------------+
ãã®çµæãããã©ã®ããŒãã«ã«ã©ããªã«ã©ã ãããã®ã ãäžç®ã§ææ¡ã§ããŸãã
3-2. ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢
ç¹å®ã®ã«ã©ã ãå«ãããŒãã«ã ããæ€çŽ¢ ãããå ŽåããINFORMATION_SCHEMA.COLUMNS
ãå©çšããããšã§å®çŸã§ããŸãã
SQLã®æ§æ
SELECT table_name
FROM information_schema.columns
WHERE column_name = 'ã«ã©ã å'
AND table_schema = 'ããŒã¿ããŒã¹å';
å®è¡äŸ
äŸãã°ãããŒã¿ããŒã¹ my_database
å
㧠email
ãšããã«ã©ã ãæã€ããŒãã«ãæ¢ãå ŽåïŒ
SELECT table_name
FROM information_schema.columns
WHERE column_name = 'email'
AND table_schema = 'my_database';
åºåçµæ
+------------+
| table_name |
+------------+
| users |
| customers |
+------------+
ãã®çµæãããemail
ãšããã«ã©ã ã users ããŒãã« ãš customers ããŒãã« ã«å«ãŸããŠããããšãããããŸãã
3-3. ã«ã©ã æ å ±ã®è©³çŽ°ãååŸããæ¹æ³
INFORMATION_SCHEMA.COLUMNS
ã䜿ããšã
ã«ã©ã ã®ããŒã¿åã NULL èš±å¯ãããã©ã«ãå€ãªã©ã®è©³çŽ°æ
å ±ãååŸã§ããŸãã
SQLã®æ§æ
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'ããŒãã«å'
AND table_schema = 'ããŒã¿ããŒã¹å';
å®è¡äŸ
äŸãã°ãusers
ããŒãã«ã®åã«ã©ã ã®è©³çŽ°æ
å ±ãååŸããå ŽåïŒ
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'users'
AND table_schema = 'my_database';
åºåçµæ
+-------------+-----------+------------+--------------+
| column_name | data_type | is_nullable | column_default |
+-------------+-----------+------------+--------------+
| id | int | NO | NULL |
| name | varchar | YES | NULL |
| email | varchar | YES | NULL |
| age | int | YES | NULL |
+-------------+-----------+------------+--------------+
3-4. INFORMATION_SCHEMA ã䜿ãã¡ãªãããšæ³šæç¹
ã¡ãªãã
â
ããŒã¿ããŒã¹å
šäœã®ã«ã©ã æ
å ±ãååŸã§ããïŒSHOW COLUMNS ã§ã¯ 1 ããŒãã«ãã€ããååŸã§ããªãïŒ
â
SQLã¯ãšãªã§èªç±ã«çµã蟌ã¿ãã§ããïŒWHERE å¥ã䜿ã£ãŠç¹å®ã®ã«ã©ã ã ããååŸå¯èœïŒ
â
JOIN ããŠä»ã®æ
å ±ãšçµã¿åãããããšãå¯èœ
泚æç¹
â 倧èŠæš¡ãªããŒã¿ããŒã¹ã§ã¯åŠçãé
ããªãå¯èœæ§ããã
â ããŒã¿ããŒã¹ããšã« table_schema
ãæå®ããªããšäžèŠãªæ
å ±ãæ··ãã
ãŸãšã
æ¬ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã® INFORMATION_SCHEMA.COLUMNS
ã掻çšãã
ããŒã¿ããŒã¹å
šäœã®ã«ã©ã äžèŠ§ãååŸããæ¹æ³ ã ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ããæ¹æ³ ã«ã€ããŠè§£èª¬ããŸããã
äž»ãªãã€ã³ã
â INFORMATION_SCHEMA.COLUMNS
ã䜿ããšãããŒãã«å
šäœã§ã¯ãªã ç¹å®ã®ã«ã©ã ãæ€çŽ¢ã§ãã
â SHOW COLUMNS
ã«æ¯ã¹ãŠãSQLã¯ãšãªã§ èªç±ãªãã£ã«ã¿ãªã³ã° ãå¯èœ
â ã«ã©ã ã®è©³çŽ°æ
å ±ïŒããŒã¿åãNULLå¯åŠãããã©ã«ãå€ãªã©ïŒ ãååŸã§ãã
â 倧èŠæš¡ããŒã¿ããŒã¹ã§ã¯ããã©ãŒãã³ã¹ã«æ³šæãå¿
èŠ
4. èªååïŒã«ã©ã äžèŠ§ãã¹ã¯ãªããã§ååŸ
MySQLã® SHOW COLUMNS
ã INFORMATION_SCHEMA
ã䜿ãã°ãæåã§ã«ã©ã äžèŠ§ãååŸã§ããŸããã
æ¯åSQLãå®è¡ããã®ã¯é¢å ã ãšæããããšãããã§ãããã
ç¹ã«ã以äžã®ãããªå Žé¢ã§ã¯ ã«ã©ã äžèŠ§ã®èªåååŸ ã圹ç«ã¡ãŸãã
- ããŒã¿ããŒã¹ã®æ§é å€æŽãç£èŠããã
- å®æçã«ã«ã©ã äžèŠ§ãèšé²ããŠãã¹ããŒãã®å€æŽå±¥æŽã管çããã
- ä»ã®ã·ã¹ãã ãšé£æºããã«ã©ã æ å ±ãåçã«ååŸããã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ã PythonãShellã¹ã¯ãªããã䜿ã£ãŠMySQLã®ã«ã©ã äžèŠ§ãèªåååŸããæ¹æ³ ã解説ããŸãã
4-1. Pythonã§ã«ã©ã äžèŠ§ãååŸãã
Pythonã«ã¯ mysql-connector-python
ãšããã©ã€ãã©ãªããããããã䜿ãããšã§MySQLã«æ¥ç¶ããã«ã©ã äžèŠ§ãååŸã§ããŸãã
Pythonã¹ã¯ãªããã®æºå
ãŸããã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ã以äžã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ããŠãã ããã
pip install mysql-connector-python
Pythonã¹ã¯ãªãã
次ã«ã以äžã®ã¹ã¯ãªãããäœæããŸãã
ãã®ã¹ã¯ãªããã¯ãç¹å®ã®ããŒãã«ã®ã«ã©ã äžèŠ§ãååŸãã衚瀺ãããã®ã§ãã
import mysql.connector
# MySQLã®æ¥ç¶æ
å ±ãèšå®
config = {
'user': 'your_user',
'password': 'your_password',
'host': 'localhost',
'database': 'your_database'
}
# MySQLã«æ¥ç¶
conn = mysql.connector.connect(**config)
cursor = conn.cursor()
# ååŸãããããŒãã«å
table_name = "users"
# ã«ã©ã äžèŠ§ãååŸ
query = f"SELECT column_name FROM information_schema.columns WHERE table_name = '{table_name}' AND table_schema = '{config['database']}'"
cursor.execute(query)
# çµæãåºå
columns = cursor.fetchall()
print(f"ã{table_name}ãã®ã«ã©ã äžèŠ§:")
for column in columns:
print(column[0])
# æ¥ç¶ãéãã
cursor.close()
conn.close()
ã¹ã¯ãªããã®å®è¡
ã¹ã¯ãªãããå®è¡ãããšã以äžã®ããã«ã«ã©ã äžèŠ§ãåºåãããŸãã
ãusersãã®ã«ã©ã äžèŠ§:
id
name
email
age
4-2. Shellã¹ã¯ãªããã§ã«ã©ã äžèŠ§ãååŸãã
Pythonã䜿ããã«ã ã·ã§ã«ã¹ã¯ãªããïŒBashïŒã§ã«ã©ã äžèŠ§ãååŸ ããæ¹æ³ããããŸãã
Linuxç°å¢ããµãŒããŒç®¡çã§ã¯ããã¡ãã®æ¹æ³ã®ã»ããæ軜ã«äœ¿ããŸãã
Shellã¹ã¯ãªããã®æºå
以äžã®ãããªã¹ã¯ãªãããäœæããmysql_columns.sh
ãšãããã¡ã€ã«åã§ä¿åããŸãã
#!/bin/bash
DB_NAME="your_database"
TABLE_NAME="users"
USER="your_user"
PASSWORD="your_password"
# MySQLã³ãã³ãã䜿ã£ãŠã«ã©ã äžèŠ§ãååŸ
mysql -u$USER -p$PASSWORD -D$DB_NAME -e "SELECT column_name FROM information_schema.columns WHERE table_name = '$TABLE_NAME' AND table_schema = '$DB_NAME';"
å®è¡æ¹æ³
ã¹ã¯ãªããã«å®è¡æš©éãä»äžããå®è¡ããŸãã
chmod +x mysql_columns.sh
./mysql_columns.sh
åºåçµæ
column_name
id
name
email
age
ãã®æ¹æ³ãªãã LinuxãµãŒããŒäžã§æ軜ã«ã«ã©ã äžèŠ§ãååŸ ã§ããŸãã
4-3. ã«ã©ã äžèŠ§ãå®æçã«ååŸã»ä¿åããïŒCronãžã§ãïŒ
ã¹ã¯ãªãããæåã§å®è¡ããã ãã§ãªãã å®æçã«ã«ã©ã äžèŠ§ãååŸãããã¡ã€ã«ã«ä¿åãã ããšãå¯èœã§ãã
äŸãã°ã1æ¥1åã«ã©ã äžèŠ§ãèšé²ããã¹ããŒãå€æŽã®å±¥æŽã远跡ãã ããšãã§ããŸãã
æé
- Pythonã¹ã¯ãªãããShellã¹ã¯ãªãããäœæïŒåè¿°ã®ãã®ãå©çšïŒ
- åºåçµæããã¡ã€ã«ã«ä¿åãã
- cronãžã§ããèšå®ãã
ä¿åããShellã¹ã¯ãªããäŸ
#!/bin/bash
DB_NAME="your_database"
TABLE_NAME="users"
USER="your_user"
PASSWORD="your_password"
OUTPUT_FILE="/path/to/logs/${TABLE_NAME}_columns_$(date +\%Y\%m\%d).txt"
# MySQLã³ãã³ãã§ã«ã©ã äžèŠ§ãååŸãããã¡ã€ã«ã«ä¿å
mysql -u$USER -p$PASSWORD -D$DB_NAME -e "SELECT column_name FROM information_schema.columns WHERE table_name = '$TABLE_NAME' AND table_schema = '$DB_NAME';" > $OUTPUT_FILE
cronãžã§ãã®èšå®
以äžã®ã³ãã³ããå®è¡ããcronã®èšå®ãéããŸãã
crontab -e
次ã«ã以äžã®è¡ãè¿œå ããŸããïŒæ¯æ¥æ·±å€3æã«å®è¡ïŒ
0 3 * * * /path/to/mysql_columns.sh
ããã«ããã æ¯æ¥ã«ã©ã äžèŠ§ãååŸãããã¡ã€ã«ã«ä¿åããèªåå ãå®çŸã§ããŸãã
ãŸãšã
æ¬ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã®ã«ã©ã äžèŠ§ãã¹ã¯ãªããã§èªåååŸããæ¹æ³ ã解説ããŸããã
äž»ãªãã€ã³ã
â Pythonã¹ã¯ãªããã§ã«ã©ã äžèŠ§ãååŸã§ããïŒMySQL Connectorãå©çšïŒ
â Shellã¹ã¯ãªããã§ãMySQLã³ãã³ãã䜿ã£ãŠååŸå¯èœ
â å®æçã«ã«ã©ã äžèŠ§ãèšé²ããããã«ãcronãžã§ãã掻çšã§ãã
â ããŒã¿ããŒã¹ã®ã¹ããŒãå€æŽå±¥æŽã远跡ããã®ã«ã圹ç«ã€
次åã®èšäºã§ã¯ãããšã©ãŒãçºçãããšãã®å¯ŸåŠæ³ã ã解説ããŸãã
SHOW COLUMNS ã INFORMATION_SCHEMA ãå®è¡ããéã®æš©éãšã©ãŒã察çæ¹æ³ ãç¥ãããæ¹ã¯ã次ã®ã»ã¯ã·ã§ã³ãã芧ãã ããïŒ
5. ãšã©ãŒå¯ŸçïŒæš©éãšã©ãŒãåºãå Žåã®è§£æ±ºç
MySQL㧠SHOW COLUMNS
ã INFORMATION_SCHEMA
ã䜿çšããŠã«ã©ã äžèŠ§ãååŸããéã
ãæš©éããããŸããã ãªã©ã®ãšã©ãŒãçºçããããšããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããšã©ãŒã®åå ãšè§£æ±ºç ã解説ããŸãã
5-1. SHOW COLUMNS ã§ãšã©ãŒãçºçããå Žå
SHOW COLUMNS
ãå®è¡ãããšãã«ã以äžã®ãããªãšã©ãŒãçºçããããšããããŸãã
ERROR 1142 (42000): SELECT command denied to user 'user'@'localhost' for table 'users'
ãšã©ãŒã®åå
ãã®ãšã©ãŒã¯ãããŒãã«ã«å¯Ÿãã SELECT
æš©éãäžè¶³ããŠãã ããçºçããŸããSHOW COLUMNS
㯠SELECT
æš©éãå¿
èŠã§ãã
解決ç
管çè
ïŒrootãŠãŒã¶ãŒïŒã§ãã°ã€ã³ãã該åœãŠãŒã¶ãŒã« SELECT
æš©éãä»äžããŸãã
GRANT SELECT ON your_database.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
ããã§ãSHOW COLUMNS
ãå®è¡ã§ããããã«ãªããŸãã
5-2. INFORMATION_SCHEMA ã§ãšã©ãŒãçºçããå Žå
INFORMATION_SCHEMA
ã䜿çšããã¯ãšãªãå®è¡ããéã«ã以äžã®ãããªãšã©ãŒãåºãããšããããŸãã
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)
ãšã©ãŒã®åå
INFORMATION_SCHEMA
ãåç
§ããã«ã¯ãSELECT
æš©éã ãã§ãªã INFORMATION_SCHEMA
ãžã®ã¢ã¯ã»ã¹æš© ãå¿
èŠã§ãã
解決ç
以äžã®ã³ãã³ãã§ãINFORMATION_SCHEMA
ãžã®ã¢ã¯ã»ã¹æš©ãä»äžããŸãã
GRANT SELECT ON information_schema.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
ããã«ãããINFORMATION_SCHEMA.COLUMNS
ãžã®ã¢ã¯ã»ã¹ãå¯èœã«ãªããŸãã
5-3. root ãŠãŒã¶ãŒã§ããšã©ãŒãçºçããå Žå
root
ãŠãŒã¶ãŒã§ã SHOW COLUMNS
ã INFORMATION_SCHEMA
ãžã®ã¢ã¯ã»ã¹ãå¶éãããŠããããšããããŸãã
ãã®å Žåãæš©éã®ç¢ºèª ãè¡ããŸãããã
æš©éã®ç¢ºèªæ¹æ³
SHOW GRANTS FOR 'root'@'localhost';
ãããALL PRIVILEGES
ãä»äžãããŠããªãå Žåã以äžã®ã³ãã³ãã§ä¿®æ£ã§ããŸãã
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
5-4. MySQL 8.0 ã§çºçããã¢ã¯ã»ã¹å¶éã®å€æŽç¹
MySQL 8.0 ã§ã¯ãäžéšã®ããã©ã«ãã®æš©éèšå®ãå€æŽãããŠããŸãã
ç¹ã«ãããã©ã«ãã§ã¯ INFORMATION_SCHEMA
ãžã®ã¢ã¯ã»ã¹ãå¶éãããŠãã ããããšã©ãŒãåºãããšããããŸãã
解決ç
MySQL 8.0 ã§ã¯ãmysql
ããŒã¿ããŒã¹ã« SELECT
æš©éãä»äžããå¿
èŠããããŸãã
GRANT SELECT ON mysql.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
ããã«ãããMySQL 8.0 ã§ã INFORMATION_SCHEMA
ãå©çšã§ããããã«ãªããŸãã
5-5. MySQL Workbench ã§ãæš©éããããŸããããšè¡šç€ºãããå Žå
MySQL Workbench 㧠SHOW COLUMNS
ãå®è¡ããããšããéã«ã以äžã®ãããªãšã©ãŒã¡ãã»ãŒãžãåºãããšããããŸãã
Error: Access denied; you need (at least one of) the SELECT privilege(s) for this operation
解決ç
MySQL Workbench ã§ã¯ãGUIæäœã§æš©éãä»äžããããšãå¯èœã§ãã
- ãAdministrationã â ãUsers and Privilegesã ãéã
- 察象ã®ãŠãŒã¶ãŒãéžæ
- ãSchema Privilegesãã¿ãã§
SELECT
æš©éãä»äž - ãApplyããã¿ã³ãã¯ãªãã¯ããŠä¿å
ããã«ãããMySQL Workbench ã§ãã«ã©ã äžèŠ§ãååŸã§ããããã«ãªããŸãã
ãŸãšã
æ¬ã»ã¯ã·ã§ã³ã§ã¯ãMySQL㧠SHOW COLUMNS
ã INFORMATION_SCHEMA
ãå®è¡ããéã®ãšã©ãŒå¯Ÿç ã解説ããŸããã
äž»ãªãã€ã³ã
â SHOW COLUMNS
ã®ãšã©ãŒã¯ SELECT
æš©éã®äžè¶³ãåå â GRANT SELECT
ã§è§£æ±º
â INFORMATION_SCHEMA
ã®ãšã©ãŒã¯ INFORMATION_SCHEMA.*
ãžã®ã¢ã¯ã»ã¹æš©äžè¶³ãåå â GRANT SELECT ON information_schema.*
ã§è§£æ±º
â MySQL 8.0 ã§ã¯ mysql.*
ãžã®æš©éãå¿
èŠã«ãªãããšããã
â MySQL Workbench ã§ã®æš©éãšã©ãŒã¯ GUI ã§ä¿®æ£å¯èœ
6. GUIããŒã«ã䜿ã£ãã«ã©ã äžèŠ§ã®ç¢ºèªæ¹æ³
MySQLã®ã«ã©ã äžèŠ§ãååŸããæ¹æ³ãšããŠããããŸã§ã« SQLã³ãã³ã ã䜿ãæ¹æ³ã玹ä»ããŸãããã
GUIïŒã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒããŒã« ã䜿ããšãèŠèŠçã«ã«ã©ã ã確èªã§ããŸãã
ç¹ã«ã以äžã®ãããªå Žé¢ã§ã¯GUIããŒã«ã䟿å©ã§ãã
- SQLã«è©³ãããªããŠãŒã¶ãŒã§ãçŽæçã«ããŒã¿ããŒã¹ã®æ§é ã確èªããã
- ããŒãã«ã®ã«ã©ã äžèŠ§ãæ軜ã«ãã§ãã¯ããã
- ã«ã©ã ã®ããŒã¿åãå¶çŽãçŽ æ©ãææ¡ããã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãMySQL Workbench ã phpMyAdmin ãªã©ã®ä»£è¡šçãªGUIããŒã« ã䜿ã£ãã«ã©ã äžèŠ§ã®ç¢ºèªæ¹æ³ã解説ããŸãã
6-1. MySQL Workbench ã§ã«ã©ã äžèŠ§ã確èªãã
MySQL Workbenchãšã¯ïŒ
MySQL Workbench ã¯ãMySQLå ¬åŒã®ããŒã¿ããŒã¹ç®¡çããŒã«ã§ãGUIã§ããŒãã«ãã«ã©ã æ å ±ãèŠèŠçã«æäœã§ãã 䟿å©ãªããŒã«ã§ãã
ã«ã©ã äžèŠ§ã®ç¢ºèªæ¹æ³
- MySQL Workbench ãèµ·å
- MySQLãµãŒããŒã«æ¥ç¶
- ãLocal Instance MySQLããŸãã¯èšå®ããæ¥ç¶ãéžæ
- ãSchemasãã¿ããéã
- 察象ã®ããŒã¿ããŒã¹ïŒäŸïŒmy_databaseïŒãå±é
- 確èªãããããŒãã«ïŒäŸïŒusersïŒãå³ã¯ãªãã¯
- ãTable Inspectorããéžæ
- ãColumnsãã¿ããéã
ã«ã©ã äžèŠ§ã®è¡šç€ºå 容
ãColumnsãã¿ãã«ã¯ã以äžã®æ å ±ã衚瀺ãããŸãã
ã«ã©ã å | ããŒã¿å | NULLèš±å¯ | äž»ã㌠| ããã©ã«ãå€ | è¿œå æ å ± |
---|---|---|---|---|---|
id | INT | NO | PRI | AUTO_INCREMENT | |
name | VARCHAR(255) | YES | NULL | ||
VARCHAR(255) | YES | UNI | NULL | ||
age | INT | YES | NULL |
â
SQLãå®è¡ããã«çŽæçã«ã«ã©ã ã®è©³çŽ°ã確èªã§ãã
â
ããŒãã«ã®ã€ã³ããã¯ã¹ãå¶çŽãåãããŠç¢ºèªã§ãã
6-2. phpMyAdmin ã§ã«ã©ã äžèŠ§ã確èªãã
phpMyAdminãšã¯ïŒ
phpMyAdmin ã¯ãWebãã©ãŠã¶äžã§MySQLã管çã§ããããŒã« ã§ãã
ç¹ã« ã¬ã³ã¿ã«ãµãŒã㌠ãªã©ã§ã¯æšæºã§æäŸãããŠããããšãå€ããæ軜ã«å©çšã§ããŸãã
ã«ã©ã äžèŠ§ã®ç¢ºèªæ¹æ³
- phpMyAdmin ã«ãã°ã€ã³
- å·Šã®ã¡ãã¥ãŒãã察象ã®ããŒã¿ããŒã¹ãéžæ
- ã«ã©ã äžèŠ§ã確èªãããããŒãã«ãã¯ãªãã¯
- ãæ§é ãã¿ããéã
ã«ã©ã äžèŠ§ã®è¡šç€ºå 容
ãæ§é ãã¿ãã§ã¯ãããŒãã«ã®ã«ã©ã æ å ±ã衚圢åŒã§è¡šç€ºãããŸãã
ã«ã©ã å | ããŒã¿å | NULLèš±å¯ | ããã©ã«ãå€ | ã€ã³ããã¯ã¹ | ã³ã¡ã³ã |
---|---|---|---|---|---|
id | INT | NO | AUTO_INCREMENT | PRIMARY | |
name | VARCHAR(255) | YES | NULL | ||
VARCHAR(255) | YES | NULL | UNIQUE | ||
age | INT | YES | NULL |
â
Webãã©ãŠã¶äžã§ç°¡åã«ã«ã©ã äžèŠ§ã確èªã§ãã
â
ã«ã©ã ã®è¿œå ã»ç·šéã»åé€ãGUIã§æäœå¯èœ
6-3. DBeaver ã TablePlus ãªã©ã®ä»£æ¿ããŒã«
MySQL Workbench ã phpMyAdmin 以å€ã«ãã䟿å©ãªããŒã¿ããŒã¹ç®¡çããŒã«ããããŸãã
DBeaver
- ã¯ãã¹ãã©ãããã©ãŒã 察å¿ïŒWindows, Mac, LinuxïŒ
- MySQL以å€ã«ããPostgreSQL, SQLite, Oracle ãªã©å€ãã®DBã«å¯Ÿå¿
- çŽæçãªGUIã§ã«ã©ã äžèŠ§ã衚瀺ã§ãã
TablePlus
- ã·ã³ãã«ãªUIã§åå¿è ã«ã䜿ãããã
- MySQL, PostgreSQL, SQLite ãªã©ããµããŒã
- é«éåäœã§ããŒã¿ããŒã¹ç®¡çãå¿«é©
â ãããã®ããŒã«ã䜿ãã°ãã«ã©ã äžèŠ§ã®ç¢ºèªãããŒã¿ã®æäœãããã«ã¹ã ãŒãºã«
ãŸãšã
æ¬ã»ã¯ã·ã§ã³ã§ã¯ãGUIããŒã«ã䜿ã£ãŠã«ã©ã äžèŠ§ã確èªããæ¹æ³ ã解説ããŸããã
äž»ãªãã€ã³ã
â MySQL Workbench ãªããTable Inspectorãã®ãColumnsãã¿ãã§ç¢ºèªã§ãã
â phpMyAdmin ã§ã¯ãæ§é ãã¿ããéãã°ã«ã©ã æ
å ±ãäžèŠ§è¡šç€ºããã
â DBeaver ã TablePlus ãªã©ã®ä»£æ¿ããŒã«ã䟿å©
â GUIã掻çšããã°SQLã®ç¥èããªããŠãçŽæçã«ã«ã©ã æ
å ±ã確èªã§ãã
7. FAQïŒãããã質åïŒ
MySQLã®ã«ã©ã äžèŠ§ãååŸããæ¹æ³ã«ã€ããŠãèªè
ãããæ±ãçåããŸãšããŸããã
SHOW COLUMNS ã INFORMATION_SCHEMA ã䜿ãéã®æ³šæç¹ããšã©ãŒã®å¯ŸåŠæ³ãå¿çšçãªäœ¿ãæ¹ãªã©ã詳ãã解説ããŸãã
7-1. SHOW COLUMNS ãš DESCRIBE ã®éãã¯ïŒ
質å
ãSHOW COLUMNS
ãš DESCRIBE
ã®éãã¯äœã§ããïŒã
åç
SHOW COLUMNS
ãš DESCRIBE
ã¯ãã»ãŒåãæ©èœ ãæã£ãŠããŸãã
å®éãDESCRIBE
㯠SHOW COLUMNS
ã® ãšã€ãªã¢ã¹ïŒå¥åïŒ ã«ãªã£ãŠããŸãã
â SHOW COLUMNS ã®äŸ
SHOW COLUMNS FROM users;
â DESCRIBE ã®äŸ
DESCRIBE users;
éããšããŠã¯ä»¥äžã®ç¹ãæããããŸãã
ã³ãã³ã | æ©èœ | 詳现 |
---|---|---|
SHOW COLUMNS | ã«ã©ã æ å ±ãååŸ | ãã詳现ãªãªãã·ã§ã³ãæå®å¯èœ |
DESCRIBE | SHOW COLUMNS ã®ãšã€ãªã¢ã¹ | ç瞮衚èšã§ç°¡åã«äœ¿ãã |
éåžžã®çšéã§ã¯ DESCRIBE
ã䜿ã£ãŠãåé¡ãããŸãããã
ããæè»ãªãªãã·ã§ã³ã䜿ãããå Žå㯠SHOW COLUMNS
ãéžã³ãŸãããã
7-2. INFORMATION_SCHEMA ã䜿ãã¡ãªããã¯ïŒ
質å
ãSHOW COLUMNS
ã§ã¯ãªã INFORMATION_SCHEMA
ã䜿ãã¡ãªããã¯äœã§ããïŒã
åç
INFORMATION_SCHEMA.COLUMNS
ã䜿ãããšã§ã以äžã®ãããªé«åºŠãªæ€çŽ¢ãå¯èœã«ãªããŸãã
â
ããŒã¿ããŒã¹å
šäœã®ã«ã©ã æ
å ±ãååŸã§ãã
â
ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ã§ãã
â
SQLã® WHERE
å¥ã䜿ã£ãŠãã£ã«ã¿ãªã³ã°ã§ãã
äŸãã°ããemail
ãšããã«ã©ã ãæã€ãã¹ãŠã®ããŒãã«ãæ€çŽ¢ãããããšãã¯ãSHOW COLUMNS
ã§ã¯å¯Ÿå¿ã§ããŸããããINFORMATION_SCHEMA
ãªãå¯èœã§ãã
SELECT table_name
FROM information_schema.columns
WHERE column_name = 'email'
AND table_schema = 'my_database';
SHOW COLUMNS
ã§ã¯ 1ããŒãã«ããš ã«ããæ
å ±ãååŸã§ããŸããããINFORMATION_SCHEMA
ãªã ããŒã¿ããŒã¹å
šäœã暪æããŠæ€çŽ¢å¯èœ ã§ãã
7-3. ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ããæ¹æ³ã¯ïŒ
質å
ãããŒã¿ããŒã¹å ã§ãç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãäžèŠ§è¡šç€ºããæ¹æ³ã¯ãããŸããïŒã
åç
INFORMATION_SCHEMA.COLUMNS
ã䜿ãã°ãç¹å®ã®ã«ã©ã ãå«ãããŒãã«ãæ€çŽ¢ã§ããŸãã
â SQLã®æ§æ
SELECT table_name
FROM information_schema.columns
WHERE column_name = 'ã«ã©ã å'
AND table_schema = 'ããŒã¿ããŒã¹å';
â
å®è¡äŸ
ãemail
ãšããã«ã©ã ãæã€ããŒãã«ãæ¢ãããã
SELECT table_name
FROM information_schema.columns
WHERE column_name = 'email'
AND table_schema = 'my_database';
â åºåçµæ
+------------+
| table_name |
+------------+
| users |
| customers |
+------------+
ãã®æ¹æ³ã䜿ããšãããŒã¿ããŒã¹å ã®ã©ã®ããŒãã«ã«ç¹å®ã®ã«ã©ã ãååšããããçŽ æ©ã確èªã§ããŸãã
7-4. ã«ã©ã ã®ã³ã¡ã³ãæ å ±ãååŸããæ¹æ³ã¯ïŒ
質å
ãã«ã©ã ã«èšå®ãããã³ã¡ã³ãæ å ±ãååŸããã«ã¯ã©ãããã°ããã§ããïŒã
åç
MySQLã§ã¯ãã«ã©ã ã«ã³ã¡ã³ãïŒèª¬æïŒãä»ããããšãã§ããŸãã
ã³ã¡ã³ããååŸããã«ã¯ãSHOW FULL COLUMNS
ãŸã㯠INFORMATION_SCHEMA.COLUMNS
ã䜿çšããŸãã
â SHOW FULL COLUMNS ã®äŸ
SHOW FULL COLUMNS FROM users;
â INFORMATION_SCHEMA ã䜿ãå Žå
SELECT column_name, column_comment
FROM information_schema.columns
WHERE table_name = 'users'
AND table_schema = 'my_database';
â åºåçµæ
+-------------+---------------------+
| column_name | column_comment |
+-------------+---------------------+
| id | ãŠãŒã¶ãŒID |
| name | ãŠãŒã¶ãŒã®åå |
| email | ã¡ãŒã«ã¢ãã¬ã¹ |
| age | 幎霢æ
å ±ïŒä»»æïŒ |
+-------------+---------------------+
7-5. ã«ã©ã äžèŠ§ãã¹ã¯ãªããã§èªåååŸããæ¹æ³ã¯ïŒ
質å
ãã«ã©ã äžèŠ§ãã¹ã¯ãªããã§ååŸããèªåçã«èšé²ããæ¹æ³ã¯ãããŸããïŒã
åç
Python ã Shell ã¹ã¯ãªããã䜿ãããšã§ãã«ã©ã äžèŠ§ãå®æçã«ååŸã»ä¿å ã§ããŸãã
â Python ã¹ã¯ãªããã®äŸ
import mysql.connector
config = {
'user': 'your_user',
'password': 'your_password',
'host': 'localhost',
'database': 'your_database'
}
conn = mysql.connector.connect(**config)
cursor = conn.cursor()
cursor.execute("SELECT column_name FROM information_schema.columns WHERE table_name = 'users'")
columns = cursor.fetchall()
print("ã«ã©ã äžèŠ§:")
for column in columns:
print(column[0])
cursor.close()
conn.close()
â Shell ã¹ã¯ãªããã®äŸ
#!/bin/bash
DB_NAME="your_database"
TABLE_NAME="users"
USER="your_user"
PASSWORD="your_password"
mysql -u$USER -p$PASSWORD -D$DB_NAME -e "SELECT column_name FROM information_schema.columns WHERE table_name = '$TABLE_NAME';"
â å®æå®è¡ïŒcronãžã§ãïŒ
0 3 * * * /path/to/mysql_columns.sh
ïŒæ¯æ¥æ·±å€3æã«ã«ã©ã äžèŠ§ãååŸããŠèšé²ïŒ
ãŸãšã
æ¬ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã®ã«ã©ã äžèŠ§ååŸã«é¢ãã ãããã質åãšãã®è§£æ±ºç ã玹ä»ããŸããã
äž»ãªãã€ã³ã
â SHOW COLUMNS ãš DESCRIBE ã¯åãæ©èœã ããSHOW COLUMNS ã®ã»ããæè»
â INFORMATION_SCHEMA ã䜿ããšãããŒã¿ããŒã¹å
šäœã®ã«ã©ã ãæ€çŽ¢ã§ãã
â ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ããã«ã¯ INFORMATION_SCHEMA.COLUMNS ãå©çš
â ã«ã©ã ã®ã³ã¡ã³ããååŸããã«ã¯ SHOW FULL COLUMNS ã INFORMATION_SCHEMA ã䜿çš
â Python ã Shell ã¹ã¯ãªããã䜿ãã°ã«ã©ã äžèŠ§ã®ååŸãèªååã§ãã
8. ãŸãšã
æ¬èšäºã§ã¯ãMySQL㧠ã«ã©ã äžèŠ§ãååŸããæ¹æ³ ã«ã€ããŠè©³ãã解説ããŸããã
åºæ¬çãªSQLã³ãã³ããããå¿çšçãªæ€çŽ¢æ¹æ³ãèªååããšã©ãŒå¯ŸçãGUIããŒã«ã®æŽ»çšãŸã§ã
å¹
åºãç¥èãæäŸããŸããã
æåŸã«ãèšäºå
šäœã®ãã€ã³ããæŽçããéèŠãªå
容ãæ¯ãè¿ããŸãã
8-1. MySQLã§ã«ã©ã äžèŠ§ãååŸããæ¹æ³ã®ç·ãŸãšã
åºæ¬çãªã«ã©ã äžèŠ§ã®ååŸæ¹æ³
æ¹æ³ | ã³ãã³ã | ç¹åŸŽ |
---|---|---|
SHOW COLUMNS | SHOW COLUMNS FROM ããŒãã«å; | äžçªã·ã³ãã«ãªæ¹æ³ãããŒãã«ããšã«ååŸ |
DESCRIBE | DESCRIBE ããŒãã«å; | SHOW COLUMNS ã®ãšã€ãªã¢ã¹ |
INFORMATION_SCHEMA | SELECT column_name FROM information_schema.columns WHERE table_name = 'ããŒãã«å' AND table_schema = 'ããŒã¿ããŒã¹å'; | ããŒã¿ããŒã¹å šäœã®ã«ã©ã æ å ±ãæ€çŽ¢å¯èœ |
â
SHOW COLUMNS
ã DESCRIBE
㯠簡åã§æ軜
â
INFORMATION_SCHEMA
㯠ããŒã¿ããŒã¹å
šäœã®ã«ã©ã ãæ€çŽ¢ã§ãã
8-2. å¿çšçãªã«ã©ã æ å ±ã®ååŸæ¹æ³
æ¹æ³ | ã³ãã³ã | ç®ç |
---|---|---|
å šããŒãã«ã®ã«ã©ã ãååŸ | SELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'ããŒã¿ããŒã¹å'; | ããŒã¿ããŒã¹å šäœã®ã«ã©ã ãäžèŠ§è¡šç€º |
ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ | SELECT table_name FROM information_schema.columns WHERE column_name = 'ã«ã©ã å' AND table_schema = 'ããŒã¿ããŒã¹å'; | ã©ã®ããŒãã«ã«ã«ã©ã ãå«ãŸããŠããããæ€çŽ¢ |
ã«ã©ã ã®è©³çŽ°æ å ±ãååŸ | SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name = 'ããŒãã«å' AND table_schema = 'ããŒã¿ããŒã¹å'; | ããŒã¿åãNULLèš±å¯ãããã©ã«ãå€ãç¢ºèª |
â
ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ã§ããïŒã¹ããŒãå€æŽæã«äŸ¿å©ïŒ
â
ããŒã¿åãNULLèš±å¯æ
å ±ãååŸå¯èœ
8-3. ã«ã©ã äžèŠ§ã®èªåååŸãšãšã©ãŒå¯Ÿç
èªååã®æ¹æ³
æ¹æ³ | èšèª | ã³ãã³ã |
---|---|---|
Pythonã¹ã¯ãªãã | Python | mysql-connector-python ãäœ¿çš |
Shellã¹ã¯ãªãã | Bash | mysql -u user -p -e "SQL" |
å®æå®è¡ïŒcronãžã§ãïŒ | Linux | 0 3 * * * /path/to/script.sh |
â
ã¹ã¯ãªããã掻çšããã°ã«ã©ã äžèŠ§ãèªåååŸã§ãã
â
cronãžã§ãã䜿ãã°ãå®æçãªããŒã¿ããŒã¹ç£èŠãå¯èœ
ãšã©ãŒå¯Ÿç
ãšã©ãŒå 容 | åå | 解決ç |
---|---|---|
SELECT command denied | SHOW COLUMNS ã« SELECT æš©éããªã | GRANT SELECT ON your_database.* TO 'user'@'localhost'; |
Access denied for user | INFORMATION_SCHEMA ãžã®æš©éããªã | GRANT SELECT ON information_schema.* TO 'user'@'localhost'; |
Table doesn't exist | ããŒãã«åãééã£ãŠãã | æ£ããããŒã¿ããŒã¹ã»ããŒãã«ãæå®ãã |
â
æš©éäžè¶³ã®ãšã©ãŒã¯ GRANT
ã³ãã³ãã§è§£æ±º
â
INFORMATION_SCHEMA
ã䜿ãå Žåã¯ç¹å¥ãªæš©éãå¿
èŠ
8-4. GUIããŒã«ã䜿ã£ãã«ã©ã äžèŠ§ã®ç¢ºèª
代衚çãªããŒã«
ããŒã« | ç¹åŸŽ |
---|---|
MySQL Workbench | å ¬åŒããŒã«ãèŠèŠçã«ã«ã©ã æ å ±ã管çã§ãã |
phpMyAdmin | Webãã©ãŠã¶ããç°¡åã«ããŒã¿ããŒã¹ç®¡çãå¯èœ |
DBeaver | MySQL以å€ã®ããŒã¿ããŒã¹ã«ã察å¿ããé«æ©èœããŒã« |
TablePlus | ã·ã³ãã«ãªãã¶ã€ã³ã§æäœãçŽæç |
â
GUIããŒã«ãªãSQLã³ãã³ãã䜿ããã«ã«ã©ã ã確èªã§ãã
â
ããŒã¿ããŒã¹ã®èšèšãç·šéãçŽæçã«ã§ãã
8-5. FAQã®ãã€ã³ã
質å | åç |
---|---|
SHOW COLUMNS ãš DESCRIBE ã®éãã¯ïŒ | ã»ãŒåããSHOW COLUMNS ã®æ¹ããªãã·ã§ã³ãè±å¯ |
INFORMATION_SCHEMA ã䜿ãã¡ãªããã¯ïŒ | ããŒã¿ããŒã¹å šäœãæ€çŽ¢ã§ããç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ¢ãã |
ç¹å®ã®ã«ã©ã ãæã€ããŒãã«ãæ€çŽ¢ããæ¹æ³ã¯ïŒ | INFORMATION_SCHEMA.COLUMNS ã䜿ã |
ã«ã©ã ã®ã³ã¡ã³ããååŸããæ¹æ³ã¯ïŒ | SHOW FULL COLUMNS ãŸã㯠INFORMATION_SCHEMA.COLUMNS |
ã«ã©ã äžèŠ§ãã¹ã¯ãªããã§èªåååŸããã«ã¯ïŒ | Python ã Shell ã掻çšããcronãžã§ãã§å®æå®è¡å¯èœ |
â
çåã«å¯Ÿããæ確ãªåçãçšæ
â
å
·äœçãªSQLã®äŸã瀺ããå®çšæ§ãåäž
8-6. ä»åŸã®ããŒã¿ããŒã¹ç®¡çã®ãã³ã
æåŸã«ãããŒã¿ããŒã¹ç®¡çãå¹çåããããã®ãã³ãã玹ä»ããŸãã
â ããŒãã«æ§é ã®ããã¥ã¡ã³ãåãè¡ã
SHOW CREATE TABLE
ã掻çšããããŒãã«æ§é ãèšé²ããŠããINFORMATION_SCHEMA
ãå®æçã«ãã§ãã¯ããã¹ããŒãã®å€åã远跡
â æš©é管çãé©åã«èšå®ãã
GRANT
ãREVOKE
ã掻çšããäžå¿ èŠãªæš©éãå¶é- ç£æ»ãã°ã掻çšãã誰ãã©ã®ããŒãã«ãå€æŽããããèšé²ãã
â ã¹ã¯ãªããã掻çšããŠäœæ¥ãèªåå
- PythonãShellã¹ã¯ãªããã§ã«ã©ã äžèŠ§ãååŸããå®æçã«èšé²
- cronãžã§ãã䜿ã£ãŠãæ¯æ¥ã¹ããŒããç£èŠãã
ãŸãšããšæ¬¡ã®ã¹ããã
æ¬èšäºã§ã¯ãMySQL㧠ã«ã©ã äžèŠ§ãååŸããæ¹æ³ ã åºæ¬ããå¿çšãŸã§äœç³»çã«è§£èª¬ ããŸããã
ããŒã¿ããŒã¹ã®ç®¡çãéçºã«ãããŠãã«ã©ã äžèŠ§ã®ååŸã¯ ããŒãã«æ§é ã®ç解ããããã°ã®å¹çåã«äžå¯æ¬ ã§ãã
次ã®ã¹ããã
â
MySQLã§ã«ã©ã äžèŠ§ãååŸããæ¹æ³ãå®éã«è©ŠããŠã¿ã
â
PythonãShellã¹ã¯ãªããã䜿ã£ãŠãäœæ¥ã®èªååã«ææŠãã
â
GUIããŒã«ã掻çšããŠãããŒã¿ããŒã¹ç®¡çãã¹ã ãŒãºã«è¡ã
ãããã®ç¥èã掻çšããã°ãMySQLã®ããŒã¿ããŒã¹ç®¡çãããã«å¹ççã«ãªããŸãïŒ ð