41
INSERT INTO кесте [IN сыртқы деректер базасыSELECT [деректер көзі.] өріс1 [,
өріс2[, ...
FROM өрнек
WHERE шарт
Бұл жағдайда алдымен SELECT бақыныңқы сұрату операторы орындалады, ол деректерді
қосу кезінде таңдауды қалыптастырады. SELECT cөзі тасымалданатын жазбалардағы
деректер көзінің құрылымын, яғни кестеге жүктелетін бастапқы деректерден тұратынкесте
мен өрістер атауын анықтайды.
FROM операторы таңдауды қалыптастыруға қатысатын
бастапқы кестелер атауларын
нұсқауға мүмкіндік береді, ал WHERE сөзі бағыныңқы сұратуды орындау шарттарын
анықтайды. Сонымен қатар, деректерді таңдау құрылымы деректер қосылатын кестенің
деректерқұрылымына сəйкес келуі керек.
Сыртқы деректер базасына да (диск, каталог, атау, кеңейтім) жазбалар қосуға да болады,
олар үшін толық спецификацияланған атауды нұсқау қажет.
Бұл жағдайда кестелердің
құрылымы сəйкес келуі тиіс.
Мысал – Кестелерге деректерді енгізу:
INSERT INTO Студент SELECT [Студент-сырттай оқушы].* FROM [Студент-сырттай
оқушы
Осы сөйлеммен СТУДЕНТ-сырттай оқушы кестесінің барлық жазбалары СТУДЕНТ
кестесіне қосылады.
Мысал – Кестелерге деректерді енгізу:
INSERT INTO Студент SELECT [Студент-сырттай оқушы].* FROM [Студент-сырттай
оқушы] WHERE [Туған күні] > = # 01/01/95 #
Бұл жағдайда студенттің туған күні белгіленген күнге тең немесе үлкен болса,
СТУДЕНТ-СЫРТТАЙ ОҚУШЫ кестесінің жазбалары СТУДЕНТ кестесіне қосылады.
Кестелерді қосу операциялары. INNER JOIN операциясын кез келген FROM сөйлемінде
қолдануға болады. Бұл ішкі біріктірудің ең кең таралған түрі – симметриялық бірлестікті
құрады.
Егер олардың байланысту өрістерінің мəндерді бірдей болса,
екі кестедегі жазбалар
біріктіріледі:
FROM кесте! INNER JOIN кесте2 ON кесте!., өріс1=кесте2.өріс2 Бұл оператор байланыс
кілттері (өріс1, өріс2) бойынша екі кестенің
симметриялық қосылуын сипаттайды. Кестелерде бірдей мəнді байланыс
кілттері болған жағдайда, жаңа жазбалар қалыптастырылады.
Кестелерді қосу опцияларының келесі варианттары болуы мүмкін: LEFT JOIN (сол жаққа)
қосылым, сол жатағы кестенің барлық жазбалары жəне тек сəйкес байланыс кілттері бар оң
жақ кестенің жазба- лары таңдалғанда;
Right JOIN (оң жаққа) қосылым, оң жатағы кестенің барлық жазбалары жəне тек сəйкес
байланыс кілттері бар сол жақ кестенің жазбалары таңдалғанда.
Мысал – Кестелерді біріктіру:
SELECT Студент.*, Баға.* FROM Студенттер INNER JOIN Баға ON Студент.[сынақ
кітапшасының №] = Баға.[сынақ кітапшасының №.
SELECT Студент.*, Баға.* FROM Студенттер LEFT JOIN Баға ON Студент.[ сынақ
кітапшасының №] = Баға.[сынақ кітапшасының №
SELECT Студент.*, Баға.* FROM Студенттер RIGHT JOIN Баға ON Студент. [сынақ
кітапшасының №] = Баға. [сынақ кітапшасының №.
42
Бірінші жағдайда, [сынақ кітапшасының №] өрісі бойынша
екі кестенің симметриялы
байланысы құрылады. Егер жазбалардың байланыс кілттерінің мəні (көрсетілген өріс) екі
кестеде де көрсетілмесе, олар шығарылмайды.
Екінші жағдайда СТУДЕНТ кестенің барлық жазбалары жəне оларға сəйкес келетін БАҒА
кестесіндегі жазбалар шығарылады.
Үшінші жағдайда, керісінше, БАҒА кестесінің барлық жазбалары жəне оларға сəйкес
келетін СТУДЕНТ кестесінің жазбалары шығарылады.
JOIN операциясы бірнеше кестелерді тізбектеп қосу үшін қабаттасқан болуы мүмкін.
Мысал – Кестелерді біріктіру:
SELECT Студент.*, Баға.*, Пəн.[Пəн атауы] FROM (Студент INNER JOIN (Баға INNER JOIN
(Пəн ON Баға.[ Пəн атауы] = Пəн.[ Пəн атауы]) ON Студент. [сынақ кітапшасының
№] = Баға.[сынақ кітапшасының №])
Мұнда, [Пəннің коды] байланыс кілті бойынша, алдымен БАҒА жəне ПƏН
кестелері
біріктіріледі. Біріктіру симметриялы, яғни, егер пəннің кодтары сəйкес болмаса, осы
кестелердің жазбалары біріктірілмейді. Одан кейін, [сынақ кітапшасының №] байланыс кілті
бойынша СТУДЕНТ жəне БАҒА кестелері біріктіріледі.
Сонымен, сұрату шығысындағы байланыс кілттері сəйкес келген жағдайда, үш кестенің
біріктірілген нəтижесі алынды.
Кестедегі жазбаларды жою. Бастапқы кестеде құрылымы мен индекстерін сақтай отырып
жеке жазбаларды немесе барлық жазбаларды жоюға болады. Индекстелген кестедегі
жазбаларды жойғанда, оның индексі автоматты түрде түзетіледі:
DELETE [Кесте.*] FROM өрнек WHERE таңдау щарты
Кестені жазбалардан толығымен тазалау жəне индекстерді
тазалау келесі операциямен
орындалады:
DELETE * FROM Кесте
Мысал – Кестедегі барлық жазбаларды жою:
DELETE * FROM Студент
[Түған күні] өрісі белгіленген мерзімнен үлкен болатын жазбаларды ғана жою:
DELETE * FROM Студент WHERE [Түған күні]> #1.1.81 #
Басқа кестемен байланысы бар кестедегі жазбаларды жою (жазбаларды жою шарттары
байланыстырылған кестелердің өрістеріне қатысты болуы мүмкін):
DELETE кесте.* FROM кесте INNERJOIN басқа кесте ON кесте.[өріс N] = [басқа
кесте].[өріс М] WHERE шарт
Мысал – СТУДЕНТ-сырттай оқушы кестесінде байланысқан жазбалары бар СТУДЕНТ
кестесіндегі жазбаны жою:
DELETE Студент.* FROM Студент INNER JOIN [Студент-сырттай оқушы] ON
Студент.[Тобы] = [Студент-сырттай оқушы]. [Тобы
Жазба өрістерінің мəндерін жаңарту (ауысту). Таңдау шарттарына сай келетін кестедегі бір
жазбаның немесе жазбалар тобының бірнеше өрістерін өзгерту келесі сөз тізбегімен
жасалады:
UPDATE кесте SET жаңа мəні WHERE таңдау шарты Жаңа мəнді нұсқау
өріс аты=жаңа мəні деп беріледі.
Мысал – аты-жөні В əріпінен басталатын жəне туған күні берілген мерзімнен аспайтын
студенттерді 1212 тобына ауыстыруды таңдау үшін:
UPDATE Студент SET [Тобы] = «1212»
43
WHERE [Тегі] LIKE ‘В*’ AND [Түған күні] < =#01/01/88#
Егер бұл топтар СТУДЕНТТ-сырттай оқушы кестесінде табылса, оны өзгерту үшін
СТУДЕНТ кестесіндегі оқу топтарына «а» əрпін қосу керек:
UPDATE Студент INNER JOIN [Студент-сырттай оқушы] ON Студент. [Тобы] = [Студент-
сырттай оқушы].[ Тобы] SET [Тобы] = [Тобы]&»а»
Достарыңызбен бөлісу: