Мәліметпен амалдар орындау
SQL ТІЛІНІҢ ҚЫСҚАША ТАРИХЫ. SQL КОМАНДАЛАРЫНЫҢ ТИПТЕРІ. ДЕРЕКТЕР ҚОРЫ ОБЪЕКТІЛЕРІН БАСҚАРУ
1. Деректер қорының негізгі түсініктері.
MS Оffice бағдарламасының қазіргі жағдайы ақпараттандыру технологиясында жоғары дамуда. Қажетті құжаттарды алу, тапсырмаларды шешу үшін бағдарламаны классикалық мәні бағдарлама болып табылады. Біріншіден құжат, ал бағдарлама бұл оның бөлімі. Бағдарламашының мақсаты, бағдарлама құру емес, шығыс құжаттарының функциялы спекторының нақты кеңінен қалыптасуын кадағалау. Пайдаланушы бағдарламамен емес, құжаттармен жұмыс істейді. “Құжат” терминің мағынасы өзгеруде. Енді құжат объект ретінде бағдарламалы бағыт-бағдарлама ретінде қарастырылады. Құжатты құру жүйесі MS OFFICE арасында офистік бағдарлама деп аталады. Құжат түрі, яғни берілгенді тіркеуге, жұмыс істеуге, айырбастауға анализдеуге т.б. болады. Құжат және бағдарлама компоненттері бірігіп-жоба құрайды, құжаттын бөлігі болып табылады және одан бөлек құрылмайды.
SQL тілі (сұраныстардың құрылымдық тілі) 70 жылдың басында ЭЕМ фирмасында өңделген. Бұл берілген базамен жұмыс істеу үшін арналған жаңа тәсіл берілген базада қолданылады (құру, іздеу, өзгерту, жанарту, берілген хабар).
SQL тілі Американың ұлттық стандарттау институты мен Халықаралық стандартау ұйымында компьютерлік спецификадан тәуелсіз берілген базалар үшін ресми стандарттау негізінде бекітілген.
SQL тілі командаларының типтері
SQL тілі командалардан тұрады. Нақты іс-әрекеттерді орындау берілген база жұмысын басқару үшін, SQL командасының әрекет ету объектісі бір кесте және де кестелер тобынан тұруы мүмкін. MS ACCESS автоматты түрде эквиваленттік команданы құрады, SQL конструктуры режимінде сұраныс уақытында жасалады. SQL командасы (нұсқау, операторы) 2 топқа бөлінеді:
Топ.
Cr ate Table - жаңа кесте құру.
Cr ate Index – жаңа индекс құру.
Alter Table – кестедегі индексті немесе жаңа алаңды толықтыру.
Топ.
Select – берілген базаға дейінгі сұраныс; жазбаларды жинау түрінде берілгендеге қайта сұраныс;
Select Info – берілген базаға дейінгі сұраныс; сұраныс берілгенде жаңа кесте түрінде қайтарады.
Update – бірігуге сұраныс; сұраныс кесте алаңынын мағынасын өзгертеді;
Delete – бір немесе бірнеше кестедегі сұраныс жазбаларды жою.
SQL тілінің екі формасы бар:
Интерактивтік және қарама-қарсы интерактивтік SQL тікелей белгілі деректер базасы іс-әрекеті берілгені үшін қолданылады. Белгілі команда орындалған соң, шығу дерегі сол жерде енгізіледі.
Тізбектелген (Встроенный) SQL – бұл SQL тілінің командасына қосылу бағдарламасы, басқа жобалау тілінде жазылған.
Мысалы Pascal. Берілген кітапта интерактивті SQL, экономист-програмистерге тиімді және жазылған. Әр команда өзіне сәйкес тізім параметірін таңдау үшін қосады, топтастырып және жинақтап жазады, бір немесе бірнеше кестені. Әр команданың өз пішіні бар. (синтаксис).
Басты терминдер:
Түйінді сөз- бұл нұсқау, яғни SQL-да арнайы мағынаны береді. Кітапта сөз түйіні жазумен бөлінген.
Команда- бұл нұсқау. SQL-де деректер базасында берілген. Команда бір немесе бірнеше логикалық әртүрлі бөлімдерден тұрады. Ұсыныс сөз түйінінен басталады және бұдан басқа аргументтер болған.
Мысалға: WHERE fio=астрогикалық; қай жерде fio = “астрогикалық”- аргумент : WHERE- сөз түйіні; Мысал;- деректер базасынын құрылымы (кесте, сұраныс, тілі т.б.). Қайсысы тақырыптанады және жадында сақталады.
Синтаксистік командаға келісу [] - төрт бұрышты жақша - команда құрамы қажетінде оны жіберуге болады. ( ) дөңгелек жақша құрушы онымен қанша болса да қайталауға болады. < >- сөз бұрышты жақшада жабылған- арнаулы терминдер шығару мөлшерінде түсіндіріледі.
SELEST командасы деректер базасында кестені немесе бірнеше кестелерді табады, оның параметірінде көрсетілгендей, бағандағы берілгенді таңдайды.
Жолдарды таңдау сәйкестігіне байланысты бөледі, жолдар нәтижесінде берілген ретіне қарай сұрыптайды және топтастырады. SELEST командасынын орындалуы берілген деректер базасындағы деректерді өзгертпейді.
Таңдалған бағандар кестеден жойылмайды, олардан тек қана деректер шығарып алынады. Синтаксис (формат) команда SELEST.
SELEST [предикат ] {*/кесте [кесте ] алаң 1.
[AS жасалған ат1], [кесте] алаң 2 .
[AS жалған ат2] [, . . . ]
FROM әлпет [. . .] [/N сыртқы дерек базасы] [WHERE “іріктелген жағдай”]
[GROUP BY “топтастырылған алаң тізімі]
[HAVING] топтасқан жағдай
[ORPER BY” алаң-1[ASC/ DESC] алаң-2 [ASC/ DESC ]. Предикат қайтарылған жазуға шектеу береді.
ALL- яғни шектеусіз.
DISTINCT- барлық жазулар олардың қайталанбауы.
Кесте- аты –қайнар, яғни барлық жазудың алынуы.
Алаң- 1, алаң- 2....
Алаң аттары жазудың алынуы, алған ат-1, жалған ат-2 ...- аттар, яғни бағанда тақырыбы болады, бірге шығыс бағандарының аттары кестеде;
Топтастыу жағдайы-мәнер анықтайтын қандай топтастырылған жазуды бейнелеу;
1 алаң, 2 алаң – сұраныс нәтижесінде сұрыпталған жазу мағынасына қарай.
ASC- өсуіне қарай; DESC-азаюына қарай ;
FROM- міндетті параметрі. Мысал ; Деректер базасын қолдануын ұсынамыз.
Барлық студенттер тізімін құрастыру керек.
Фамилия | Курс | Топ |
SELEST fio , Kurs , grupa FROM Spisok;
Осы команда бойынша баған тақырыбы кіргізіледі және барлық мәлімет (алаң мәні Fio kurs, grupa) Spisok кестесі бойынша қорытындылады.
SQL объектісі, яғни деректер базасы атрибутын, кестелерді, алаңдарды, индекстерді және сақтау деректері үшін қолданылады.
Кестенін жасалуына GREATE TABLE командасы құрылымына қарай бейнеленеді. Мына команда бойынша:
· Бос кесте құрылады.
· Бос кестеге ат қойылады
· Бағанға (алаңға) ат беріледі және рет-ретімен ат беріледі.
· Түр және мөлшеіне қарай әрбір алң орналастырылады.
Мәлімет символдық түрде “мөлшер” міндетті түрде көрсетіледі,CREATE TABLE командасы бойынша “тізім” кестесі келесі құрылымда жазылады:
факультет | курс | топ | фамилия | Степендия(құны) | Ұсталуы |
1) кесте құрылымын жасау, яғни керекті талап тізімін анықтау және оладың өзара қарым-қатынасын анықтау.
2) Таңдалған алаң атын беру
3) әр алаң түрін анықтау (символдық, сандық, логикалық т.б.)
4) алаң мөлшерін беру.
Осыдан кейін кестенің жасалуына көшеміз. Файл құрылым алаңына қажетті алан атын көрсету, оның түрі, ұзындығы, ал сандық мәліметіне-және цифр санына ондық нүктеден кейін, егер бұл қажет болса.
CREATE TABLE Spisok
Fakultet char (4),
Kurs char (1),
Grupa char (4),
Fio char (15),
Stip decimal (7,2),
Uderzana decimal (6,2);
Srip және Uderzana алаң ондық ретінде жазылған, алаң ұзындығына байланысты. (field width) 7және6 ондық цифр және нақтылық (белгі сандары үтірден кейін цифрлық алаңдар). Бұл команданы бір жолға жазуға болады. CREATE TABLE Spisok.
Түйінде көрсетілген қайсы бір сілтеу басқа кестеде сыртқы деп аталады. Манипулау үшін кесте жайына индекс арналған. Индексерлеу- бұл түйінді жазуды реттеу. (алфавиттік, хронологиялық өсу кему ретімен). Тізім мағынасы бойынша индекс алаңы құрылады. Бұл кестеде мәлімет жолы реттелмеген. Түйін алаңды іздеу берілгенмағына бағдарлама бойынша барлық кестедегі жазбаны әр жолды қарайсын мағыналы берілген алаңды жазу мағынасын тез табады.Индекс мына команда бойынша құылады:
CREATE INDEX <индекс аты> ON <кесте аты> <бағана аты><баған аты>
Мысалы: Spisok кестесі бойынша алан бойынша фамилия индексі құруы. CREATE INDEX fio on SPISOK (fio); Индекстер кестесі CREATE INDEX командасы бойынша құрылған, қолданушылар үшін көрінбейді. Кесте индексіне SQL өзі автоматты түрде қажетіне қарай сұранады.
Корректиовка таблицасы бағандарды жою, оларды көлемдеін өзгерту және т.б. ALTER TABLE командасы келесі пішінде орындалады.
ALTER TABLE <кесте аты>
ADD <баған аты> <мәлімет түрі>, <өлшем>:
Жаңа баған осы команда бойынша кестеде соңында тұрады ; бұған NULL- мағына кіргізіледі. Деректер базасын бүлдіріп алмау үшін, бұл команда ептілікті қажет етеді. Кестені жою. Тек бос кестені ғана жою керек. Сондықтан алдын ала берілген мәліметті жою керек.
Пішім командасы. DROP TABLE <кесте аты>
Мәліметпен амалдар орындау.
DML командасын басқару үшін кесте және манипулдау берілген.
INSERT (ендірме) UPDATE (жаңарту) DELETE (жою) осы командалардың көмегімен алаңға енгізіледі және шығарылады.
Кесте мағына алнына енгізу.
INSERT командасына жаңа мәліметтер қосылады.
INSERT командасына жаңа мәлімет қосу қолдану үшін енгізу, құрамында біо немесе бірнеше жаңа жол көрсетілген кесте немесе сұраныс.
Жеңілдету пішім командасы.
INSERT INTO <”кесте аты”>
VALUES (<мағына>, <мағына>...);
INSERT командасында кесте аты INSERT командасы орындалғаны анықталуы керек. CREATE TABLE командасында мағына тізімінде (<мағына>..) мәлімет тиісті мағынада болу, бағана кестесіне лайықты болу керек. Мағана кестеге реттік бағана мәнінде енгізілген.
Программа қолданушыларға жазудың қосылғаның хабарлайды.
Мысал: барлық кесте жолың Spisok 1-ші курсты Spisok1 кестесіне
INSERT INTO Spisok1
FROM Spisok
WHERE kurs = s1;
Алаң мағынасынын өзгеруі:
UPDATE командасында бірнеше немесе барлық мағыналы жолда өзгертуге болады.
Мысалға: Ректордың бұйрығымен барлық степендия алатың студенттерге 500 сом тағайындады.
Бұл үшін мынадай команда беріледі:
UPDATE Spisok
SET stip =50000
UPDATEкомандасында WHERE сөзін жаңартып тек арнаулы жолдада беруге болады.
Мысал: UPDATE Spisok
SET stip =500
WHERE kurs =1;
SET сөйлемінде UPDATE командасын үтір арқылы кез келген санды мағына бағандаын көрсетуге болады.
Тек қана UPDATE командасында бірнеше кестені өзгертуге болмайды. UPDATE командасы. SET сөйлемінде склерный выражение алаң мәнін қолдануға болады. Айталық , барлық студенттер степендия мөлшерін 25% өсірілді, өзгеріс енгізу керек.
UPDATE Spisok
SET stip = (*25) \100 яғни, UPDATE командасы кестедегі мәнінің өзгеріс енгізуге қолайлы.
Кестедегі жолды жою:
DELETE командасымен аландағы бөлек мән емес, толық жолдар жойылады. DELETE командасы орындалғннан кейін барлық кестелерде бос болады, мысалы: DELETE FROM Spisok; нақты көрсетілген жолды жою үшін предикатты қолдануға болады.
DELETE FROM Spisok WERE stip = немесе бір жазуды жою үшін алғашқы кілт мағынасын көрсету керек.
DELETE FROM Spisok WHERE fio = “позняк” INSERT, DEKETE, UHDATE командасындаподзапросты қолдануға болады.
Сұраныс құру (SELEST командасы).
SQL тілі структуралық тіл сұранысы болады. Бұл сұраныс оталығы- бұл команда көмегімен, қолданушы тапсырысты СУБД-ға құрады.
СУБД командасын орындағаннан кейін көрсетілген сұраныс информациясын қолданушыға ұсыну керек.
SQL- дің барлық сұранысы SELEST командасының көмегімен құрылады, базада берілген кестедегі информацияларды анықтап істестіру басталады.
Мысал СПИСОК кестесі барлық жазулармен кестені шығару үшін келесі түр арқылы алынады:
Фамилия | Степендия |
Команда беріледі:
SELEST fio, stip FROM Spisok;
Команданың орындалған нәтижесі 15.2 суретте көрсетілген.
SELEST командасы 15.2 сур.
SELEST- сөз кілті, СУБД хабарлайды, команда сұраныста екендігін.
Fio, stip-алаң аттарының тізімі, информация және жаңа кестенің қалыптасуын таңдауға тиісті.
FROM Spisok;FROM- бастау сөзі, әрбір сұраныста болуға тиісті;
Spisok- сұранысқа берілген деректі кестелер аты.
Нүкте мен үтірдің символы (;)- команданың аяқталған белгісі және оны орындауға әзірлігі.
SELEST деректі сөзінен кейін ашық қалған жер. Әрі қарай үтір арқылы таңдау алаң аттары атап өтіледі.
Базада берілген шығару алаң тізімдерін балық баған кестелерінде көрсетілмейді, оны “жұлдызша” (*) символымен ауыстыру керек.
SELEST FROM Spisok;
SELEST командасымен кез келген жүйе арқылы ауыстыруға болады. Бұл жүйелі тізімдегі баған аты.SELEST командасы арқылы беріледі. Мысал: бағандағы шығу кестесінде
SELEST, kurs, grupa, fio from spisok; критериялық таңдау. WHERE-нің ұсынысымен SELEST командасымен кестедегі жазуды таңдау шарты беріледі; предикатты қабылдауға болады мағынаның “ақиқатә немесе “жалған” екендігін.
Мысал SELEST командасы таблицадан СПИСОК студенттердің топты тандау үшін керек.
SELEST Grupa, fio from spisok
WHERE grupa = ФФ1;
Бағдарлама СПИСОК кестесіндегі барлық жазуларды қарайды, олардың әрқайсысын grupa =фф1; предикатының ақиқаттылығын тексереді. Бұл сұраныстың орындалу нәтижесі 15.3 суретінде көрсетілген.
SELEST командасы WHERE ұсынысымен.
Ескерту. Баған, WHERE ұсынысын пайдалану үшін (grupa мысалымен) демалыс деректерін қолдану шарт емес.
Шығару мағынасын қайталау.
DISTINCT предикаты SELEST командасында қайталанған жазуды шығару, таңдалған алаңда қайталанған мағынанын мазмұнын шығарады. Мағына әрбір алаңда уникальный болуы тиіс. Шамаласақ, Spisok кестесі бойынша футбол командасын тізімін жасау талап етіледі. Командаға әр топтан бір-бір студенттен енгізу керек.
SELEST fio, grupa
DISTINCT futbol
FROM sport;
DISTINCT предикаты тексереді, тізімде қандай мағына шығарылды және қайталанған мағына шығуын алып тастау керек.
Осылайша, SELEST командасы негізгі кестеге рұқсат етеді. Керекті информацияны көңілдегідей түрде берілген деректі алу.
Салыстырмалы операторлар.
SQL-да екі мағына арасындағы типтік салыстыруға операторлар тапсырманы салыстыруды қолданады. = (тең),
Мысалы студентер фамилиясын сайлап алу керек, қайсысы степендия алатындарын, 90 руб. Көтерілетін.
SELEST*
FROM Spisok
WHERE stip>90
Булевы операторы. AND операторы екі мәнерді салыстырады-A ANDB-дәлелдеме ретінде және шынайы беру нәтижесі, тек екеуінің шынайы болған жағдайда ғана беріледі.
OR операторы екі нәтижені салыстырады –A OR B- дәлелдеме ретінде және нәтижесін тек шынайы ғана қарай, егер олардың бірейі шынайы болса.
NOT операторы жалғыз талдайды.
NOTA мәнері делелдеме ретінде және оның мағынасы қарама-қарсы өзгертеді
Мысалы: ФФ1 тобынан SPISOK кестесіненбарлық студентерді сайлап алу керек, 90 руб. Степендия алатындады.
SELEST*
FROM SPISOK
WHERE grupa=ФФ 1 anp stip<90)
Сұраныстың қалыптасуы үшін арнайы IN, BETWEEN, IS NULL арнайы операторлар қолданылады. IN операторы көптеген элементтерді сайлап алуға рұқсат етеді.
Мысалы; SPORT кестесінен барлық студентерді сайлап алу, 150 және 200 руб. Көлемінде арнайы степендия алатындарды.
SELEST*
FROM SPORT
WHERE stip IN
BETWEEN оператоторында ұқсас.
Онда бастауыш шекара және соңғы көптеген мәне беріледі, ал олардың арасында ANP сөз екеуінінарасындағы.
Мысалы; SPISOK кестесінен барлық студенттер жазуын алу керек, фамилиясы яғни Е әрпімен М әрпімен басталатын.