Как узнать тип данных sql
Перейти к содержимому

Как узнать тип данных sql

  • автор:

 

3 Ways to Get a Column’s Data Type in SQL Server (T-SQL)

GUIs like SSMS or Azure Data Studio make it easy to see a column’s data type. Usually it’s a simple matter of navigating to the column in the object explorer and you can see the data type right next to the column.

But if you’re using T-SQL, you’ll need to run a query.

The information_schema.columns View

The information_schema.columns view is a good option if you simply want the data type and no more:

Replace Products and ProductName with the name of your table and column respectively.

OK, I returned a bit more than just the data type here. But you can omit the other columns if required. Or you can add more. For example, there are columns that contain the column’s precision in case you’re looking at a numeric or datetime column.

You can return all columns like this:

The sys.columns View

The sys.columns view is another option. We can join this with the sys.tables view to get a specific column from a specific table:

Again, include more or less columns as required.

In this example, I used the TYPE_NAME() function to return the name of the data type, based on its ID. This saved me from having to do a join on the sys.types table.

The sp_help Stored Procedure

The sp_help stored procedure can be useful if you want to return more information about the table.

This stored procedure returns information about a database object (any object listed in the sys.sysobjects compatibility view), a user-defined data type, or a data type:

This returns a lot of output, so I won’t list it all here.

Just replace Products with the name of the table or other object you want to get information about.

Как получить тип данных столбцов таблицы MySQL?

Думал, что я мог бы использовать структуру MYSQLFIELD , но это были перечисленные типы полей.

Затем я попытался с mysql_real_query()

Ошибка, которую я получаю, это query was empty

Как получить тип данных столбца?

10 ответов

Вы можете использовать таблицу information_schema:

В приведенном ниже запросе приводится список сведений о каждом поле, включая тип поля MySQL. Вот пример:

Большинство ответов — это дубликаты, может быть полезно сгруппировать их. В принципе предлагается два простых варианта.

Первый вариант

Первый вариант имеет 4 разных псевдонима, некоторые из которых довольно короткие:

(NB: в качестве альтернативы db_name.table_name можно использовать второй FROM : db_name FROM table_name ).

Это дает что-то вроде:

Второй вариант

Второй вариант немного длиннее:

Он также менее разговорчив:

У этого есть преимущество разрешить выбор для столбца, хотя, используя AND COLUMN_NAME = ‘column_name’ (или like ).

Оператор SQL для получения типа столбца

Есть ли оператор SQL, который может возвращать тип столбца в таблице?

Зависит от СУБД; SQL Server имеет sys.syscolumns стол например. — LittleBobbyTables — Au Revoir

Да, но это будет отличаться в зависимости от того, какой тип СУБД вы используете — SQL — это язык, а не продукт базы данных, и этот вопрос зависит от конкретного продукта. Вы сможете найти такого рода информацию в INFORMATION_SCHEMA.COLUMNS таблица — если она есть в вашей СУБД. — Bridge

26 ответы

Только если вы не хотите видеть соответствующее имя столбца. Это вернет только типы. Если вы хотите увидеть имя столбца, к которому принадлежит тип, вам также нужно будет выбрать COLUMN_NAME. — HackyStack

И если ваша таблица не находится в схеме по умолчанию, вы можете расширить условие с помощью AND TABLE_SCHEMA = ‘yourSchema’ — Лувиктор

это здорово, но возможно ли также вернуть диапазон для типа столбца? то есть varchar(255) вместо varchar и int(11) вместо int ? — Дон Чидл

@mmcrae: можно использовать столбец CHARACTER_MAXIMUM_LENGTH in INFORMATION_SCHEMA.COLUMNS . Просто сделай SELECT * FROM INFORMATION_SCHEMA.COLUMNS чтобы увидеть все доступные столбцы. — Фрэнсис П.

А временные таблицы? — Илья Газман

Самый простой способ в TSQL:

Для SQL Server эта системная хранимая процедура вернет всю информацию о таблице, включая типы данных столбцов:

Я проголосовал, так как это, хотя и не совсем ответ, но дает мне ценную информацию. Например, информацию «IsComputed» я не нашел в информационной схеме, но могу найти в коде процедуры sp_help и скопировать оттуда. — Кристоф

выберите имя таблицы и нажмите Alt+F1 .. дает тот же результат. — Пугал

для уточнения: имя таблицы или представления нужно выбрать в редакторе, а затем нажать Alt+F1 . Не в обозревателе объектов решения. Это такая полезная функция — кролик

И не только таблицы, также работает нормально с представлениями, просто: 1. Подключитесь к SQL Server в SSMS 2. Откройте новое окно запроса 3. Выберите свою базу данных: используйте 4. Выполните команду: exec sp_help — Дон Г.

В TSQL/MSSQL это выглядит так:

ответ дан 28 мая ’19, 16:05

 

На самом деле это JOIN sys.types y ON y.user_type_id = c.user_type_id system_type_id не уникален. документ sys.columns — Fabricio

Если вы используете MySQL, вы можете попробовать

В противном случае вы должны быть в состоянии сделать

Работы С Нами в противном случае вы имеете в виду другие СУБД, кроме MySQL? — Ламак

Да. DESCRIBE синтаксис действителен и в Oracle, однако MSQL не принимает этот синтаксис. — Фимас

См. ответ от @jTC для метода на MSSQL и TSQL. — Фимас

Более новые версии MySQL имеют information_schema.COLUMNS . — Рик Джеймс

Я считаю, что DESC OR DESCRIBE (в зависимости от используемой СУБД) полезен для небольших таблиц с 3 или 4 столбцами, тогда он показывает структуру таблицы с флагом Nullable имени столбца и типом столбца для больших таблиц, однако для возврата результата требуется больше времени, и это труднее найти нужную информацию. — скорость

SQL statement to get column type

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

30 Answers 30

Using SQL Server:

Mitch Wheat's user avatar

The easiest way in TSQL is:

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

mwigdahl's user avatar

Hanif Azhari's user avatar

If you’re using MySQL you could try

Otherwise you should be able to do

In TSQL/MSSQL it looks like:

lorond's user avatar

jTC's user avatar

To build on the answers above, it’s often useful to get the column data type in the same format that you need to declare columns.

For example, varchar(50) , varchar(max) , decimal(p, s) .

This allows you to do that:

MgSam's user avatar

in oracle SQL you would do this:

Another variation using MS SQL:

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

The only thing that needs to be changed is your_table_name.

This also works as it selects just the column names and their respective character type

Nii Joshua's user avatar

To retrieve the actual declared data types, for example for use in dynamic SQL to ALTER COLUMNs, something like this can be used:

AjV Jsy's user avatar

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

For IBM DB2 :

You can use INTO keyword.

The result of SELECT into a real TABLE

Example: select . INTO real_table_name

I.G. Pascual's user avatar

Since some people were asking for the precision as well with the data type, I would like to share my script that I have created for such a purpose.

It’s not perfect but it works in most cases.

Alexander Shuev's user avatar

Another option for MS SQL is to replace the select query here with the query you want the types for:

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *