نگهداری دادهها در SQL - INSERT، UPDATE، DELETE و Transaction
8 - نگهداری جدولها
- درج سطرها
- بهروزرسانی سطرها
- حذف سطرها
- تراکنشها
صفحه PDF 71 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
درج سطرها
با دستور INSERT در SQL میتوان هر بار یک سطر جدید در جدول درج کرد. نام جدول و فهرست ستونها در Clause INTO مشخص میشوند و فهرست مقادیر، داخل پرانتز، در Clause VALUES وارد میشود.
INSERT
INTO COUNTRIES (COUNTRY, LITERACY, AREA, POP)
VALUES ('Beulah', 100, 1146807, 144000);
- نام جدول در Clause
INTO مشخص میشود. - فهرست ستونها پس از نام جدول قرار میگیرد.
- مقادیر مناسب در Clause
VALUES فهرست میشوند. - ستونهایی که در فهرست نیامدهاند مقدار پیشفرض میگیرند.
صفحه PDF 72 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
درج سطرها - ادامه
نحو عمومی دستور INSERT سه Clause دارد: INSERT، INTO و VALUES.
INSERT
INTO table ( col list )
VALUES ( value list )
-- Example
INSERT
INTO COUNTRIES (COUNTRY, POP)
VALUES ('Beulah', 144000);
تمرینها
- همه ستونها و سطرهای جدول
JOBS را انتخاب کنید. سپس با مقدار 'A' برای شغل و 'Author' برای عنوان، یک سطر به جدول JOBS اضافه کنید. - همه ستونهای اشخاصی را انتخاب کنید که شماره شخص آنها بزرگتر یا مساوی 500 است. سپس خودتان را با شماره 500 به جدول
PERSONS اضافه کنید و همه ستونها را پر کنید. اگر شغل شما در جدول JOBS نیست، از شغل 'R' استفاده کنید. - یک دوست را با شماره شخص 501 به جدول
PERSONS اضافه کنید.
صفحه PDF 73 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
بهروزرسانی سطرها
با دستور UPDATE میتوانید یک یا چند سطر جدول را تغییر دهید. جدول در Clause UPDATE مشخص و مقادیر جدید در Clause SET وارد میشوند. اگر WHERE برای محدودکردن عملیات استفاده نشود، همه سطرها بهروزرسانی میشوند.
UPDATE COUNTRIES
SET AREA = 53501998,
LANGUAGE = 'Hebrew',
POP = 100000000
WHERE COUNTRY = 'Beulah';
- نام جدول در Clause
UPDATE مشخص میشود. - مقادیر جدید در Clause
SET تعیین میشوند. - Clause
WHERE مشخص میکند کدام سطرها بهروزرسانی شوند. - حذف
WHERE باعث بهروزرسانی همه سطرها میشود.
صفحه PDF 74 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
بهروزرسانی سطرها - ادامه
نحو عمومی UPDATE شامل سه Clause است: UPDATE، SET و Clause اختیاری WHERE.
UPDATE table
SET column = value [, column = value ...]
[ WHERE comparison ]
-- Example
UPDATE COUNTRIES
SET AREA = 7962, LANGUAGE = 'Hebrew'
WHERE COUNTRY = 'Beulah';
تمرینها
- همه Writerها را به Author تغییر دهید. برای تأیید تغییرات یک Query اجرا کنید.
- تاریخ تولد خود را به تاریخ جدیدتری تغییر دهید و شغلتان را Entertainer کنید. اما خودتان را گول نزنید؛ واقعاً جوانتر نشدهاید! با Query تغییرات را بررسی کنید.
- اکنون Authorها را دوباره به Writer تغییر دهید و نتیجه را بررسی کنید.
صفحه PDF 75 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
حذف سطرها
با دستور DELETE میتوانید یک یا چند سطر را از جدول حذف کنید. جدول در Clause FROM مشخص و مقایسههای اختیاری در WHERE وارد میشوند. حذف Clause WHERE همه سطرها را حذف میکند.
DELETE
FROM COUNTRIES
WHERE COUNTRY = 'Yugoslavia';
- نام جدول در Clause
FROM مشخص میشود. - Clause
WHERE تعیین میکند کدام سطرها حذف شوند. - نبود
WHERE همه سطرها را حذف میکند.
صفحه PDF 76 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
حذف سطرها - ادامه
نحو عمومی DELETE شامل DELETE، FROM و Clause اختیاری WHERE است.
DELETE
FROM table
[ WHERE comparison ]
-- Example
DELETE
FROM COUNTRIES
WHERE COUNTRY = 'Yugoslavia';
تمرینها
- دوستتان و خودتان را با دو دستور جداگانه از پایگاه داده حذف کنید. Query اجرا کنید تا مطمئن شوید دیگر وجود ندارید. خودتان را نیشگون بگیرید؛ واقعاً وجود دارید!
- تعداد افرادی را که در قرن هجدهم متولد شدهاند بشمارید. 27 نفر هستند. سپس آنها را حذف و دوباره تعداد را برای تأیید تغییرات بررسی کنید.
- جدول
RELIGIONS چند سطر دارد؟ همه سطرهایی را که نام دین شامل orthodox است حذف کنید. باید 369 سطر باقی بماند.
صفحه PDF 77 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
تراکنشها
تراکنش (Transaction) مجموعهای از عملیات نگهداری مرتبط است که اثرات آن را میتوان بهطور دائمی روی پایگاه داده اعمال کرد یا بهطور کامل از پایگاه داده بازگرداند. تراکنشها میتوانند شامل عملیات INSERT، UPDATE و/یا DELETE روی یک یا چند جدول باشند.
ROLLBACK تراکنش را برمیگرداند
دستور ROLLBACK همه عملیات نگهداری انجامشده از آغاز Session یا از آخرین COMMIT - هرکدام که جدیدتر باشد - را لغو میکند.
COMMIT تراکنش را دائمی میکند
دستور COMMIT همه عملیات نگهداری انجامشده از آغاز Session یا از آخرین COMMIT را بهطور دائمی در پایگاه داده اعمال میکند.
صفحه PDF 78 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
تراکنشها - ادامه
نحو عمومی دستورهای تراکنش SQL شامل دو دستور مستقل ROLLBACK و COMMIT است.
تمرینها
- همه تغییراتی را که تا اینجا در پایگاه داده ایجاد کردهاید Rollback کنید. آیا
'A' در جدول JOBS وجود دارد؟ اکنون چند سطر در جدول RELIGIONS وجود دارد؟ باید 389 سطر باشد. - همه سطرهای
PERSONS و ARMIES را حذف کنید. بررسی کنید حذف شدهاند. سپس این تراکنش را Rollback و دوباره بررسی کنید که برگشتهاند. - خودتان را دوباره به
PERSONS اضافه کنید. تغییر را Commit کنید، سپس Rollback کنید. آیا هنوز وجود دارید؟ اگر بله، خودتان را حذف و دوباره Commit کنید.
صفحه PDF 79 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده