1.获得DB列表
- SHOW database [LIKE wild]
- MYSQL_RES *mysql_list_dbs(MYSQL *mysql, const char *wild)
2.获得table列表
- SHOW TABLES
-
SHOW TABLES STATUS
- MYSQL_RES *mysql_list_tables(MYSQL *mysql, const char *wild)
注:SHOW TABLE和MYSQL_RES *mysql_list_tables(MYSQL *mysql, const char *wild)是很不安全的。因为他们会将VIEW也放在TABLE列表中。
建议使用:
- SHOW TABLE STATUS
-
FROM database
-
WHERE comment <> 'VIEW';
3. 获得表结构
- SHOW CREATE TABLE table_name
-
SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [like_or_where]
-
DESC table_name
- MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *result)
MYSQL_FIELD结构体请参照:
http://dev.mysql.com/doc/refman/5.1/en/c-api-data-structures.html MYSQL官方文档提示:“注意,建议使用SHOW COLUMNS FROM tbl_name,而不是mysql_list_fields()。”
4.获得索引
- SHOW INDEX FROM table_name
。结果集中列的意义请参照:
http://dev.mysql.com/doc/refman/5.1/en/show-index.html5.获得数据库中的VIEW列表
- SHOW TABLE STATUS
-
FROM database
-
WHERE comment = 'VIEW';
6.获得创建VIEW的SQL
- SHOW CREATE VIEW view_name
7.获得存储过程列表。
- SELECT ROUTINE_NAME
-
FROM INFORMATION_SCHEMA.ROUTINES
-
WHERE ROUTINE_TYPE="PROCEDURE"
-
AND ROUTINE_SCHEMA="dbname";
请参照
http://dev.mysql.com/doc/refman/5.1/zh/information-schema.html#routines-table http://dev.mysql.com/doc/refman/5.0/en/routines-table.html8.获得存储过程的相关信息
- SHOW CREATE PROCEDURE proc_name
-
SHOW PROCEDURE CODE proc_name
-
SHOW PROCEDURE STATUS [like_or_where]
mysql官方文档:“你可以从INFORMATION_SCHEMA中的ROUTINES表获得有关存储子程序的信息”。
9.获得数据库中的触发器的列表
- SHOW TRIGGERS [FROM db_name] [LIKE expr]
请参照:
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#show-triggers 10.获得创建触发器的SQL
- SHOW CREATE TRIGGER trigger_name
11.获得描述当前服务器线程的结果集
- MYSQL_RES *mysql_list_processes(MYSQL *mysql)
12.获得用户列表
关于用户操作的SQL语句CREATE USER,DROP USER,GRANT,RENAME USER,REVOKE,SET PASSWORD。请参照:
http://dev.mysql.com/doc/refman/5.1/en/account-management-sql.html13.SHOW PRIVILEGES
SHOW PRIVILEGES显示MySQL服务器支持的系统权限清单。确切的输出根据您的服务器的版本而定。
14.在mysql中有两个默认的数据库mysql和information_schema。关于这两个数据库的相关信息我还没找到。请谁找到之后给我说一声谢谢。
阅读(2942) | 评论(1) | 转发(1) |