Ja vaicājumi nav pietiekami intensīvi, dažu pamata SQL priekšrakstu pievienošana var palīdzēt koncentrēties uz rezultātiem. Aplūkosim dažus SQL priekšrakstu tipus un klauzulas vai daļas, ko varat rediģēt, lai iegūtu vajadzīgos rezultātus.
Tēmas šajā rakstā
- Priekšraksta Select izveide
- Klauzulas SELECT pielāgošana
- Klauzulas FROM pielāgošana
- Klauzulas WHERE pielāgošana
- Pielāgošana, izmantojot operatoru UNION
Priekšraksta Select izveide
SQL priekšrakstam select ir divas vai trīs klauzulas. Klauzula SELECT norāda datu bāzei, kur meklēt datus, un lūdz tai atgriezt noteiktu rezultātu.
Piezīme
Priekšraksti SELECT vienmēr beidzas ar semikolu (;) vai nu pēdējās teikuma beigās, vai arī atsevišķā rindiņā SQL priekšraksta beigās.
Šis priekšraksts select lūdz Access iegūt informāciju no kolonnām E-pasta adrese un Uzņēmums tabulā Kontaktpersonas, konkrēti no vietas, kur kolonnā Pilsēta ir atrasts "Sietla".
Iepriekš minētajam vaicājumam ir trīs klauzulas: SELECT, FROM un WHERE.
1. Klauzula SELECT uzskaita kolonnas, kurās ir vajadzīgie dati, un tai ir operators (SELECT), kam seko divi identifikatori (E-pasta adrese un Uzņēmums). Ja identifikatorā ir atstarpes vai speciālās rakstzīmes (piemēram, "E-pasta adrese"), iekļaujiet identifikatoru kvadrātiekavās.
2. Klauzula FROM identificē avota tabulu. Šajā piemērā tam ir operators (FROM), kam seko identifikators (Contacts).
3. Klauzula Where ir fakultatīva klauzula. Piemērā ir operators (WHERE), pēc kura seko izteiksme (City="Seattle").
Papildinformāciju par atlases vaicājumiem skatiet sadaļā Vienkārša atlases vaicājuma izveide.
Tālāk ir sniegts bieži izmantoto SQL klauzulu saraksts:
| klauzula SQL | Funkcija | Vai nepieciešams? |
|---|---|---|
| SELECT | Uzskaita laukus, kuros ir vajadzīgie dati. | Jā |
| FROM | Uzskaita tabulas, kurās ir klauzulā SELECT uzskaitītie lauki. | Jā |
| WHERE | Norāda lauka kritērijus, kuriem jāatbilst katram ierakstam, lai tas tiktu iekļauts rezultātos. | Nē |
| KĀRTOŠANA PĒC | Norāda, kā kārtot rezultātus. | Nē |
| GROUP BY | SQL priekšrakstā, kas satur apkopošanas funkcijas, uzskaita laukus, kas nav apkopoti klauzulā SELECT. | Tikai tad, ja ir šādi lauki |
| HAVING | SQL priekšrakstā, kurā ir apkopošanas funkcijas, norāda nosacījumus, kas attiecas uz laukiem, kuri ir apkopoti priekšrakstā SELECT. | Nē |
Katra SQL klauzula sastāv no terminiem. Tālāk ir uzskaitīti daži bieži sastopami SQL termini.
Klauzulas SELECT pielāgošana
| Pielāgošana | Piemērs |
|---|---|
| Lai skatītu tikai atšķirīgās vērtības. Izmantojiet atslēgvārdu DISTINCT klauzulā SELECT. |
Piemēram, ja klienti ir no vairākām filiālēm un dažām ir vienādi tālruņa numuri, un vēlaties redzēt tālruņa numurus tikai vienu reizi, klauzula SELECT ir šāda:SELECT DISTINCT [txtCustomerPhone] |
| Mainīt, kā identifikators tiek parādīts datu lapas skatā, lai uzlabotu lasāmību. Izmantojiet operatoru AS (atslēgvārds, kas apzīmē darbību vai modificē darbību) ar lauka aizstājvārdu klauzulā SELECT. Lauka aizstājvārds ir nosaukums, kas tiek piešķirts laukam, lai rezultāti būtu vieglāk lasāmi. |
SELECT [txtCustPhone] AS [klienta tālrunis] |
Klauzulas FROM pielāgošana
| Pielāgošana | Piemērs |
|---|---|
| Varat izmantot tabulas aizstājvārdu vai citu nosaukumu, ko piešķirat tabulai priekšrakstā SELECT. Tabulas aizstājvārds ir noderīgs, ja tabulas nosaukuma nosaukums ir garš, īpaši, ja ir vairāki lauki ar vienādu nosaukumu no dažādām tabulām. | Lai atlasītu datus divos laukos, kuru nosaukums ir ID, bet viens lauks atrodas tabulā tblCustomer, bet otrs — tabulā tblOrder: SELECT [tblCustomer]. [ID], [tblOrder]. [ID] Izmantojiet operatoru AS, lai definētu tabulu aizstājvārdus klauzulā FROM: FROM [tblCustomer] AS [C], [tblOrder] AS [O] Pēc tam šos tabulu aizstājvārdus varat izmantot klauzulā SELECT: SELECT [C]. [ID], [O]. [ID] |
| Izmantojiet savienojumus, lai apvienotu ierakstu pārus no diviem datu avotiem vienā rezultātā vai arī norādītu, vai iekļaut ierakstus no jebkuras tabulas, ja saistītajā tabulā nav atbilstoša ieraksta. Savienojiet tabulas tā, lai vaicājums apvienotu vienumus no tabulām un izslēgtu vienumus, ja otrā tabulā nav atbilstoša ieraksta |
Klauzula FROM varētu izskatīties šādi:FROM [tblCustomer] INNER JOIN [tblOrder] ON [tblCustomer]. [CustomerID]=[tblOrder]. [Klienta ID] |
Par savienojumu izmantošanu
Pastāv divi savienojumu tipi, iekšējie un ārējie. Iekšējie savienojumi biežāk sastopami vaicājumos. Izpildot vaicājumu ar iekšējo savienojumu, rezultātā tiek parādīti tikai tie vienumi, kuriem pastāv kopīga vērtība abās savienotajās tabulās.
Ārējie savienojumi norāda, vai ietvert datus, ja nepastāv kopīga vērtība. Ārējie savienojumi ir virziena, kas nozīmē, ka varat norādīt, vai ietvert visus ierakstus no pirmās savienojumā norādītās tabulas (dēvēts par kreiso savienojumu) vai ietvert visus ierakstus no savienojumā norādītās otrās tabulas (dēvēts par labo savienojumu). Ārējā savienojuma SQL sintakse ir šāda:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
Papildinformāciju par savienojumu izmantošanu vaicājumā skatiet sadaļā Tabulu un vaicājumu savienošana.
Klauzulas WHERE pielāgošana
Klauzulā Where ir iekļauti kritēriji, kas palīdz ierobežot vaicājumā atgriezto vienumu skaitu. Skatiet vaicājuma kritēriju piemērus un to darbību.
Piemērs, kā varat pielāgot pamata klauzulu WHERE, ir ierobežot vaicājuma rezultātus; Pieņemsim, ka vēlaties atrast klienta tālruņa numuru un varat atcerēties tikai viņa uzvārdu kā Bagel. Šajā piemērā uzvārdi tiek glabāti laukā LastName, tāpēc SQL sintakse ir šāda:
WHERE [LastName]='Bagel'
Izmantojiet klauzulu WHERE arī, lai apvienotu datu avotus kolonnām, kurās ir atbilstīgi dati, bet atšķirīgi datu tipi. Tas ir noderīgi, jo nevar izveidot savienojumu starp laukiem, kuriem ir atšķirīgi datu tipi. Izmantojiet vienu lauku kā kritēriju otram laukam ar atslēgvārdu LIKE . Piemēram, ja vēlaties izmantot datus no tabulas Līdzekļi un tabulas Darbinieki tikai tad, ja objekta tipam tabulas Līdzekļi laukā Līdzekļu tips ir skaitlis 3 tabulas Darbinieki laukā Daudzums, šādi izskatās klauzula Where:
WHERE field1 LIKE field2
Svarīgi!
Klauzulā Where nevar norādīt kritēriju laukam, kas tiek izmantots kopā ar apkopošanas funkciju. Tā vietā ir jāizmanto klauzula HAVING, lai norādītu kritērijus apkopotiem laukiem.
Pielāgošana, izmantojot operatoru UNION
Izmantojiet operatoru UNION, ja vēlaties skatīt apvienotu rezultātu skatu no vairākiem līdzīgiem atlases vaicājumiem. Piemēram, ja datu bāzē ir tabulas Produkti un Pakalpojumi un abi lauki ir šādi: ekskluzīvs piedāvājums vai produkts vai pakalpojums, cena, garantija vai garantija. Lai gan tabulā Produkti ir saglabāta garantijas informācija, savukārt tabulā Pakalpojumi tiek glabāta garantijas informācija, pamatinformācija ir tā pati. Apvienošanas vaicājumu var izmantot, lai apvienotu trīs laukus no abām tabulām šādi:
SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;
Vaicājuma izpildes laikā katras atbilstošo lauku kopas dati tiek apvienoti vienā izvades laukā. Lai rezultātos iekļautu rindu dublikātus, izmantojiet operatoru ALL.
Piezīme
Priekšrakstā Select jābūt vienādam izvades lauku skaitam, vienādā secībā un ar vienādiem vai saderīgiem datu tipiem. Apvienošanas vaicājumā datu tips Number un Text ir saderīgi.
Papildinformāciju par apvienošanas vaicājumiem skatiet sadaļā Apvienošanas vaicājuma lietošana, lai skatītu vienotu rezultātu no vairākiem vaicājumiem.