フィールド名一覧が欲しい

MySQLで、データベース名とテーブル名指定してフィールド情報を取得するには、次のSQLでいいのかな?

SELECT
  *
FROM
  INFORMATION_SCHEMA.COLUMNS
WHERE
  TABLE_CATALOG = 'def'
    AND TABLE_SCHEMA  = 'database_name'
    AND TABLE_NAME    = 'table_name'
ORDER BY
  ORDINAL_POSITION
;

メタ情報はINFORMATION_SCHEMAっていう名前のデータベースが保持していて、フィールド情報はその中のCOLUMNSっていう名前のテーブルが持っているらしい。
TABLE_CATALOGって何を意味するんだろう?COLUMNSの内容から、僕が勝手にTABLE_SCHEMAがデータベース名、TABLE_NAMEがテーブル名だと判断したけどそれでいいのかな。なんか他にもTABLE_TYPEとかいっぱいあるね。ORDINAL_POSITIONでORDER BYしてあげると、列の順番そのまま取ってこれるみたいだね。
この仕組みは他のDBMSでも同じなのかなー?