Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL Изберете, включително тип данни и стойности на данни

Можете да SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Но за да изберете повече полета, ще трябва да добавите друг екземпляр на INFORMATION_SCHEMA.COLUMNS отново с различен псевдоним.

Но не трябва да правите това по много причини.

Технически:CROSS JOIN (таблиците във FROM са изброени просто със запетая) е голямо напрежение за сървъра на базата данни. FROM T1, T2 сдвоява всички редове на T1 с всички редове на T2 и разглежда редовете с резултати. Ако T1 има n реда и T2 има m, тогава резултатът има n*m реда.

Логично 1:Не трябва да имате нужда от тази информация, за да бъде върната. Когато въведете заявка (SELECT), върнатата схема е известна; заявката определя какви типове данни са колоните с резултати. Логично 2:Тъй като всеки ред има едни и същи типове данни в колоните, не е необходимо информацията за типа да се връща във всеки ред. напр. вашият пример, който връща данни за 1000 служители, би прехвърлил ненужно на всеки ред че полето AGE е INTEGER, NAME е VARCHAR и така нататък...

Ако по някакъв начин не знаете схемата на резултата (напр. поради генерирани заявки или други подобни), тогава горното решение няма да ви помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL:Извличане на последните *пълни* записи от седмици

  2. Какъв е най-добрият начин за съхраняване на исторически ценоразпис в MySQL таблица?

  3. присъединете множество mysql таблици с префикс и групова сума

  4. Mysql тригер/събития срещу Cronjob

  5. Достъп до MySQL база данни в d3 визуализация