W SQL columns Widok schematu informacji, który zwraca informacje o kolumnach, jest standardowym widokiem ISO obsługiwanym przez większość głównych systemów zarządzania bazą danych (RDBMS). Możesz użyć tego widoku, aby uzyskać informacje o typie danych kolumny.
Większość głównych RDBM zapewnia również inne metody uzyskiwania informacji o kolumnach.
Oto przykłady pobierania typu danych kolumny w różnych bazach danych SQL.
Kolumny information_schema.columns Zobacz
Jak wspomniano, większość głównych RDBMS obsługuje information_schema.columns widok.
Oto przykład użycia tego widoku do zwrócenia informacji o typie danych kolumny:
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';
Zastąp Products i ProductName z nazwą odpowiednio tabeli i kolumny. Dodaj/zmniejsz liczbę zwracanych kolumn zgodnie z wymaganiami.
Większość głównych RDBMS zapewnia bardziej zwięzły sposób uzyskiwania informacji z tabeli i kolumn. Niektóre z nich są wymienione poniżej.
SQLite
Powyższe nie działa w SQLite.
Najszybszym/najłatwiejszym sposobem na zrobienie tego w SQLite jest użycie PRAGMA table_info() oświadczenie:
PRAGMA table_info(Regions);
Alternatywnie możesz zapytać o sqlite_schema stół. W SQLite każda baza danych zawiera sqlite_schema tabela przechowująca schemat dla tej bazy danych. Oto przykład pobierania informacji o Regions tabela w Northwind baza danych:
SELECT sql
FROM Northwind.sqlite_schema
WHERE tbl_name = 'Regions';
Innym sposobem na to jest użycie .schema polecenie:
.schema Regions Zobacz 5 sposobów sprawdzania typu danych kolumny w SQLite, aby uzyskać więcej opcji.
MySQL
MySQL obsługuje kolumny information_schema.columns widoku, ale może być łatwiej użyć innej metody, takiej jak DESCRIBE oświadczenie:
DESCRIBE Pets;
Zwraca informacje o tabeli o nazwie Pets .
Możesz dołączyć nazwę kolumny, aby zawęzić ją do jednej kolumny:
DESCRIBE Pets PetName;
To zwraca informacje o PetName kolumny w Pets tabela.
DESCRIBE instrukcja jest w rzeczywistości skrótem do SHOW COLUMNS FROM . Dlatego możesz zastąpić DESCRIBE z SHOW COLUMNS FROM jeśli wolisz.
Zobacz 4 sposoby sprawdzania typu danych kolumny w MySQL, aby uzyskać więcej opcji i przykładów.
MariaDB
MariaDB jest bardzo podobna do MySQL, więc możemy również użyć DESCRIBE oświadczenie z MariaDB.
I tak jak w przypadku MySQL, DESCRIBE jest skrótem do SHOW COLUMNS FROM .
Oto przykład użycia tej składni
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
Jak widać, DESCRIBE składnia jest znacznie bardziej zwięzła, ale przynajmniej znamy nasze opcje.
Powinienem również wspomnieć, że MariaDB obsługuje także kolumny information_schema.columns widok.
Zobacz 4 sposoby sprawdzania typu danych kolumny w MariaDB, aby uzyskać więcej opcji.
Serwer SQL
SQL Server obsługuje również information_schema.columns widok, ale udostępnia też kilka innych opcji.
Jedną z szybkich opcji jest użycie sp_help procedura składowana:
EXEC sp_help Products;
Zwraca to wiele informacji o określonej tabeli (w tym przypadku Products tabeli).
Zobacz 3 sposoby uzyskania typu danych kolumny w SQL Server (T-SQL), aby uzyskać więcej opcji i przykładów.
PostgreSQL
Postgres obsługuje także information_schema.columns widok, ale jest też kilka innych opcji.
Jeśli używasz psql, możesz użyć \d polecenie, aby szybko uzyskać informacje o tabelach, widokach, widokach zmaterializowanych, indeksie, sekwencjach i tabelach obcych:
\d public.actor Zwraca to znacznie więcej niż tylko typ danych określonej kolumny, ale przynajmniej jest to opcja.
Zobacz 3 sposoby sprawdzania typu danych kolumny w PostgreSQL, aby uzyskać więcej informacji.
Wyrocznia
W Oracle możemy użyć DESC polecenie:
DESC HR.COUNTRIES;
Pobiera informacje o COUNTRIES tabela, należąca do HR .
Lub możemy zapytać o ALL_TAB_COLUMNS widok:
SELECT
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
DATA_SCALE
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'COUNTRIES'; Zobacz 3 sposoby sprawdzania typu danych kolumny w Oracle, aby uzyskać więcej informacji.