на запитванията -
Създаване на параметрични запитвания
-
Създаване на Crosstab query
-
Използване на SQL в Access
Създаване на параметрични запитвания
Ако често се стартира едно селектиращо запитване, но е нужно то да се стартира с различни критерии, трябва да се отдели време за да се създаде параметрично запитване. При стартиране на едно такова запитване, Access отваря диалогов прозорец в който се посочват стойности за критериите при текущото изпълнение на запитването.
Създаване на параметрично запитване за един критерий
Описанието на цялостния процес е представен на Фиг. 7.1.
Създаване на параметрично запитване за няколко критерия
Допустимо е създаване на запитване, което изисква въвеждането на няколко параметрични стойности. При това може да бъдат задавани параметри за отделните полета или няколко параметъра за едно поле.
На Фиг. 7.2. е представено запитване, в което има едновременно задавене на параметри в едно поле и на параметър в две полета, чрез което се извличат записи от таблицата Stud, като се иска извличане на записите, които отговарят на условието – факултетните номера на студентите да са между 900000 и 910000, и същевременно да са от град Свищов.
Създаване на Crosstab query
Възможно е създаване на Crosstab query (кръстосано запитване, запитване за сечение) за представяне на данните в компактен вид, във формат на електронна таблица. Този вид запитване представя голям обем от данни в лесен за възприемане вид.
За създаване на запитване от този вид, трябва да се включат в запитването полетата от таблицата (таблиците) на базата на които се създава запитването. След това, с изпълнение на командата Query | Crosstab query в QBE мрежата се визуализират редовете Total и Crosstab. На следваща стъпка се уточнява с падащият списък от Crosstab полето за всеки запис кое поле (полета) ще се ползват като редове (Row Heading) и кое поле (полета) ще се ползват като колони (Column Heading). В Total клетката на полето, на базата на което ще се пресмятат стойности, от падащият списък се избира Count (както е в примера на Фиг. 7.3.) за преброяване на стойностите (или Sum, Max и т.н.), а в клетката Crosstab стойността Value.
На Фиг. 7.3. е представен пример за създаване на кръстосано запитване, като в редовете са изброени градовете, от където са студентите, а в колоните – (номерата на) специалностите на студентите. В пресечните точки на колоните и редовете е изведен броя на студентите от съответната специалност и град, получаващи стипендия. Предимствата на кръстосаното запитване не могат да проличат ясно от този пример, тъй като самата изходна таблица Stud, съдържа ограничено количество записи.
Използване на SQL в Access
Structured Query Language (SQL) е език, често използван в запитванията, актуализациите и управлението на данните в релационните бази от данни. Към всяко запитване създавано от потребителя чрез QBE мрежата Access автоматично генерира SQL оператор. За потребители запознати с SQL е по-удобно да създават запитванията си чрез него, вместо да изучават особеностите на работа с QBE мрежата на запитванията в Access.
За да се отвори диалогов прозорец, съдържащ съответният на зададеното QBE мрежата запитване SQL SELECT оператор, е нужно от прозореца в който е разработвано запитването (с QBE мрежата) да се изпълни командата View | SQL View. След като се направят нужните корекции в SQL прозореца, той се затваря чрез ново превключване към QBE мрежата чрез View | Design View. Направените промени в SELECT оператора се отразяват в QBE мрежата.
Общият вид на оператор SELECT е:
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...] [IN externaldatabase]
[WHERE criteria]
[GROUP BY groupfieldlist]
[HAVING groupcriteria]
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]] ]
[WITH OWNERACCESS OPTION]
SELECT операторът има следните части:
Част |
Описание
|
predicate
|
Един от следните предикати: ALL, DISTINCT, DISTINCTROW или TOP. Използват се за ограничаване на броя на връщаните от оператора записи. Ако не е уточнено – по подразбиране се приема ALL.
|
*
|
Задава, че се извличат всички полета от посочената таблица.
|
table
|
Името на таблицата от която се извличат записи.
|
field1, field2
|
Имена на полета, съдържащи нужните данни. Ако са няколко полета – то чрез последователността им се задава и последователността на връщаните данни.
|
alias1, alias2
|
Имена използвани за имена на колоните в резултатната таблица вместо оригиналните имена от изходната таблица.
|
tableexpression
|
Име на таблица или таблици от които се извличат данни.
|
externaldatabase
|
Име на външна база от данни.
|
criteria
|
Условия на които трябва да отговарят записите, за да бъдат включени в резултатната таблица.
|
groupfieldlist
|
Имена на полета (максимум 10) използвани за групиране на записите в резултатната таблица. Поредността на тези полета определя и нивата на групиране от най-високото към най-ниското ниво.
|
groupcriteria
|
Израз, определящ кои групиращи записи да бъдат включени в резултатната таблица.
|
field1, field2
|
Имена на полета по които се сортират записите в резултатната таблица.
|
OWNERACCESS
OPTION
|
При работа в група тази декларация се използва заедно със запитването, за да се даде на потребителя стартиращ запитването същите права, както на останалите членове на групата.
|
На Фиг. 7.4. е показано как изглеждат конкретните варианти на SELECT операторите за някои от представените вече запитвания.
Сподели с приятели: |