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

Как посмотреть тип данных в таблице sql

  • автор:

Как получить тип данных столбцов таблицы 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 ).

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.

How to Get the Data Type of Columns in SQL Server

You can use the following query to get the data type of your columns in SQL Server:

Next, you’ll see 3 scenarios to get the data type:

  • of all columns in a particular database
  • of all columns in a particular table
  • for a specific column

3 Scenarios to Get the Data Type of Columns in SQL Server

Scenario 1 – Get the data type of all columns in a particular database

To begin, select your desired database.

For example, let’s suppose that you have a database called the ‘test_database‘ which includes 3 tables.

You can then run the following query in order to get the data type of all the columns in the test_database:

Here is an example of the results that you may get, where the data type of each column is captured under the DATA_TYPE field:

TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE
test_database dbo cars brand nvarchar
test_database dbo cars price int
test_database dbo people first_name nvarchar
test_database dbo people last_name nvarchar
test_database dbo people age int
test_database dbo pets name nvarchar
test_database dbo pets age int

Scenario 2 – Get the data type of all columns in a particular table

Let’s say that you want to find the data type of the columns under the ‘people‘ table. In that case, add where TABLE_NAME = ‘people’ at the bottom of the query:

There are 3 columns in the ‘people’ table. For the first two columns (first_name and last_name) the data type is nvarchar, while the data type for the last column (age) is int for integers:

TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE
test_database dbo people first_name nvarchar
test_database dbo people last_name nvarchar
test_database dbo people age int

Scenario 3 – Get the data type for a specific column

Lastly, let’s get the data type for the first_name column (under the people table):

As you may see, the data type for the first_name column is nvarchar:

TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE
test_database dbo people first_name nvarchar

Optionally, you can also include the CHARACTER_MAXIMUM_LENGTH field in the query:

Оператор 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 имени столбца и типом столбца для больших таблиц, однако для возврата результата требуется больше времени, и это труднее найти нужную информацию. — скорость

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

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