sql >> Databáze >  >> RDS >> Mysql

SQL Select včetně datového typu a datových hodnot

Můžete SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Chcete-li však vybrat více polí, budete muset přidat další instanci souboru INFORMATION_SCHEMA.COLUMNS znovu s jiným aliasem.

Ale neměli byste to dělat z mnoha důvodů.

Technicky:CROSS JOIN (tabulky ve FROM uvedené jednoduše s čárkou) je pro databázový server velkou zátěží. FROM T1, T2 spáruje všechny řádky T1 se všemi řádky T2 a prozkoumá výsledné řádky. Pokud má T1 n řádků a T2 má m, pak má výsledek n*m řádků.

Logicky 1:Tyto informace byste neměli potřebovat k vrácení. Když zadáte dotaz (SELECT), vrácené schéma je známé; dotaz určuje, jaké datové typy jsou výsledné sloupce. Logicky 2:Vzhledem k tomu, že každý řádek má ve sloupcích stejné datové typy, nepotřebujete, aby se informace o typu vracely v každém řádku. Např. váš příklad vracející data 1000 zaměstnanců by zbytečně přenášel na každý řádek že pole AGE je INTEGER, NAME je VARCHAR a tak dále...

Pokud byste nějak neznali schéma výsledku (např. kvůli vygenerovaným dotazům nebo podobně), výše uvedené řešení by vám nepomohlo.




  1. Chyba hodnoty při importu dat do tabulky postgres pomocí psycopg2

  2. Jak srovnávat výkon PostgreSQL pomocí Sysbench

  3. CASE .. WHEN výraz v Oracle SQL

  4. Velké tabulky MySQL