Тәжірибелік сабақ
Тақырыбы: SELECT таңдау операторы
SQL- де сұраныстар тілі бір оператордан тұрады SELECT операторынан.
SELECT операторының синтаксисі келесі түріне ие:
SELECT [ ALL| DISTINCT] <Өрістер тізімі>|*
FROM <Кестелер тізімі>
[WHERE <Предикат-таңдау немесе қосу шарты>]
[GROUP BY <Нәтижелердің өрістер тізімі>]
[HAVING <Предикат-группа үшін шарт>]
[ORDER BY <Нәтижелерді реттеуінің өрістер тізімі>];
SELECT – кілтті сөз, бұл команда сұраныс екенің ДҚБЖ ға көрсетеді. Бәрі сұраныстар осы сөзбен және келесі бос орынмен басталады. Содан кейін таңдау тәсілі көрсетіледі.
ALL кілтті сөзі нәтижелік қатарға сұранысты қанағаттандыратын барлық жолдар кіретінің көрсетеді.
FROM бөлігінде сұраныстың ізделінді кестелер тізімі тапсырылады.
SELECT және FROM бөлімдері міндетті, қалғандары міндетті емес болып саналады.
Мысалы:
SELECT * FROM СТУДЕНТЫ;
СТУДЕНТЫ кестесінен барлық өрістерді таңдау.
Мысалы:
SELECT NOM_ZACH, FIO FROM СТУДЕНТЫ ;
СТУДЕНТЫ кестесінен екі өрісті таңдау.
Мысалы:
SELECT * FROM СТУДЕНТЫ, ЭКЗАМЕН;
СТУДЕНТЫ және ЭКЗАМЕН кестелерінен декарттық көбейтіндісіне сәйкес келеді.
WHERE бөлімінде қатарларды талдау (іріктеу) шарттары тапсырылады
WHERE бөлімінде қолданылатын предикаттар:
Салыстыру предикаттары (=, <>, >, >=, <, <=)
Мысал 1. Продажа кестесінен Количество өрісі 10- нан арттық болатын жазбаларды таңдау
Select * from Продажа where Количество > 10;
Мысал 2. Экзамен кестесінен бағасы 5 болатын барлық жазбаларды таңдау
Select * from Экзамен where Оценка = 5;
Between A and Bпредикаттары– АжәнеВ мәндерін қабылдайды. Предикатақиқаты болады, егер салыстырып жатқан мәні тапсырылған диапазонға кіретін болса. Қарама қарсы предикаты Not Between A and B ақиқаты болады, егер салыстырып жатқан мәні тапсырылған диапазонға кірмейтін болса.
Мысал 1. Продажа кестесінен Количество өрісіндегі мәндері 10 нан 50 интервалында жататын жазбаларды таңдау:
Select * from Продажа where Количество between 10 and 50;
Мысал 2. Продажа кестесінен Дата продажи өрісіндегі мәндері 1.01.06 нан 31.01.06 интервалында жататын жазбаларды таңдау:
Select * from Продажа where [Датапродажи] between #01/01/06# and #31/01/06#;
IN (множество) жиынына кіру предикаты ақиқаты болады, егер салыстырып жатқан мәні тапсырылған мәндер жиынына кіретін болса. Оған қарама қарсы предикат NOT IN - салыстырып жатқан мәні тапсырылған мәндер жиынына кірмейтін болса.
Мысал 1. Группы кестесінен Шифр группы өрісі АИ51, АИ52, АИ53 мәндеріне ие болатын жазбаларды таңдау:
Select * from Группы where [Шифр группы] in (“АИ51”, “АИ52”, “АИ53”);
Мысал 2.Экзамены кестесінен Оценка өрісі 4 немесе 5 мәнін қабылдайтын жазбаларды таңдау:
Select * from Экзамен where Оценка in (4, 5);
LIKE және NOT LIKE үлгісімен салыстыру предикаттары. LIKE предикаты тапсырылған мәнді салыстыруына шаблон тапсыруын талап етеді, егер тапсырылған мән шаблонға сәйкес келетін болса, предикат ақиқат, ал кері жағдайда – жалған болады. NOT LIKE предикаты қарама қарсы мағынасына ие болады. Шаблон % (Access үшін *) белгілерін мазмұндауы мүмкін, қарастырылған белгілер кез келген таңбаларды белгілеу үшін қолданылады ; _ (?Access үшін) – кез келген бір таңбаны белгілеу.
Мысал. Студенты кестесінен Фамилия өрісіндегі мәндері «С» немесе «М» басталатын жазбаларды таңдау:
Access ДҚБЖ үшін
Select * from Студенты
Where Фамилия like ‘С*’ or Фамилия like ‘М*’;
Басқа ДҚБЖ –лер үшін
Select * from Студенты
Where Фамилия like ‘С%’ or Фамилия like ‘М%’;
IS NULL анықталмаған мәнімен салыстыру предикаты. Анықталмаған мәнге қандай да бір атрибутың мәнінің теңдігін анықтау үшін арнайы стандартты предикаттары қолданылады:
<атрибут аты> IS NULL және < атрибут аты> IS NOT NULL
Мысал. Домашний телефон өрісіндегі мәні бос болмайтын жазбаларды Сотрудники кестесінен барлық өрістерді таңдау.
Select * from Сотрудники where [Домашний телефон] isnotnull;
Достарыңызбен бөлісу: |