处理SQLserver复制表属性&查询数据库表所有行数

1.查询数据表的列明,类型、长度
我想复制表属性中的列明、类型、长度,发现快捷键只能复制出来列明,导出功能也是针对数据

 这个语句查询后一复制即可,chatgpt写的yyds

SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'project_table';

INFORMATION_SCHEMA.COLUMNS 是 SQL Server 数据库中的一个系统视图,它存储了数据库中所有表的列信息。这个视图提供了有关数据库表的列级别元数据,包括列名、数据类型、长度、约束等等。

具体来说,INFORMATION_SCHEMA.COLUMNS 视图中的一些重要列包括:

  • TABLE_CATALOG: 表所属的数据库名称。
  • TABLE_SCHEMA: 表所属的模式名称。
  • TABLE_NAME: 表名。
  • COLUMN_NAME: 列名。
  • DATA_TYPE: 列的数据类型。
  • CHARACTER_MAXIMUM_LENGTH: 如果是字符数据类型,表示列的最大字符长度。
  • NUMERIC_PRECISION: 如果是数值数据类型,表示数字的总位数。
  • NUMERIC_SCALE: 如果是数值数据类型,表示小数点后的位数。
  • IS_NULLABLE: 表示列是否允许为 NULL。
  • COLUMN_DEFAULT: 列的默认值。

查询结果如下:

2.查询数据库里所有表的行数

SELECT
    TABLE_SCHEMA AS DatabaseName,
    TABLE_NAME AS TableName,
    TABLE_ROWS AS RowCount
FROM
    information_schema.TABLES
WHERE
    TABLE_SCHEMA = 'your_database_name';

结果如图 

3.Python处理行数

我发现有一个数据库查出来数据总是不准,没办法,只能上脚本了 

import mysql.connector

# 数据库连接配置
config = {
     "host": "your_host",
    "user": "your_username",
    "password": "your_password",
    "database": "your_database_name"
}

# 建立数据库连接
connection = mysql.connector.connect(**config)

try:
    cursor = connection.cursor()

    # 获取所有表名
    cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'hetong';")
    table_names = cursor.fetchall()

    # 遍历每个表并获取行数
    for table_name in table_names:
        table_name = table_name[0]  # 从元组中提取表名
        cursor.execute(f"SELECT COUNT(*) FROM {table_name};")
        row_count = cursor.fetchone()[0]  #[0]是因为[1]有个逗号
        print(f"{table_name}: {row_count}")

finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值