SQL 选择数据库以及查询所有数据库名、表、列名

查询所有数据库名

数据库、表、列、用户、权限等信息被存储在数据库和表中,不过内部的表一般不直接被访问。可用MySQL的 show 命令来显示这些信息(MySQL从内部表中提取这些信息)。SQL命令:

SHOW DATABASES;

注意: 该命令返回可用数据库的一个列表。包含在这个列表中可能是MySQL内部使用的数据库。

选择数据库

最初连接到数据库时,没有任何数据库打开供你使用。在你能执行任意数据库操作前,需要选择一个数据库,使用use命令。命令如下(这里选择的是world数据库):

USE 数据库名;

当显示Database changed 时代表选择成功!

 注意:USE命令并不返回任何结果。依赖于使用的客户机,显示每种形式的通知。必须先使用USE命令打开数据库,才能读取其中的数据。

查询一个数据库内的表的列名

为了获得一个数据库内的表的列名,使用 SHOW TABLES 命令(使用该命令前必须先用USE命令选择一个数据库)。命令如下(选择的是world数据库):

SHOW TABLES;

 注意:该命令返回当前选择的数据库内可用表的列名。

查询一个表的所有列名

显示一个表的列名用SHOW COLUMNS 或 DESCRIBE(这种方式比较快捷)命令。命令如下(显示world数据库中的city表):

SHOW COLUMNS FROM 表名;
DESCRIBE 表名;

注意:要求给出一个表名,它对每个字段返回一行,行中包含字段名、数据类型、是否允许null、键信息、默认值以及其他信息。

 其他SHOW命令:

1、SHOW STATUS:显示广泛的服务器状态信息

2、SHOW CREATE DATABASE 和 SHOW CREATE TABLE:显示创建特定数据库或表

3、SHOW GRANTS:显示授权用户(所有用户或特定用户)的安全权限

4、SHOW ERRORS 和 SHOW WARNINGS:显示服务器错误或警告消息

5、HELP SHOW:显示允许的SHOW语句

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 SQL Server 的系统来获取列名。以下是一个 C++ 示例代码,用于获取为 "myTable" 的列名: ```c++ #include <iostream> #include <sql.h> #include <sqlext.h> #include <string> using namespace std; int main() { // Declare variables SQLHANDLE sqlEnvHandle = NULL; SQLHANDLE sqlConnHandle = NULL; SQLHANDLE sqlStmtHandle = NULL; SQLRETURN retCode = 0; string tableName = "myTable"; // Allocate environment handle retCode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle); // Set the ODBC version environment attribute retCode = SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); // Allocate connection handle retCode = SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle); // Connect to the data source retCode = SQLConnect(sqlConnHandle, (SQLCHAR*)"YOUR_DSN_NAME", SQL_NTS, (SQLCHAR*)"YOUR_USERNAME", SQL_NTS, (SQLCHAR*)"YOUR_PASSWORD", SQL_NTS); // Allocate statement handle retCode = SQLAllocHandle(SQL_HANDLE_STMT, sqlConnHandle, &sqlStmtHandle); // Get column names string query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + tableName + "'"; retCode = SQLExecDirect(sqlStmtHandle, (SQLCHAR*)query.c_str(), SQL_NTS); // Fetch column names SQLCHAR colName[256]; while (SQLFetch(sqlStmtHandle) == SQL_SUCCESS) { SQLGetData(sqlStmtHandle, 1, SQL_C_CHAR, colName, 256, NULL); cout << colName << endl; } // Clean up SQLFreeHandle(SQL_HANDLE_STMT, sqlStmtHandle); SQLDisconnect(sqlConnHandle); SQLFreeHandle(SQL_HANDLE_DBC, sqlConnHandle); SQLFreeHandle(SQL_HANDLE_ENV, sqlEnvHandle); return 0; } ``` 请将 "YOUR_DSN_NAME"、"YOUR_USERNAME" 和 "YOUR_PASSWORD" 替换为你的 SQL Server 连接信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值