Това е една от статиите в набора от статии за Access SQL. Тази статия описва как да напишете клауза SELECT и илюстрира с примери различните техники, които можете да използвате.
За общ преглед на Access SQL вж. статията Access SQL: основни понятия, речник и синтаксис.
В тази статия
Избиране на полета: клаузата SELECT
Командата SELECT обикновено започва с клауза SELECT. Клаузата SELECT се използва, за да укажете имената на полетата, съдържащи данните, които искате да използвате в заявка. Можете също да използвате изрази – вместо или в допълнение към полета. Можете дори да използвате друга команда SELECT като поле – това се нарича подзаявка.
Да предположим, че искате да научите телефонните номера на вашите клиенти. Ако приемем, че полето, което съхранява телефонните номера на клиентите, се нарича txtCustPhone, клаузата SELECT ще има следния вид:
SELECT [txtCustomerPhone]
Можете да използвате квадратни скоби, за да оградите името. Ако името не съдържа интервали или специални знаци (например препинателни знаци), квадратните скоби не са задължителни. Ако името съдържа интервали или специални знаци, трябва да използвате скоби.
Съвет: Име, което съдържа интервали, е по-лесно за четене и може да ви спести време, когато проектирате формуляри и отчети, но пък от друга страна може да ви накара да въвеждате повече, когато пишете SQL команди. Помислете за това, когато давате име на обектите във вашата база данни на Access.
Ако вашата SQL команда има две или повече полета с едно и също име, трябва да добавите името на източника на данни за всяко поле към името на полето в клаузата SELECT. Можете да използвате същото име за източника на данни, което използвате в клаузата FROM.
Избиране на всички полета
Когато искате да включите всички полета от даден източник на данни, можете да добавите всички полета поотделно в клаузата SELECT или да използвате заместващия символ звездичка (*). Когато използвате звездичката, при изпълнение на заявката Access определя кои полета се съдържат в източника на данни и включва всички тези полета в заявката. Това гарантира, че заявката остава актуална при добавяне на нови полета към източника на данни.
Можете да използвате звездичка с един или повече източници на данни в SQL команда. Ако използвате звездичката и има множество източници на данни, трябва да включите името на източника на данни заедно със звездичка, така че Access да определи от кой източник на данни да включи всички полета.
Да предположим например, че искате да изберете всички полета от таблицата Orders, но само имейл адреса от таблицата Contacts. Вашата клауза SELECT може да изглежда примерно така:
SELECT Orders.*, Contacts.[E-mail Address]
Забележка: Внимавайте, когато използвате звездичката. Ако към източника на данни по-късно се добавят нови полета, които вие не сте предвидили, резултатите от заявката може да не се окажат желаните от вас.
Избиране на различаващи се стойности
Ако сте наясно, че командата ви ще избере излишни данни, но предпочитате да виждате само различаващи се стойности, можете да използвате ключовата дума DISTINCT във вашата клауза SELECT. Да предположим например, че няколко вашите клиенти представят различни интереси, някои от които използват един и същи телефонен номер. Ако искате да сте сигурни, че ще видите всеки телефонен номер само веднъж, вашата клауза SELECT ще изглежда по следния начин:
SELECT DISTINCT [txtCustomerPhone]
Използване на заместващи имена на полета или изрази: ключовата дума AS
Можете да промените етикета, който се показва за всяко поле в изглед на лист с данни с помощта на ключовата дума AS и псевдоним на поле в клаузата SELECT. Псевдонимът на поле е име, което можете да зададете на поле в заявка, за да направите резултатите по-лесни за четене. Например ако искате да изберете данни от поле с име txtCustPhone и полето съдържа телефонни номера на клиенти, можете да подобрите четливостта на вашите резултати чрез псевдоним на полето в командата SELECT, както следва:
SELECT [txtCustPhone] AS [Customer Phone]
Забележка: Трябва да използвате псевдоним на поле, когато използвате израз в клаузата SELECT.
Избиране с помощта на израз
Понякога искате да прегледате изчисления, базирани на вашите данни, или да извлечете само част от данните на дадено поле. Да предположим, че искате да върнете годината, в която са били родени клиентите, въз основа на данните в полето BirthDate във вашата база данни. Вашата клауза SELECT може да изглежда примерно както следва:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Този израз се състои от функцията DatePart и два аргумента – "yyyy" (константа) и [BirthDate] (идентификатор).
Можете да използвате всеки валиден израз като поле, ако изразът подава една изходяща стойност при въвеждане на една входяща стойност.