Қоғам oracle деректер қорын басқару жүйелері



Pdf көрінісі
бет21/23
Дата29.03.2023
өлшемі0,98 Mb.
#173212
1   ...   15   16   17   18   19   20   21   22   23
Байланысты:
kt 2

 
 Бақылау сұрақтары: 
 
1) Бірнеше кестеден деректерді таңдау қалай жүргізіледі? 
2) Байланыстың қандай түрлері бар? 
3) SELECT инструкциясында қандай функция бір сұрау блогын көпрет 
қолдануға мүмкіндік береді? 
4) MERGE операторы е үшін қолданылады? 
5) Көбейтуреген не үшін операциялар қолданылады? 
 


40 
5.2 Зертханалық жұмысты орындауға арналған әдістемелік 
нұсқаулар 
 
 
Жұмыстың орындалу реті. 
1) Ішкі сұраулар. 
a) орташа жалақы мөлшерінен аз жалақы алатын барлық 
қызыметкерлер аты-жөнін енгізіңіз.
SELECT
last_name, job_id, salary
FROM
employees
WHERE
salary < (SELECT AVG(salary)
FROM employees)
b) 141 номерінде қызмет атқаратын қызметкерлерді еңгізіңіз және 143 
номерінде қызмет атқаратындардан оклады көп қызметкерледі енгізіңіз. 
Мысал сұраудың үш блогынан тұрады: бір сыртқы және екі ішкі. Алдымен 
ішкі блоктарды орындап алған дұрыс. Олардың нәтижелері ST_CLERK және 
2600. Содан соң сыртқа блоктарды орындау керек. екі ішкі блокта бір мәнге 
ие болады ST_CLERK және 2600, сондықтанда ол команда біржолақты 
подзапрос деп аталыд.
Ескерту: ішкі және сыртқы сұйық сұраулар деректерді әр түрлі 
кестелерден таңдай алады. 
SELECT last_name, job_id, salary
FROM employees
WHERE job_id =
(SELECT job_id
FROM employees
WHERE employee_id = 141)
AND salary >
(SELECT salary
FROM employees
WHERE employee_id = 143) 
c) hr.employees кестесінің ақпараттары негізінде қызметкерлердің 
аттары мен тегін қайтаратын сұрау жызыңыз. Жазбалар тек менеджерлік 
функция атқаратын қызметкерлер үшін ғана қайтуы керек (олардың 
нөмірлері бір кестенің employee_id сол manager_id бағанында болатын). Осы 
тапсырманы көпжолды ішкі сұрау арқылы шешіңіз. 
SELECT first_name As "Имя", last_name As "Фамилия"
FROM hr.employees 
WHERE employee_id = ANY (SELECT manager_id
FROM hr.employees) 
d) Коррелирленген ішкі сұраулар. Жұмыс орындары минимум екі рет 
ауыстырылған қызметкерлердің деректерін көрсетіңіз. 
SELECT e.employee_id, last_name,e.job_id 
FROM employees e
WHERE 2 <= (SELECT COUNT(*) 
FROM job_history
WHERE employee_id = e.employee_id) 


41 
2) Байланыс. 
Қызметкерлердің тізімі мен олар жұмыс істейтін бөлімнің атауларын 
жазыңыз.
SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id 
FROM employees e JOIN departments d 
ON e.department_id = d.department_id 
WHERE last_name = 'Matos'
3) MERGE операторы арқылы сұрауларды орындау. Жолдардың 
үйлесуін орындау - COPY_EMP кестесінде EMPLOYEE_ID сәйкес және 
EMPLOYEES кестесінде EMPLOYEE_ID сәйкес жүред. Егер сәйкестік 
табылса, COPY_EMP кестесінің жолы EMPLOYEES кестесінің жолына 
сәйкес модификацияланады. Егер жол табылмаса, ол COPY_EMP кестесіне 
қойылады. 
MERGE INTO copy_emp AS c 
USING employees e 
ON (c.employee_id = e.employee_id) 
WHEN MATCHED THEN 
UPDATE SET 
c.first_name = e.first_name, c.last_name = e.last_name, 
c.email = e.email, c.phone_number = e.phone_number, 
c.hire_date = e.hire_date, c.job_id = e.job_id, 
c.salary = e.salary, c.commission_pct = e.commission_pct, 
c.manager_id = e.manager_id, c.department_id = e.department_id 
WHEN NOT MATCHED THEN 
INSERT VALUES(e.employee_id, e.first_name, e.last_name, 
e.email, e.phone_number, e.hire_date, e.job_id, 
e.salary, e.commission_pct, e.manager_id, e.department_id) 
 
Ішкі сұраулар.
Ішкі сұраулар – бұл басқа команданың SELECT сөйлемінде қосылған, 
SELECT командасы. Ішкі сұраулардың көмегімен қарапайым командалардан 
өте мыықты командалар жасауға болады. Олар, егер кестедегі жолдарды 
таңдау кестенің өзіндегі деректерге тәуелді шарт бойынша жүргзілетін 
жағдайларда өте пайдалы.
Ішкі сұрауды SQL тілінің WHERE, HAVING және FROM
сөйлемдерінде пайдалануға болады. 
Синтаксис: 
оperator
салыстыру операторы – мысалы, > , = немесе IN 
Ішкі сұрауды көбіне SELECT ішкі командасына қосылған SELECT 
командасының салындысы деп атайды. Әдетте ішкі сұрау бірінші болып 
орындалады, және де оның нәтижесі басты немес ішкі сұрауды шартты 
анықтау үшін пайдаланылады.
Ішкі сұрауларды пайдалануға қатысты көрсетілімдер:
1)
Ішкі сұраулар жақшаға алыну керек. 


42 
2)
Ішкі сұраулар теңестіру операторының оң жағында жатуы керек. 
3)
Oracle8
i
релизіне дейін ішкі сұрауларда ORDER BY сөйлемі 
болмаған. Егер ORDER BY сөйлемі пайдаланылған болса, онда ол SELECT 
басты командасында соңғы болуы керек еді. Oracle8
i
релизінен бастап, 
ORDER BY көрсеткіші ішкі сұрауларда 
top-n
талдауды орындау үшін 
қолданылуы мүмкін. 


Достарыңызбен бөлісу:
1   ...   15   16   17   18   19   20   21   22   23




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет