是否有SQL语句可以返回表中列的类型?
当前回答
如果有人觉得这个有用的话。在SQL Server中:
sp_columns 'yourtablename'
这将给出所有列的详细信息。它提供了column_name、data_type、type_name、precision、length、iss_nullable等。
其他回答
在oracle SQL中,你可以这样做:
SELECT
DATA_TYPE
FROM
all_tab_columns
WHERE
table_name = 'TABLE NAME' -- in uppercase
AND column_name = 'COLUMN NAME' -- in uppercase
SHOW COLUMNS FROM //table_name// ;
它将为您提供关于表中所有列的信息。
由于有些人要求数据类型的精度,我想分享我为此目的而创建的脚本。
SELECT TABLE_NAME As 'TableName'
COLUMN_NAME As 'ColumnName'
CONCAT(DATA_TYPE, '(', COALESCE(CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, DATETIME_PRECISION, ''), IIF(NUMERIC_SCALE <> 0, CONCAT(', ', NUMERIC_SCALE), ''), ')', IIF(IS_NULLABLE = 'YES', ', null', ', not null')) As 'ColumnType'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE -- ...
ORDER BY 'TableName', 'ColumnName'
这并不完美,但在大多数情况下都有效。
使用sql server
USE [YourDatabaseName]
GO
SELECT column_name 'Column Name',
data_type 'Data Type'
FROM information_schema.columns
WHERE table_name = 'YourTableName'
GO
这将返回值Column Name,显示列的名称,以及这些列的数据类型(int, varchars等)。
如果你正在使用MySQL,你可以试试
SHOW COLUMNS FROM `tbl_name`;
在dev.mysql.com上显示列
否则你应该能做到
DESCRIBE `tbl_name`;
推荐文章
- 如何在不知道其名称的情况下删除SQL默认约束?
- SQL语法区分大小写吗?
- MySQL工作台:如何保持连接活动
- 左连接与Where子句
- 如何使用实体框架只更新一个字段?
- 在表变量上创建索引
- 为什么历史上人们使用255而不是256作为数据库字段大小?
- 如何选择记录从过去24小时使用SQL?
- 如何为查询返回的每一行执行存储过程一次?
- 按IN值列表排序
- 如何使用SQL Server 2008做多个CASE WHEN条件?
- 计数在VARCHAR字段中字符串的出现次数?
- 如何选择多行填充常量?
- 修改一个MySQL列为AUTO_INCREMENT
- 如果没有使用EXISTS引入子查询,则只能在选择列表中指定一个表达式