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.