В SQL, columns
Изглед на информационна схема, който връща информация за колони, е стандартен изглед на ISO, който се поддържа от повечето от основните RDBMS. Можете да използвате този изглед, за да получите информация за типа данни на колона.
Повечето от основните RDBM също предоставят други методи за получаване на информация за колони.
Ето примери за получаване на типа данни на колона в различни SQL бази данни.
information_schema.columns
Преглед
Както споменахме, повечето основни RDBMS поддържат information_schema.columns
изглед.
Ето пример за използване на този изглед за връщане на информация за тип данни в колона:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Заменете Products
и ProductName
с името на вашата таблица и колона съответно. Добавете/намалете броя на върнатите колони според изискванията.
Повечето основни RDBMS предоставят по-сбит начин за получаване на информация за таблица и колона. Някои от тях са изброени по-долу.
SQLite
Горното не работи в SQLite.
Най-бързият/лесният начин да го направите в SQLite е да използвате PRAGMA table_info()
изявление:
PRAGMA table_info(Regions);
Като алтернатива можете да направите заявка за sqlite_schema
маса. В SQLite всяка база данни съдържа sqlite_schema
таблица, която съхранява схемата за тази база данни. Ето пример за получаване на информация за Regions
таблица в Northwind
база данни:
SELECT sql
FROM Northwind.sqlite_schema
WHERE tbl_name = 'Regions';
Друг начин да го направите е да използвате .schema
команда:
.schema Regions
Вижте 5 начина за проверка на типа данни на колона в SQLite за повече опции.
MySQL
MySQL поддържа information_schema.columns
преглед, но може да ви е по-лесно да използвате друг метод, като DESCRIBE
изявление:
DESCRIBE Pets;
Това връща информация за таблица, наречена Pets
.
Можете да добавите името на колоната, за да я стесните до една колона:
DESCRIBE Pets PetName;
Това връща информация за PetName
колони в Pets
таблица.
DESCRIBE
изявлението всъщност е пряк път за SHOW COLUMNS FROM
. Следователно, можете да замените DESCRIBE
с SHOW COLUMNS FROM
ако предпочитате.
Вижте 4 начина за проверка на типа данни на колона в MySQL за повече опции и примери.
MariaDB
MariaDB е много подобен на MySQL и затова можем да използваме и DESCRIBE
изявление с MariaDB.
И както при MySQL, DESCRIBE
е пряк път за SHOW COLUMNS FROM
.
И така, ето пример за използване на този синтаксис
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
Както можете да видите, DESCRIBE
синтаксисът е много по-сбит, но поне знаем нашите опции.
Трябва също да спомена, че MariaDB също поддържа information_schema.columns
изглед.
Вижте 4 начина за проверка на типа данни на колона в MariaDB за повече опции.
SQL сървър
SQL Server също така поддържа information_schema.columns
изглед, но предоставя и няколко други опции.
Една бърза опция е да използвате sp_help
съхранена процедура:
EXEC sp_help Products;
Това връща много информация за посочената таблица (в този случай Products
таблица).
Вижте 3 начина за получаване на типа данни на колона в SQL Server (T-SQL) за повече опции и примери.
PostgreSQL
Postgres също поддържа information_schema.columns
преглед, но има и няколко други опции.
Ако използвате psql, можете да използвате \d
команда за бързо получаване на информация за таблици, изгледи, материализирани изгледи, индекс, поредици и чужди таблици:
\d public.actor
Това връща много повече от просто типа данни на конкретна колона, но поне е опция.
Вижте 3 начина за проверка на типа данни на колона в PostgreSQL за повече.
Оракул
В Oracle можем да използваме DESC
команда:
DESC HR.COUNTRIES;
Това получава информация за COUNTRIES
таблица, собственост на HR
.
Или можем да направим заявка за ALL_TAB_COLUMNS
изглед:
SELECT
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
DATA_SCALE
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'COUNTRIES';
Вижте 3 начина за проверка на типа данни на колона в Oracle за повече информация.