دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Enumeration در سی شارپ
1403/09/01 -
پارتیشن بندی در پایگاه داده اوراکل
1403/08/30 -
Delegates در سی شارپ
1403/08/29 -
انواع ایندکس در پایگاه داده اوراکل
1403/08/28 -
سربارگذاری متدها در سی شارپ
1403/08/27
اموزش DML در پایگاه داده اوراکل
مقدمه آموزش DML در پایگاه داده اوراکل
زبان اوراکل که برای مدیریت و تعامل با پایگاههای داده رابطهای استفاده میشود، به دستههای مختلفی تقسیم شده است.
یکی از این دستهها، زبان دستکاری دادهها یا همان DML (Data Manipulation Language) است.
DML مجموعهای از دستورات است که به ما اجازه میدهد دادهها را در پایگاه داده ایجاد، بهروزرسانی، حذف و بازیابی کنیم.
این عملیات اساسی، به کاربران و مدیران پایگاه داده کمک میکند تا به طور مؤثر با دادهها تعامل کنند.
در پایگاه داده اوراکل، DML به طور ویژه با اصول تراکنش و قفلگذاری همراه است که این امر به تضمین انسجام دادهها کمک میکند.
در این مقاله، به بررسی کامل دستورات DML و نحوه مدیریت آنها در پایگاه داده اوراکل پرداخته میشود.
دستورات DML در پایگاه داده اوراکل
دستورات DML در پایگاه داده اوراکل شامل چهار نوع اصلی هستند:
-
INSERT
برای وارد کردن دادهها به جداول. -
UPDATE
برای بهروزرسانی دادههای موجود. -
DELETE
برای حذف دادهها از جداول. -
SELECT
برای بازیابی دادهها از جداول.
این دستورات به شما امکان میدهند تا بهراحتی اطلاعات را وارد، تغییر، حذف و بازیابی کنید
هرکدام از این دستورات نقش حیاتی در مدیریت دادهها در پایگاه داده ایفا میکنند.
مثال های دستورات DML در پایگاه داده اوراکل
-
دستور INSERT
دستور INSERT برای وارد کردن رکوردهای جدید به جدول مورد استفاده قرار میگیرد.
شما میتوانید مقادیر مختلفی را به ستونهای مختلف یک جدول وارد کنید.
سینتکس:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
مثال:
INSERT INTO employees (employee_id, first_name, last_name, hire_date)
VALUES (101, 'John', 'Doe', TO_DATE('2023-01-15', 'YYYY-MM-DD'));
این دستور یک رکورد جدید به جدول employees اضافه میکند.
-
وارد کردن داده به همه ستونها
اگر مقادیر همه ستونها را وارد میکنید، میتوانید از نام ستونها صرفنظر کنید:
INSERT INTO employees VALUES (102, 'Jane', 'Smith', TO_DATE('2023-02-15', 'YYYY-MM-DD'));
-
وارد کردن دادههای چند رکورد همزمان
اوراکل امکان وارد کردن چندین رکورد را به صورت همزمان از طریق دستور INSERT ALL فراهم میکند.
به این شکل، شما میتوانید با یک دستور چند رکورد را وارد کنید:
INSERT ALL
INTO employees (employee_id, first_name, last_name, hire_date) VALUES (103, 'Alice', 'Brown', TO_DATE('2023-03-01', 'YYYY-MM-DD'))
INTO employees (employee_id, first_name, last_name, hire_date) VALUES (104, 'Bob', 'Green', TO_DATE('2023-03-15', 'YYYY-MM-DD'))
SELECT * FROM dual;
این روش به شما امکان میدهد که با کارایی بیشتری دادهها را وارد کنید.
-
دستور UPDATE
دستور UPDATE برای بهروزرسانی دادههای موجود در یک جدول استفاده میشود. این دستور برای تغییر مقادیر ستونهای خاص در رکوردهای انتخابی کاربرد دارد.
سینتکس:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
مثال:
UPDATE employees
SET last_name = 'Johnson'
WHERE employee_id = 101;
این دستور، نام خانوادگی کارمندی با شماره 101 را به Johnson تغییر میدهد.
-
بهروزرسانی چندین ستون
شما میتوانید چندین ستون را همزمان بهروزرسانی کنید:
UPDATE employees SET last_name = 'Williams', salary = salary * 1.10 WHERE employee_id = 102;
در این مثال، نام خانوادگی کارمند با شماره 102 به Williams تغییر داده شده و حقوق او نیز 10 درصد افزایش مییابد. -
بهروزرسانی همه رکوردها
در صورتی که شرط WHERE را نادیده بگیرید، همه رکوردهای جدول بهروزرسانی میشوند:
UPDATE employees
SET salary = salary * 1.05;
این دستور، حقوق همه کارکنان را 5 درصد افزایش میدهد.
-
دستور DELETE
دستور DELETE برای حذف رکوردهای خاص از یک جدول استفاده میشود.
این دستور به شما اجازه میدهد تا با توجه به شرطی خاص، رکوردهای انتخابی را حذف کنید.
سینتکس:
DELETE FROM table_name
WHERE condition;
مثال:
DELETE FROM employees
WHERE employee_id = 103;
در این مثال، رکورد مربوط به کارمندی با شماره 103 از جدول employees حذف میشود.
-
حذف همه رکوردها
با حذف شرط WHERE، تمامی رکوردهای جدول حذف خواهند شد:
DELETE FROM employees;
-
دستور SELECT
دستور SELECT برای بازیابی دادهها از یک یا چند جدول استفاده میشود.
این دستور مهمترین و پرکاربردترین دستور DML است که برای جستجو و بازیابی اطلاعات استفاده میشود.
سینتکس:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
مثال:
SELECT first_name, last_name, salary
FROM employees
WHERE department_id = 10;
این دستور، نام، نام خانوادگی و حقوق کارکنانی که در بخش 10 کار میکنند را نمایش میدهد.
-
استفاده از SELECT DISTINCT
برای بازیابی مقادیر منحصر به فرد، میتوان از DISTINCT استفاده کرد:
SELECT DISTINCT department_id FROM employees;
این دستور، لیستی از شناسههای بخشها را که در جدول employees وجود دارند و منحصر به فرد هستند، برمیگرداند. -
محدود کردن نتایج با استفاده از WHERE
برای محدود کردن نتایج، از شرط WHERE استفاده میکنیم:
SELECT first_name, last_name
FROM employees
WHERE salary > 5000;
این دستور، نام و نام خانوادگی کارمندانی که حقوقشان بیش از 5000 است را بازیابی میکند.
مدیریت DML در پایگاه داده اوراکل
مدیریت دستورات DML در پایگاه داده اوراکل به طور مستقیم با مفاهیمی نظیر تراکنشها، قفلگذاری، بهینهسازی و مدیریت خطاها مرتبط است.
-
تراکنشها در DML
هر دستور DML که در پایگاه داده اوراکل اجرا میشود، بهصورت بخشی از یک تراکنش (Transaction) در نظر گرفته میشود.
تراکنشها به مجموعهای از دستورات اطلاق میشود که بهصورت یک واحد منطقی اجرا میشوند و باید تمام دستورات آن با موفقیت اجرا شوند یا هیچکدام اجرا نشوند.
-
COMMIT
ذخیرهسازی دائمی تغییرات اعمالشده توسط دستورات DML.
COMMIT;
-
ROLLBACK
برگرداندن تغییرات به حالت قبل از اجرای دستورات DML
ROLLBACK;
مثال:
BEGIN
UPDATE employees
SET salary = salary * 1.10
WHERE department_id = 20;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
در این مثال، اگر دستوری با خطا مواجه شود، تراکنش لغو میشود و تغییرات به حالت قبل بازگردانده میشوند.
-
قفلگذاری (Locking)
قفلگذاری برای جلوگیری از تغییرات ناهمگام دادهها به کار میرود. اوراکل بهصورت خودکار قفلهایی را برای جلوگیری از تغییرات همزمان و تضادهای دادهای اعمال میکند.
-
قفلهای ردیفی (Row Locks)
برای اطمینان از اینکه رکوردهای خاصی همزمان توسط چند تراکنش تغییر نمیکنند. -
قفلهای جدول (Table Locks)
برای جلوگیری از تغییرات گسترده بر روی یک جدول خاص.
-
بهینهسازی دستورات DML
برای بهبود عملکرد دستورات DML در پایگاه داده اوراکل، نکات زیر را باید مد نظر قرار داد:
-
استفاده از ایندکسها
ایندکسها به بهبود سرعت جستجو و بازیابی دادهها کمک میکنند.
CREATE INDEX idx_emp_department ON employees (department_id);
-
بستهبندی دستورات DML
وارد کردن چندین رکورد یا اجرای بهروزرسانیها به صورت بستهای به بهینهسازی کارایی کمک میکند.
BEGIN
FOR i IN 1..100 LOOP
INSERT INTO employees (employee_id, first_name, last_name, hire_date)
VALUES (i, 'John', 'Doe', SYSDATE);
END LOOP;
COMMIT;
END;
-
مدیریت خطاها
در پایگاه داده اوراکل، برای جلوگیری از خطاهای محتمل در حین اجرای دستورات DML، میتوان از بلاکهای PL/SQL برای مدیریت خطاها استفاده کرد.
مثال:
BEGIN
DELETE FROM employees WHERE employee_id = 999;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No employee found with that ID.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('An unexpected error occurred: ' || SQLERRM);
END;
این روش به شما امکان میدهد تا به راحتی خطاها را شناسایی و مدیریت کنید.
-
امنیت در DML
امنیت در اجرای دستورات DML بسیار مهم است.
با استفاده از نقشها و مجوزها در اوراکل، میتوانید کنترل دقیقی بر روی دسترسی به دادهها اعمال کنید.
برای مثال، میتوانید مجوزهایی مانند INSERT، UPDATE و DELETE را به کاربران خاصی اختصاص دهید.
مثال:
GRANT INSERT, UPDATE ON employees TO hr_manager;
REVOKE DELETE ON employees FROM hr_manager;
دوره های مرتبط
اموزش پایگاه داده اوراکل Oracle
در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیادهسازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .