MySQLを使用してすべてのテーブルに存在する列を識別する方法は?
列名を識別するには、MySQLでINFORMATION_SCHEMA.COLUMNSを使用します。構文は次のとおりです-
select table_name,column_name from INFORMATION_SCHEMA.COLUMNS where table_schema = SCHEMA() andcolumn_name='anyColumnName';
すべてのテーブルに存在する列を識別するために、上記のクエリを実装しましょう。ここでは、列EmployeeAge-
の存在を見つけています。mysql> select table_name,column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = SCHEMA() AND column_name='EmployeeAge';
これにより、特定の列「EmployeeAge」-
を持つテーブルを表示する次の出力が生成されます。+---------------+-------------+ | TABLE_NAME | COLUMN_NAME | +---------------+-------------+ | demotable1153 | EmployeeAge | | demotable1297 | EmployeeAge | | demotable1303 | EmployeeAge | | demotable1328 | EmployeeAge | | demotable1378 | EmployeeAge | | demotable1530 | EmployeeAge | | demotable1559 | EmployeeAge | | demotable1586 | EmployeeAge | | demotable1798 | EmployeeAge | | demotable1901 | EmployeeAge | | demotable511 | EmployeeAge | | demotable912 | EmployeeAge | +---------------+-------------+ 12 rows in set (0.00 sec)
証明するために、上記の表のいずれかの説明を確認しましょう-
mysql> desc demotable1153;
これにより、demotable1153-
にEmployeeAge列が存在することを示す次の出力が生成されます。+--------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+----------------+ | EmployeeId | int(11) | NO | PRI | NULL | auto_increment | | EmployeeName | varchar(40) | YES | MUL | NULL | | | EmployeeAge | int(11) | YES | | NULL | | +--------------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
-
MySQLで特定の列名を持つテーブルを見つける方法は?
列名を見つけるには、information_schema.columnsを使用します。以下は構文です- select distinct table_name from information_schema.columns where column_name like '%yourSearchValue%' and table_schema=database(); さまざまなテーブルで列名を見つけるために、上記の構文を実装しましょう。ここでは、特定の列名が「クライアント」という単語を持つテーブル名のみが必要です- mysql> select distinct table_
-
MySQLを使用するサーバー上のすべてのデータベースのすべてのテーブルでSELECTを付与するにはどうすればよいですか?
このために、以下の構文のようにGRANTSELECTステートメントを使用できます- GRANT SELECT ON *.* TO 'yourUserName'@'yourHostName'; まず、すべてのユーザー名とホストを一覧表示します- mysql> select user,host from mysql.user; これにより、次の出力が生成されます- +------------------+-----------+ | user |