Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL Select, w tym typ danych i wartości danych

Możesz SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Aby jednak wybrać więcej pól, musisz ponownie dodać kolejne wystąpienie INFORMATION_SCHEMA.COLUMNS z innym aliasem.

Ale nie powinieneś tego robić z wielu powodów.

Technicznie:CROSS JOIN (tabele w FROM wymienione po prostu przecinkiem) są dużym obciążeniem dla serwera bazy danych. FROM T1, T2 łączy w pary wszystkie wiersze T1 ze wszystkimi wierszami T2 i sprawdza wiersze wyników. Jeśli T1 ma n wierszy, a T2 ma m, to wynik ma n*m wierszy.

Logicznie 1:Nie powinieneś potrzebować tych informacji do zwrotu. Po wprowadzeniu zapytania (SELECT) zwrócony schemat jest znany; zapytanie określa, jakie typy danych są w kolumnach wynikowych. Logicznie 2:Ponieważ każdy wiersz ma te same typy danych w kolumnach, nie musisz zwracać informacji o typie w każdym wierszu. Np. Twój przykład zwracający dane 1000 pracowników niepotrzebnie przeniósłby się na każdą linię że pole AGE to INTEGER, NAME to VARCHAR i tak dalej...

Jeśli jakoś nie znasz schematu wyniku (np. z powodu wygenerowanych zapytań itp.), powyższe rozwiązanie nie pomoże.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wartości Auto_increment w InnoDB?

  2. rzucić ciąg na czas sql

  3. Jak zwrócić wiersze wymienione w kolejności malejącej COUNT(*)?

  4. Błąd MySQL:2013, Utracono połączenie z serwerem MySQL podczas „odczytu początkowego pakietu komunikacyjnego”, błąd systemowy:0

  5. Odblokowywanie tabel w przypadku utraty wątku