Atšķirība starp to, kur un kam ir klauzula SQL

Autors: Laura McKinney
Radīšanas Datums: 1 Aprīlis 2021
Atjaunināšanas Datums: 13 Maijs 2024
Anonim
More than coffee. Javis tube stream. We talk about sore and not only. We answer questions.
Video: More than coffee. Javis tube stream. We talk about sore and not only. We answer questions.

Saturs


KUR un klauzulu HAVING galvenokārt izmanto SQL vaicājumu paziņojumā, tie ļauj mums ierobežot kombināciju rezultātu attiecībās, izmantojot īpašu predikātu. Galvenā atšķirība starp WHERE un HAVING ir tā, ka WHERE klauzula precizē stīgas (rindas) no attiecībām, ieskaitot pievienošanās nosacījumus, ja nepieciešams. No otras puses, klauzula HAVING precizē nosacījumu grupas tiek izvēlēts nevis uz atsevišķiem nosaukumiem.

SQL apzīmē Strukturēta vaicājuma valoda; tā ir visaptveroša vai deklaratīva datu bāzes valoda, ko izmanto, lai piekļūtu datiem no datu bāzēm.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsKURKAS IR
PamataĪstenots rindās.Īstenots kolonnu darbībās.
PiemērotsViena rindaApkopota rinda vai grupas.
Datu ienešanaTas tikai iegūst noteiktus datus no noteiktām rindām atbilstoši stāvoklim.Sākumā tiek iegūti pilnīgi dati, pēc tam tos atdala atkarībā no stāvokļa.
Kopējās funkcijasNevar parādīties WHERE klauzulā.Var parādīties klauzulā HAVING.
Lieto kopā arSELECT un citi paziņojumi, piemēram, UPDATE, DELETE vai kāds no tiem.Nevar izmantot bez paziņojuma SELECT.
Uzvedies kāIepriekšējs filtrsPēcfiltrēšana
GRUPĒTNāk pēc KUR.Nāk pirms IR.


Vietas noteikšana

SQL KUR klauzula tiek izmantots, lai aprakstītu stāvokli brīdī, kad datus izgūst no vienas tabulas vai apvienojot ar vairākām tabulām. Konkrēto vērtību no tabulas atgriež tikai tad, ja dotais nosacījums ir izpildīts. WHERE klauzula tiek izmantota, lai caurskatītu ierakstus un iegūtu tikai nepieciešamos ierakstus.

SQL realizē arī loģiskos savienojumus un, vai un WHERE klauzulā, kas pazīstama arī kā Būla stāvoklis; nosacījumam ir jābūt patiesam, lai izgūtu norādījumus. Loģisko saistošo izteiksmju operandi ietver tādus salīdzināšanas operatorus kā <, <=, >, >=, =, un <>. Šie salīdzināšanas operatori salīdzina virknes un aritmētiskās izteiksmes. To var izmantot IZVĒLĒTIES paziņojumu, kā arī UPDATE, DZĒST paziņojumi.


Ņemsim piemēru. Zemāk redzamā tabula nosaukta par “Pārdošana'Tabula sastāv no'Produkts' un 'Pārdošanas_summa'Atribūti.

Lai aprēķinātu vērtību, jāraksta šāds pieprasījums Total_sales tālruņa un skaļruņu skaits.

SELECT produkts, summa (pārdošanas_summa) AS Total_sales no pārdošanas, kur produkts (tālrunis, skaļruņi) GRUPĀS PA PRODUKTU;

Pēc izvades tiek iegūta izvade, kurā rindas vispirms tiek filtrētas, tiek iegūtas tālruņu un skaļruņu rindas, pēc tam tiek veikta apkopošanas funkcija.

Klauzulas definīcija

SQL nodrošina UZŅEMOT klauzulu ko var izmantot kopā ar GRUPĒT klauzula. Šī klauzula HAVING palīdz iegūt vērtību grupām, kuras atbilst noteiktiem nosacījumiem. KUR klauzulu atlases laikā var izmantot arī kopā ar klauzulu HAVING, WHERE klauzula filtrē atsevišķu rindu. Pēc tam rindas tiek grupētas un tiek veikti apkopotie aprēķini, un beidzot klauzula filtrē grupas.

Tas darbojas tāpat kā KUR, ja netiek izmantots atslēgvārds GROUP BY. Grupas funkcijas, piemēram, min, max, avg, summa un skaitīšana, var parādīties tikai divos punktos: SELECT un HAVING. Tas nodrošina nosacījumu par sīklietotnēm, kas atbilst katrai vērtībai atribūtu grupā. Rezultātā tiks parādīts vienīgais ierakstu komplekts, kas atbilst nosacījumam.

Arī šeit mēs ņemam to pašu piemēru kā WHERE klauzulu un apsveram to pašu “Pārdošana' tabula. Kad mēs vēlamies aprēķināt Total_sales tālruņa un skaļruņu, izmantojot klauzulu HAVING, mēs uzrakstīsim šādu vaicājumu.

SELECT produkts, summa (pārdošanas_summa) AS Total_sales no pārdošanas grupas pēc produkta, kuram ir produkts (tālrunis, skaļruņi);

Vaicājums rada šādu izvadi, kurā vispirms tiek iegūti produkti, pēc tam tiek veikta apkopošanas funkcija (summa) un visbeidzot grupas tiek filtrētas atšķirībā no WHERE klauzulas.

Kad mēs vēlamies atrast tikai tos produktus, kur Total_sales ir lielāks par 1000. Vaicājumu var uzrakstīt šādi:

SELECT produkts, summa (pārdošanas_summa) AS Total_sales no pārdošanas grupas pēc produkta, kuram ir summa (pārdošanas_summa)> 1000;

Saražotā produkcija ir:

To nevar izdarīt, izmantojot WHERE klauzulu, neraugoties uz HAVING, un tas rada kļūdu, jo WHERE klauzulu nevar izmantot kopā ar funkcijām.

  1. KUR klauzula tiek izmantota rindu operācijās un tiek piemērota vienā rindā, turpretī klauzula HAVING tiek izmantota kolonnu operācijās un to var piemērot apkopotajām rindām vai grupām.
  2. WHERE klauzulā tiek iegūti vajadzīgie dati atbilstoši piemērotajam nosacījumam. Turpretī, ja klauzula Ielādē visus datus, tad atdalīšana tiek veikta atbilstoši nosacījumam.
  3. Kopējās funkcijas, piemēram, min, summa, max, vid, nekad nevar parādīties kopā ar WHERE klauzulu. Pretēji šīm funkcijām var būt klauzula HAVING.
  4. Klauzulu HAVING nevar izmantot bez SELECT paziņojuma. Un otrādi, KUR var izmantot ar SELECT, UPDATE, DELETE utt.
  5. KUR klauzula darbojas kā priekšfiltru, savukārt klauzula IR IR pēcfiltru.
  6. KUR klauzula, ja to lieto kopā ar GROUP BY, stājas priekšā GROUP BY. Tas nozīmē, ka KUR filtru rindas tiek veiktas pirms apkopoto aprēķinu veikšanas. No otras puses, HAVING nāk pēc GROUP BY, tas nozīmē, ka tas filtrē pēc apkopoto aprēķinu veikšanas.

Secinājums

Klauzula WHERE un HAVING darbojas vienādi, izņemot papildu funkciju, kurai HAVING klauzula ir populāra. Klauzula AR KĀRTĪBA var efektīvi darboties ar apkopotajām funkcijām, kamēr KUR nevar darbināt ar apkopotajām funkcijām.