1 / 21

Sąveika su Oracle Duomenų bazė

Sąveika su Oracle Duomenų bazė. Paskaita 4. Temos. Kokie SQL sakiniai galimi vykdomajame PL/SQL bloke DML sakiniai PL/SQL -e Transakcijos valdymo sakiniai PL/SQL -e INTO dalės naudojimas SQL komandoje varčių išsaugojimui Skirtumai tarp uždarų ir atvirų kursorių

Download Presentation

Sąveika su Oracle Duomenų bazė

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sąveika su Oracle Duomenų bazė Paskaita 4

  2. Temos • Kokie SQL sakiniai galimi vykdomajame PL/SQL bloke • DML sakiniai PL/SQL-e • Transakcijos valdymo sakiniai PL/SQL-e • INTOdalės naudojimas SQL komandoje varčių išsaugojimui • Skirtumai tarp uždarų ir atvirų kursorių • Kursoriaus atributų naudojimas

  3. SQL Sakiniai PL/SQL-e • Vienos eilutės atrinkimas iš DB naudojant SELECTkomandą. • Duomenų eilučių redagavimas vykdomas DML komandomis. • Transakcijų valdymas vykdomas COMMIT, ROLLBACK ir SAVEPOINTkomandomis.

  4. SELECTSakiniai PL/SQL-e • Duomenų atrinkimas iš duomenų bazės vykdomas SELECTsakinių pagalba. • Syntax: SELECT select_list INTO {variable_name[, variable_name]... | record_name} FROM table [WHERE condition];

  5. SELECTSakiniai PL/SQL-e • INTOdalis privaloma. • Užklausa privalo grąžinti tik vieną eilutę. SET SERVER OUTPUT ON DECLARE v_fname VARCHAR2(25); BEGIN SELECT first_name INTO v_fname FROM employees WHERE employee_id=200; DBMS_OUTPUT.PUT_LINE(' First Name is : '||v_fname); END; /

  6. PL/SQL Duomenų atrinkimas: Pavyzdys • Grąžinome hire_dateir salarynurodytam darbuotojui. DECLARE v_emp_hiredate employees.hire_date%TYPE; v_emp_salary employees.salary%TYPE; BEGIN SELECT hire_date, salary INTO v_emp_hiredate, v_emp_salary FROM employees WHERE employee_id = 100; END; /

  7. PL/SQL Duomenų atrinkimas • Visų darbuotojų atliginimų sumos iš tam tikro padalinio paskaičiavimas. DECLARE v_sum_sal NUMBER(10,2); v_deptno NUMBER NOT NULL := 60; BEGIN SELECT SUM(salary) -- grupinė funkcija INTO v_sum_sal FROM employees WHERE department_id = v_deptno; DBMS_OUTPUT.PUT_LINE ('The sum of salary is ' || v_sum_sal); END;

  8. DECLARE hire_date employees.hire_date%TYPE; sysdate hire_date%TYPE; employee_id employees.employee_id%TYPE := 176; BEGIN SELECT hire_date, sysdate INTO hire_date, sysdate FROM employees WHERE employee_id = employee_id; END; / Vardinimo susitarimai

  9. Vardinimo susitarimai • Norint išvengti dviprasmybių WHEREdalyje nuduokite vardinimo susitarimus. • Venkite duomenų lentelių stulpelių vardais vadinti savo kintamuosius. • Sintaksinės klaidos galimos dėl to, kad PL/SQL visų pirmą tikrina lentelės stulpelio vardą. • Lokalinių kintamųjų ir formalių parametrų vardai turi prioritetą prieš duomenų bazės lentelės vardą. • Stulpelių vardai turi prioritetą prieš lokalinių kintamųjų vardus.

  10. INSERT MERGE UPDATE Duomenų manipuliavimas PL/SQL-e • Pakeitimai į duomenų bazę įnešami DML komandomis: • INSERT • UPDATE • DELETE • MERGE DELETE

  11. Naujų įrašų įterpimas: Pavyzdys • Informacija apie naują darbuotoją įterpimas į lentelę EMPLOYEES. BEGIN INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, salary) VALUES(employees_seq.NEXTVAL, 'Ruth', 'Cores', 'RCORES',CURRENT_DATE, 'AD_ASST', 4000); END; /

  12. Duomenų pakeitimas: Pavyzdys • Visų darbuotojų kurie priklauso tam tikrai grupėj atliginimo padidinimas. DECLARE sal_increase employees.salary%TYPE := 800; BEGIN UPDATE employees SET salary = salary + sal_increase WHERE job_id = 'ST_CLERK'; END; / . . .

  13. Duomenų trynimas: Pavyzdys • Informacija apie 10 skyrio darbuotojus trynimas iš employeeslentelės. DECLARE deptno employees.department_id%TYPE := 10; BEGIN DELETE FROM employees WHERE department_id = deptno; END; /

  14. Eilučių sujungimas • Eilučių įterpimas ar pakeitimas lentelėje copy_emplentelės employeespagrindų. BEGIN MERGE INTO copy_emp c USING employees e ON (e.employee_id = c.empno) WHEN MATCHED THEN UPDATE SET c.first_name = e.first_name, c.last_name = e.last_name, c.email = e.email, . . . WHEN NOT MATCHED THEN INSERT VALUES(e.employee_id, e.first_name, e.last_name, . . .,e.department_id); END; /

  15. SQL Kursorius • Kursorius tai rodykle į Oracle serverio rezervuoto atminties vieta naudojama SELECTsakinių rezultatams saugoti. • Kursorių tipai. • Uždaras arba vidinis (Implicit):Kuriamas ir tvarkomas interaktyviai Oracle serverio SQL sakiniams aptarnauti. • Atviras arba išorinis Explicit:Programuotojo deklaruojamas Implicit cursor Explicit cursor

  16. Uždaro SQL kursoriaus atributai • Naudojant SQL kursoriaus atributus, galima patikrinti SQL sakinių rezultatus.

  17. Uždaro SQL kursoriaus atributai • Eilučių trynimas iš employeeslentelės pagal vartotojo ID. Ištrintų eilučių skaičiaus atspausdinimas. DECLARE v_rows_deleted VARCHAR2(30) v_empno employees.employee_id%TYPE := 176; BEGIN DELETE FROM employees WHERE employee_id = v_empno; v_rows_deleted := (SQL%ROWCOUNT || ' row deleted.'); DBMS_OUTPUT.PUT_LINE (v_rows_deleted); END;

  18. Transakcijos valdymo sakiniai • Pradėti transakciją su pirma DML komanda iki COMMIT ar ROLLBACK • Naudoti COMMIT ir ROLLBACK SQL sakiniuose transakcijos išoriniam (explicit) užbaigimui

  19. Klausimas • Naudojant PL/SQL SELECTsakinį INTOdalis privaloma, o užklausa gali grąžinti vieną arba daugiau eilučių. • True • False

  20. Santrauka • Sužinojome : • Kaip naudojami PL/SQL bloke DML, DDLir transakcijos valdymo sakinių. • ApieINTOdalės būtinumą PL/SQL SELECTsakinyje. • Skirtumus tarp uždaro ir atviro kursorių • SQL kursoriaus atributų naudojimą, norint patikrinti SQL sakinių rezultatus

  21. Praktika 4: • This practice covers the following topics: • Selecting data from a table • Inserting data into a table • Updating data in a table • Deleting a record from a table

More Related