Oracle PL / SQL Вставлення, оновлення, видалення & Виберіть у (Приклад)

Зміст:

Anonim

У цьому підручнику ми збираємось навчитися використовувати SQL в PL / SQL. SQL - це фактичний компонент, який дбає про отримання та оновлення даних у базі даних, тоді як PL / SQL - компонент, який обробляє ці дані. Далі, у цій статті ми також обговоримо, як поєднати SQL в блоці PL / SQL.

У цьому підручнику ви дізнаєтесь-

  • Вставка даних
  • Оновлення даних
  • Видалення даних
  • Вибір даних

DML-транзакції в PL / SQL

DML розшифровується як мова керування даними . Ці твердження в основному використовуються для здійснення маніпуляційної діяльності. Він стосується наступних операцій.

  • Вставка даних
  • Оновлення даних
  • Видалення даних
  • Вибір даних

У PL / SQL ми можемо обробляти дані лише за допомогою команд SQL.

Вставка даних

У PL / SQL ми можемо вставити дані в будь-яку таблицю за допомогою команди SQL INSERT INTO. Ця команда прийме ім'я таблиці, значення стовпця та стовпця таблиці як вхідні дані та вставить значення в базову таблицю.

Команда INSERT також може приймати значення безпосередньо з іншої таблиці, використовуючи оператор 'SELECT', а не надаючи значення для кожного стовпця. За допомогою оператора 'SELECT' ми можемо вставити стільки рядків, скільки містить базова таблиця.

Синтаксис:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • У наведеному вище синтаксисі показано команду INSERT INTO. Ім'я та значення таблиці є обов'язковими полями, тоді як імена стовпців не є обов'язковими, якщо оператори вставки мають значення для всіх стовпців таблиці.
  • Ключове слово "ЦІННОСТІ" є обов'язковим, якщо значення подаються окремо, як показано вище.

Синтаксис:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • У наведеному вище синтаксисі показано команду INSERT INTO, яка приймає значення безпосередньо з за допомогою команди SELECT.
  • У цьому випадку ключове слово "ЦІННОСТІ" не повинно бути, оскільки значення не подаються окремо.

Оновлення даних

Оновлення даних просто означає оновлення значення будь-якого стовпця в таблиці. Це можна зробити за допомогою оператора 'UPDATE'. Цей вислів приймає за вхідні дані назву таблиці, назву стовпця та значення та оновлює дані.

Синтаксис:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • У наведеному вище синтаксисі показано ОНОВЛЕННЯ. Ключове слово 'SET' вказує механізму PL / SQL оновити значення стовпця із заданим значенням.
  • Застереження "WHERE" є необов’язковим. Якщо цього пункту не вказано, то значення згаданого стовпця у всій таблиці буде оновлено.

Видалення даних

Видалення даних означає видалення одного повного запису з таблиці бази даних. Для цього використовується команда 'DELETE'.

Синтаксис:

BEGINDELETEFROM
WHERE ;END;
  • У наведеному вище синтаксисі показано команду DELETE. Ключове слово "FROM" є необов'язковим і з реченням "FROM" або без нього команда поводиться однаково.
  • Застереження "WHERE" є необов’язковим. Якщо цього пункту не вказано, вся таблиця буде видалена.

Вибір даних

Проеціювання / отримання даних означає отримання необхідних даних з таблиці бази даних. Цього можна досягти за допомогою команди 'SELECT' із реченням 'INTO'. Команда 'SELECT' отримає значення з бази даних, а речення 'INTO' призначить ці значення локальній змінній блоку PL / SQL.

Нижче наведені пункти, які потрібно врахувати в операторі 'SELECT'.

  • Оператор 'SELECT' повинен повертати лише один запис, використовуючи речення 'INTO', оскільки одна змінна може містити лише одне значення. Якщо оператор "SELECT" повертає більше одного значення, ніж "TOO_MANY_ROWS", буде викликано виняток.
  • Оператор 'SELECT' присвоює значення змінній у реченні 'INTO', тому для заповнення значення йому потрібно отримати принаймні один запис із таблиці. Якщо він не отримав жодного запису, тоді буде вилучено виняток "NO_DATA_FOUND".
  • Кількість стовпців та їх тип даних у реченні 'SELECT' повинні збігатися з кількістю змінних та їх типами даних у реченні 'INTO'.
  • Значення отримуються та заповнюються в тому самому порядку, як зазначено у заяві.
  • Застереження WHERE є необов’язковим, що дозволяє мати більше обмежень щодо записів, які збираються отримати.
  • Оператор "SELECT" може бути використаний в умові "WHERE" інших операторів DML для визначення значень умов.
  • Оператор 'SELECT' при використанні операторів 'INSERT', 'UPDATE', 'DELETE' не повинен мати речення 'INTO', оскільки в цих випадках він не заповнює жодну змінну.

Синтаксис:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • У наведеному вище синтаксисі показано команду SELECT-INTO. Ключове слово "FROM" є обов'язковим, яке визначає ім'я таблиці, з якої потрібно отримати дані.
  • Застереження "WHERE" є необов’язковим. Якщо цього пункту не вказано, будуть отримані дані з усієї таблиці.

Приклад 1 : У цьому прикладі ми побачимо, як виконувати операції DML в PL / SQL. Ми збираємось вставити чотири записи в таблицю emp.

EMP_NAME EMP_NO ПЛАТА МЕНЕДЖЕР
BBB 1000 25000 AAA
XXX 1001 10000 BBB
РРР 1002 10000 BBB
ZZZ 1003 7500 BBB

Тоді ми збираємось оновити заробітну плату "XXX" до 15000, і ми збираємось видалити запис працівника "ZZZ". Нарешті, ми збираємось спроектувати деталі співробітника "XXX".

DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):‭COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/

Вихід:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

Пояснення коду:

  • Кодовий рядок 2-5 : Оголошення змінної.
  • Рядок коду 7-14 : Вставка записів у таблицю emp.
  • Рядок коду 15 : Фіксація транзакцій вставки.
  • Рядок коду 17-19 : Оновлення заробітної плати працівника "XXX" до 15000
  • Рядок коду 20 : Фіксація транзакції оновлення.
  • Рядок коду 22 : Видалення запису "ZZZ"
  • Кодовий рядок 23 : Фіксація транзакції видалення.
  • Кодовий рядок 25-27 : Вибір запису "XXX" та заповнення змінної l_emp_name, l_emp_no, l_salary, l_manager.
  • Кодовий рядок 28-32 : Відображення значення отриманих записів.