sql >> Database teknologi >  >> RDS >> Mysql

SQL Select inklusive datatype og dataværdier

Du kunne SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Men for at vælge flere felter skal du tilføje en anden forekomst af INFORMATION_SCHEMA.COLUMNS igen med et andet alias.

Men du bør ikke gøre dette af mange grunde.

Teknisk set:CROSS JOIN (tabellerne i FROM angivet blot med et komma) belaster databaseserveren meget. FROM T1, T2 parrer alle rækker af T1 med alle rækker af T2 og undersøger resultatrækkerne. Hvis T1 har n rækker, og T2 har m, har resultatet n*m rækker.

Logisk 1:Du skal ikke have brug for disse oplysninger for at blive returneret. Når du indtaster en forespørgsel (en SELECT) er det returnerede skema kendt; forespørgslen bestemmer, hvilke datatyper resultatkolonnerne er.Logisk 2:Da hver række har de samme datatyper i kolonnerne, behøver du ikke at typeoplysningerne returneres i hver række. For eksempel. dit eksempel, der returnerer data for 1000 medarbejdere, vil unødigt overføres på hver linje at AGE-feltet er INTEGER, NAME er VARCHAR og så videre...

Hvis du på en eller anden måde ikke ville kende skemaet for resultatet (f.eks. på grund af genererede forespørgsler eller lignende), så ville ovenstående løsning ikke hjælpe dig.




  1. Mysql Like + Wild Card vs Equals Operator

  2. Kopiering af mysql-databaser fra en computer til en anden

  3. select query virker ikke med parametre ved hjælp af Parameters.AddWithValue

  4. Hvordan man håndterer en ældre database i Django-rammeværket