Access SQL: основни понятия речник и синтаксис

Access SQL: основни понятия речник и синтаксис

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

Когато искате да извлечете данни от база данни, задавате за данните, с помощта на език за структурирани заявки или SQL. SQL е на компютъра език, който много прилича на английски, но това разбиране на програми за бази данни. Всяка заявка, които изпълнявате използва SQL зад кулисите.

Разбиране как работи SQL може да ви помогне да създавате по-добри заявки и да го направите по-лесно да разберете как да коригирате заявка, която не е връщане на резултатите, които искате.

Това е един от набор от статии за Access SQL. Тази статия описва основните използването на SQL, за да изберете данните и използва примери, за да илюстрира синтаксиса на SQL.

В тази статия

Какво е SQL?

Основни SQL клаузи: "изберете", от и където

Сортиране на резултатите: поръчка по

Работа с обобщени данни: ГРУПИРАНЕ по и HAVING

Комбиниране на резултати от заявка: съюз

Какво е SQL?

SQL е на компютъра език за работа с набора от факти и зависимостите между тях. Програми за релационна база данни, например Microsoft Office Access, използвайте SQL за работа с данни. За разлика от много езици на компютъра SQL не е трудно да четат и разбират, дори и за начинаещ. Подобно на много езици на компютъра SQL е международен стандарт, който се разпознава от стандарти органи като ISO и ANSI.

Можете да използвате SQL, за да опишете набори от данни, които могат да ви помогнат да отговори на въпроси. Когато използвате SQL, трябва да използвате правилен синтаксис. Синтаксисът е набор от правила, с което правилно се комбинират елементи на език. SQL синтаксис се базира на английски синтаксис и използва много от същите елементи като Visual Basic for Applications (VBA) синтаксис.

Например прост SQL командата, която извлича списък на фамилни имена на контакти, чието име е Мери може да прилича на това:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Забележка : SQL не се използва само за манипулиране на данни, но също и за създаване и промяна на дизайна на обекти на бази данни, например таблици. Част от SQL, който се използва за създаване и промяна на обекти на бази данни се нарича език за дефиниране на данни (DDL). Тази тема не са разгледани DDL. За повече информация вижте статията Създаване или модифициране на таблици или индекси с помощта на заявка за дефиниране на данни.

Команди за ИЗБИРАНЕ

За да опише набор от данни с помощта на SQL, можете да напишете командата Select. Командата Select съдържа пълно описание на набор от данни, които искате да получите от база данни. Това включва следните неща:

  • Кои таблици съдържат данните.

  • Как е свързани данни от различни източници.

  • Кои полета или изчисления ще генерира данните.

  • Критерии, които трябва да отговаря на данни да бъдат включени.

  • Дали и как да сортирате резултатите.

SQL клаузи

Като изречение SQL команда има клаузи. Всяка клауза изпълнява функция за SQL команда. Някои клаузи са инсталирани в командата Select. Следващата таблица съдържа най-често срещаните SQL клаузи.

SQL клауза

Какво прави

Задължително

SELECT

Съдържа списък на полетата, които съдържат данни, представляващи интерес.

Да

FROM

Съдържа списък на таблиците, съдържащи полетата, изброени в клаузата SELECT.

Да

WHERE

Задава критерии за полета, които трябва да бъдат изпълнени от всеки запис, за да бъде включен в резултатите.

Не

ORDER BY

Задава как да се сортират резултатите.

Не

GROUP BY

В SQL команда, съдържаща агрегатни функции, съдържа списък на полета, които не са обобщени в клаузата SELECT.

Само ако има такива полета

HAVING

В SQL команда, съдържаща агрегатни функции, задава условия към полета, които са обобщени в командата SELECT.

Не

SQL изрази

Всеки SQL клауза се състои от термини – сравнимо с части на речта. Следващата таблица съдържа типа SQL изрази.

Елемент на SQL

Сравними част на речта

Определение

Пример

идентификатор

съществително име

Име, използвайте, за да идентифицирате обект на база данни, например име на поле.

Клиенти. [Телефонен номер]

оператор

глагол или съюз

Ключова дума, която представя действие или променя действие.

AS

константа

съществително име

Стойност, която не се променя, например число или NULL.

42

израз

прилагателно

Комбинация на идентификатори, оператори, константи и функции, които дават като резултат единична стойност.

>= Продукти.[Единична цена]

Най-горе на страницата

Основни SQL клаузи: "изберете", от и където

SQL команда приема общата форма:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Забележки : 

  • Access игнорира знаци за нов ред в SQL. Въпреки това можете да използвате един ред за всяка клауза за да подобрите четливостта на вашия SQL отчети за себе си и други хора.

  • Всеки командата Select завършва с точка и запетая (;). Точка и запетая може да се появи в края на последната клауза или в самостоятелен ред сама в края на SQL команда.

Пример в Access

Следните илюстрира как може да изглежда SQL команда за прости заявки за избиране в Access:

Раздел за обекти SQL, показващ команда SELECT

1. клауза SELECT

2. клауза FROM

3. клауза WHERE

Този пример SQL команда гласи "Изберете данните, които се съхранява в полетата Име на имейл адрес и фирма от таблица с име контакти, по-конкретно тези записи, в които стойността на полето град е Сиатъл."

Нека да разгледаме пример, една клауза по една, за да видите как работи SQL синтаксис.

Клаузата SELECT

SELECT [E-mail Address], Company

Това е клаузата SELECT. Тя се състои от оператор (избор), последвано от две идентификатори ([имейл адрес] и фирма).

Ако идентификатор съдържа интервали или специални знаци (например "имейл адрес"), той трябва да бъде заграден в квадратни скоби.

Клаузата SELECT не е да се каже кои таблици съдържат полетата и тя не може да определи всички условия, които трябва да бъдат изпълнени от данни, за да бъдат включени.

Клаузата SELECT винаги се появява пред клаузата FROM в командата Select.

Клаузата FROM

FROM Contacts

Това е клаузата FROM. Тя се състои от оператор (от), последвано от идентификатор (контакти).

Клаузата FROM не съдържа полетата, за да бъдат избрани.

Клаузата WHERE

WHERE City="Seattle"

Това е клаузата WHERE. Тя се състои от оператор (където) е последвана от израз (град = "Сиатъл").

Забележка : За разлика от избор и от клаузи клаузата WHERE е не задължителен елемент на командата Select.

Можете да изпълните много от действията, които SQL ви позволява да направите с помощта на "изберете", от и клаузи WHERE. Повече информация как да използвате тези клаузи е представена в тези допълнителни статии:

Най-горе на страницата

Сортиране на резултатите: поръчка по

Подобно на Microsoft Excel Access ви позволява да сортирате резултатите от заявката в лист с данни. Можете също да зададете в заявката как искате да сортирате резултатите, когато заявката се изпълнява с помощта на клауза ORDER BY. Ако използвате клауза ORDER BY, е последната клауза в SQL команда.

Клауза ORDER BY съдържа списък на полетата, които искате да използвате за сортиране в същия ред, който искате да приложите операции за сортиране.

Да предположим, че искате резултатите ви първо сортирани по стойността на полето фирма в низходящ ред, и – ако има записи с една и съща стойност за фирмата – сортират по стойностите в полето имейл адрес във възходящ ред. Вашата клауза ORDER BY ще изглежда по следния начин:

ORDER BY Company DESC, [E-mail Address]

Забележка : По подразбиране Access сортира стойности във възходящ ред (A-Z, най-малко към най-голямото). Използвайте ключовата дума Низходящо, за да се сортират стойностите в низходящ ред вместо това.

За повече информация относно клауза ORDER BY вижте темата клауза ORDER BY.

Най-горе на страницата

Работа с обобщени данни: ГРУПИРАНЕ по и HAVING

Понякога искате да работите с обобщените данни, като например общата сума на продажбите в даден месец, или най-скъпо елементи в списък. За да направите това, прилагате агрегатна функция към поле в клаузата SELECT. Например ако искате вашата заявка за показване на броя на имейл адресите, посочени за всяка фирма, вашата клауза SELECT може да изглежда по следния начин:

SELECT COUNT([E-mail Address]), Company

Агрегатни функции, които можете да използвате зависи от типа на данните, който е в полето или израза, който искате да използвате. За повече информация за наличните агрегатни функции вижте статията SQL агрегатни функции.

Задаване на полета, които не се използват в агрегатна функция: клауза GROUP BY

Когато използвате агрегатни функции, които обикновено трябва също да създадете клауза GROUP BY. Клауза GROUP BY изброява всички полета, към които не се отнася агрегатна функция. Ако приложите агрегатни функции всички полета в заявка, не трябва да създадете клауза GROUP BY.

Клауза GROUP BY веднага следва клаузата WHERE или клаузата FROM, ако има няма клауза WHERE. Клауза GROUP BY съдържа списък на полетата, както се показват в клаузата SELECT.

Например, продължение на предишния пример, ако вашата клауза SELECT се отнася агрегатна функция на [имейл адрес], но не за фирмата, вашата клауза GROUP BY ще прилича на следното:

GROUP BY Company

За повече информация относно клауза GROUP BY вижте темата клауза GROUP BY.

Ограничаване на сумарни стойности с помощта на група критерии: клауза HAVING

Ако искате да използвате критерии, за да ограничите резултатите, но полето, което искате да приложите критерии, за да се използва в агрегатна функция, не можете да използвате клауза WHERE. Вместо това можете да използвате една клауза HAVING. Клауза HAVING служещ като клаузата WHERE, но се използва за обобщените данни.

Например да използвате функцията за AVG (която изчислява средната стойност) с първото поле в клаузата SELECT:

SELECT COUNT([E-mail Address]), Company

Ако искате заявка, за да ограничите резултатите, въз основа на стойността на този COUNT функция, не можете да използвате критерии за това поле в клаузата WHERE. Вместо това поставяте критериите в клауза HAVING. Например ако искате само заявка, за да върне редове, ако има повече от един имейл адреси, свързани с фирмата, клауза HAVING може да изглежда по следния начин:

HAVING COUNT([E-mail Address])>1

Забележка : Заявка може да има клауза WHERE и клауза HAVING – критерии за полетата, които не се използват в агрегатна функция отидете в клаузата WHERE и критерии за полета, които се използват с агрегатни функции отидете в клаузата HAVING.

За повече информация относно клаузата HAVING, вижте темата HAVING клауза.

Най-горе на страницата

Комбиниране на резултати от заявка: съюз

Когато искате да прегледате всички данни, които се върнат от няколко заявки за избиране на подобни заедно, като комбинирания набор, използвайте оператора UNION.

Оператор за ОБЕДИНЕНИЕ ви позволява да комбинирате две команди за ИЗБИРАНЕ в една. Изберете отчети, които можете да комбинирате трябва да има същия брой изходни полета, в същия ред и с еднакви или съвместими типове данни. Когато изпълнявате заявката, данни от всеки набор от съответните полета се комбинират в едно поле на изходните данни, така че изходните данни от заявката има същия брой полета като всяка от командите Select.

Забележка : За целите на заявките за обединение данните от тип Number и Text са съвместими.

Когато използвате оператор за ОБЕДИНЕНИЕ, можете също да зададете дали резултатите от заявката трябва да включва дублирани редове, ако има такива, с помощта на всички ключовата дума.

Базовият SQL синтаксис за заявка за обединение, който комбинира две командите Select е както следва:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Да предположим например, че имате таблица с име продукти и друга таблица, наречена услуги. Двете таблици са полетата, които съдържат името на продукта или услугата, цената, гаранцията или гарантира наличност, и дали предлагат продукт или услуга изключително. Въпреки че таблицата "продукти" се съхранява гаранцията информация и услуги таблица stores гарантира информация, основната информация е същият (дали определен продукт или услуга включва обещание за качеството). Можете да използвате заявка за обединение, като по-долу, за да комбинирате четири полета от две таблици:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

За повече информация как да комбинирате команди за ИЗБИРАНЕ с помощта на оператора UNION вижте комбиниране на резултати от няколко заявки за избиране с помощта на заявка за обединение.

Най-горе на страницата

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×