Komanda 'SELECT'

Last modified by superadmin on 2018-01-12 20:38

Komanda 'SELECT'

SELECT komanda ļauj mums iegūt datus no datubāzes. Tā ir ļoti daudzpusīga komanda, jo ar to var atlasīt datus (t.sk. situācijās, kad datubāzes tabulu nosaukumos lietoti MySQL rezervētie vārdi), iegūt statistiskus datus, sk. MySQL grupēšanas funkcijas un MySQL grupēšana, un sarežģītus pārskatus, rēķināt MySQL funkcijas, izpildīt MySQL darbības ar tekstu un dažu citu veidu informācijas atgriešanu no datubāzes.

SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
       [DISTINCT | DISTINCTROW | ALL]
       select_expression,...
    [INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
    [FROM table_references
        [WHERE where_definition]
        [GROUP BY col_name,...]
        [HAVING where_definition]
        [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
        [LIMIT [offset,] rows]
        [PROCEDURE procedure_name] ]

Ko var rakstīt aiz WHERE un GROUP BY ir pateikts šeit. Par pamatu atkal ņemsim tabulas cilveks un adrese, kas ir CREATE INDEX aprakstā. Mēģināšu dot un izskaidrot pietiekami izvērstu piemēru, lai saprastu kā šis SELECT varētu izskatīties.

SELECT c.id_cilveks AS npk, SUBSTRING(c.Vards,1) + "." +
  c.uzvards AS persona, a.valsts, a.pilseta, a.iela + " " + a.nr_dz as maja
  FROM cilveks c, adrese AS a
  WHERE c.id_adrese=a.id_adrese
      AND (UPPER(c.uzvards) like "OZOL%" OR c.uzvards like "PRIED%")
      AND (LOWER(a.valsts) = "latvija")
  GROUP BY  a.valsts,a.pilseta
  ORDER BY c.uzvards,c.vards DESC
  LIMIT 10

Šis piemērs pēc būtības dara sekojošo: Atrod visus cilvēkus, kas dzīvo Latvijā un kuriem uzvārds sākās ar "OZOL" vai "PRIED", sagrupē tos pa piederībām valstij, tad pilsētai, un pēc tam sakārto uzvārda augošā secībā, un vārdu dilstošā secībā. Rezultātā vienā laukā ar nosaukumu persona parāda vārda pirmo burtu, aiz tā punktu un tad pilnu uzvārdu. Rezultāts šādai meklēšanai varētu būt tāds:

npkPersonaValstspilsetamaja
423548K.OzoliņšLatvijaCēsisĻeņina 5-3
32543258Z.PriedeLatvijaCēsisKurbada 32-9
0x54FFCG.PriedeslaipaLatvijaCēsisHakeru 0xE3-0x16
23248K.OzoliņšLatvijaRīgaKino 1-1
852235A.OzoliņšLatvijaRīgaDzelzs 82
34589835M.PriedeLatvijaRīgaKandavas 22

SELECT citas iespējas un parametrus sk. MySQL komanda SELECT.

Tags:
Created by Kalvis Apsītis on 2008-05-04 15:50
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation