SQL 获取列类型的SQL语句

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13405572/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 12:08:15  来源:igfitidea点击:

SQL statement to get column type

sqlschema

提问by daniely

Is there a SQL statement that can return the type of a column in a table?

是否有可以返回表中列类型的 SQL 语句?

回答by Francis P

Using SQL Server:

使用 SQL 服务器:

SELECT DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE 
     TABLE_NAME = 'yourTableName' AND 
     COLUMN_NAME = 'yourColumnName'

回答by HackyStack

The easiest way in TSQL is:

TSQL 中最简单的方法是:

SELECT COLUMN_NAME, DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'yourTableName'

回答by Hanif Azhari

For SQL Server, this system stored procedure will return all table information, including column datatypes:

对于 SQL Server,此系统存储过程将返回所有表信息,包括列数据类型:

exec sp_help YOURTABLENAME

回答by jTC

In TSQL/MSSQL it looks like:

在 TSQL/MSSQL 中,它看起来像:

SELECT t.name, c.name 
FROM sys.tables t 
JOIN sys.columns c ON t.object_id = c.object_id
JOIN sys.types y ON y.user_type_id = c.user_type_id
WHERE t.name = ''

回答by Assaf

in oracle SQL you would do this:

在 oracle SQL 中,您将执行以下操作:

SELECT
    DATA_TYPE
FROM
    all_tab_columns 
WHERE
    table_name = 'TABLE NAME' -- in uppercase
AND column_name = 'COLUMN NAME' -- in uppercase

回答by fimas

If you're using MySQL you could try

如果您使用的是 MySQL,您可以尝试

SHOW COLUMNS FROM `tbl_name`;

SHOW COLUMNS on dev.mysql.com

在 dev.mysql.com 上显示列

Otherwise you should be able to do

否则你应该能够做到

DESCRIBE `tbl_name`;

回答by Arne H. Bitubekk

Another variation using MS SQL:

另一个使用 MS SQL 的变体:

SELECT TYPE_NAME(system_type_id) 
FROM sys.columns 
WHERE name = 'column_name'
AND [object_id] = OBJECT_ID('[dbo].[table_name]');

回答by csebryam

Using TSQL/MSSQL

使用 TSQL/MSSQL

This query will get you: table name, column name, data type, data type length, and allowable nulls

此查询将获得:表名、列名、数据类型、数据类型长度和允许的空值

SELECT TABLE_NAME,COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'your_table_name'

The only thing that needs to be changed is your_table_name.

唯一需要更改的是your_table_name。

回答by Kprof

USE [YourDatabaseName]
GO

SELECT column_name 'Column Name',
data_type 'Data Type'
FROM information_schema.columns
WHERE table_name = 'YourTableName'
GO

This will return the values Column Name, showing you the names of the columns, and the Data Types of those columns (ints, varchars, etc).

这将返回值列名,向您显示列的名称以及这些列的数据类型(整数、varchars 等)。

回答by Aman

For IBM DB2:

对于IBM DB2

SELECT TYPENAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA='your_schema_name' AND TABNAME='your_table_name' AND COLNAME='your_column_name'