12 дәріс. SQL тілінің негізгі операторлары Мақсаты: SQL тілі операторларына жалпы сипаттама беру және SQL
тілінде негізгі деректер қорына сұраныстар қалай жазылатынын көрсету
(интерактивті режимде).
«Заманауи деректер қоры жұмысының бағдарламалық жасақтамасында»
аталып өткендей, SQL тілінің барлық операторлары үш құрама бөлікке
бөлінеді: DDL – деректерді анықтау тілі, DCL – деректерді басқару тілі, DML –
деректерді өңдеу тілі.
Жоғарыда көрсетілген бөліктердің негізгі операторларына мысал
келтірейік (синтаксисінің сипаттауынсыз). SQL операторлары синтаксисінің
сипаттамасын SQL тілі бойынша көптеген әдебиеттерден, нақты ДҚБЖ
«Анықтама» мәзірінен қарауға болады.
51
Деректер қоры нысандарына қолданушы рұқсаттарына шектеу операторлары (DCL). GRANT – қолданушыға деректермен жұмыс жасауға немесе SQL белгілі
бір операцияларын орындауға рұқсат беретін, жазбаның қауіпсіздік жүйесінде
құру.
DENY – белгілі бір тіркеу жазбалары үшін рұқсатқа тыйым салатын,
жазбаның қауіпсіздік жүйесінде құру.
Деректерді анықтау операторлары (DDL тілі). Сәйкес операторлар реляциялық ДҚБЖ деректер үлгілерінің негізгі
нысандарын: кестелерді, ұсыныстарды, индекстерді құруға, кетіруге, өзгертуге
арналған.
CREATE TABLE <аты> - деректер қорында жаңа кесте құру.
DROP TABLE < аты > - деректер қорынан кестені кетіру.
ALTER TABLE < аты > - бар кестенің құрылымын өзгерту немесе
берілген кесте үшін қойылған, толықтық шектеулері.
Ұсыныстармен және индекстермен ұқсас операцияларды орындау кезінде
көрсетілген операторларда TABLE қызметтік сөзінің орнына VIEW (ұсыныс)
сөзі немесе INDEX (индекс) сөзі жазылады.
Деректерді түрлендіру операторлары (DML тілі). DML операторлары деректер қорымен жұмыс жасайды және деректерді
өзгерту және қажетті мәліметтерді алу үшін қолданылады.
SELECT – берілген шартты қанағаттандыратын, жолдарды іріктеу.
Оператор негізінен реляциялық алгебраның «селекция» және «проекция»
сияқты операцияларын жүзеге асырады.
UPDATE – берілген шартты қанағаттандыратын, кесте жолдарындағы
белгілі бір өріс мәндерін өзгерту.
INSERT – кестеге жаңа жол қою.
DELETE – берілген шартты қанағаттандыратын, кесте жолдарын кетіру.
Бұл операторды қолдану толықтықты қолдау принципін есепке алады,
сондықтан ол үнемі дұрыс орындала бермейді.
Сәйкес режим деректер қоры мен қолданушының тікелей жұмысын келесі
алгоритм бойынша қарастырады: қолданбалы бағдарламаны (клиенттік
қосымша) немесе ДҚБЖ құрамына кіретін, стандартты утилитаны қолдана
отырып, қолданушы:
1) ДҚ байланысты орнатады (рұқсат құқығының бар екенін мақұлдай
отырып).
2) Сәйкес SQL операторын енгізеді, қажет болған жағдайда сұхбат
режиміне қосымша ақпараттарды енгізеді.
3) Бұйрықтың орындалуын бастамшылық етеді.
Сұраныс мәтіні ДҚБЖ келіп түседі, ол:
- сұраныстың синтаксистік талдауын жүзеге асырады (сұраныстың
дұрыстығын тексереді);
52
- мұндай сұранысты орындауға қолданушының құқұқығы бар ма соны
тексереді (мысалы, тек оқуға ғана құқығы бар қолданушы, кез келген
жазбаларды кетіруге тырысады);
- сұраныстың орындалуын қалай жүзеге асыратынын – сұраныстың
жоспарын, таңдайды;
- сұранысты орындайды;
- орындалу нәтижесін қолданушыға жібереді.
Интерактивті SQL-ді қолданып ДҚБЖ мен қолданушының өзара
әрекеттесу сұлбасы көрсетілген (12.1 сурет).
12.1 сурет – Интерактивті SQL жұмысының сұлбасы
Деректерді іріктеу SELECT операторының көмегімен жүзеге асырылады,
ол SQL тілінде өте жиі қолданылатын оператор болып табылады. SELECT
операторының синтаксисі келесі түрде болады:
SELECT [ALL/DISTINCT] <атрибуттар тізімі>/*
FROM <кестелер тізімі>
[WHERE <іріктеу шарты>]
[ORDER BY < атрибуттар тізімі>]
[GROUP BY < атрибуттар тізімі>]
[HAVING <шарт>]
[UNION
53
WHERE кілттік сөзі бар ұсыныста кесте жолдарын іріктеу шарты
беріледі. Кесте-нәтижеге тек, WHERE ұсынысында көрсетілген, шарттар ақиқат
мәнін қабылдаған жолдар ғана қосылады.
ORDER BY кілттік сөзі кесте-нәтиже жолдарын көрсетілген атрибут
тізімдері бойынша реттеу операциясын береді.
GROUP BY кілттік сөзі бар ұсыныста топтаудың атрибут тізімдері
беріледі (осы және келесі кілттік сөздерге түсініктеме сәл кешірек берілетін
болады).
HAVING ұсынысында әр топқа салынатын шарттар беріледі.
FROM, WHERE, ORDER BY кілттік сөздері берілген SQL тілінің басқада
түрлендіру операторларында ұқсас жолмен қолданылатынын ерекше атап
өтейік.
«Қатынас сұлбаларын оңтайландыру үшін формальды аппаратты
қолдануда» (8.1 сурет) ұсынылған, нақты мысалдарға арналған сұраныстарды
жүзеге асыруды қарастырамыз
Барлық студенттердің тізімін шығару.
SELECT *
FROM student
немесе
SELECT id_st, surname
FROM student
Егер берілген сұранысқа ORDER BY surname ұсынысын қосатын болсақ,
онда тізім тегі бойынша реттелетін болады. Әдепкі қалпы бойынша сұрыптау
өсуі бойынша жүргізіледі деп есептеледі. Егер кемуі бойынша реттеу қажет
болса, атрибут атынан кейін DESC сөзі қойылады.