در جلسه قبل با دستورات insert و update آشنا شدیم؛ این جلسه میخواهیم درباره دستور delete در sql server صحبت کنیم. با ما همراه باشید تا در ادامه بیشتر با این دستور و نحوه کار آن آشنا شوید. ما در این درس با زدن مثالهای متعدد برای یادگیری بهتر شما عزیزان تلاش کردهایم.
از این دستور برای حذف یک یا چند سطر استفاده میکنیم که نحوه تعریف آن به شکل زیر است:
Delete [From] نام جدول Where [ عبارت شرطی ]
نکتهای که در استفاده از دستور Delete باید بدانید این است که عدم استفاده از شرط در این دستور، حذف کلیه رکوردهای شما را در بردارد که ممکن است غیرقابل جبران باشد.
برای این موضوع ابتدا یک دیتابیس با نام dbTest5 ایجاد کرده که دارای دو جدول به نامهای Roles و People میباشد.
Use master
GO
Drop database if Exists dbTest5
GO
Create Database dbTest5
GO
Use dbTest5
GO
Create Table Roles(
RoleId int Primary key ,
RoleTitle Nvarchar(30) Not Null
)
GO
Create Table People(
PersonId int Primary key Identity,
FName Nvarchar(20) Not Null,
LName Nvarchar(20) Not Null,
MobileNumber varchar(15) Null,
RoleId int Null,
Foreign Key(RoleId) References Roles(RoleId)
)
GO
Insert INTO Roles Values(1,N'مدیر'),
(2,N'کاربر ویژه'),
(3,N'کاربر عادی'),
(4,N'مشتری'),
(5,N'فروشنده')
Insert INTO People(FName,LName,MobileNumber,RoleId)
Values (N'علی',N'اکبری','091111',1),
(N'محمد',N'برزگر','092222',2),
(N'رضا',N'یوسفی',null,2),
(N'سعید',N'سلیمانی','098122333',NUll),
(N'مهران',N'صادقی',NULL,2)
GO
Select *
From Roles
GO
Select *
From People
خروجی:
حالا میرویم سراغ مثالهای دستور delete؛ با اجرای دستور delete در مثال زیر همانطور که گفتیم تمامی اطلاعات جدول پاک میشود.
فرض کنید میخواهید سطرهایی از جدول که نامشان "مهران" است را حذف کنید. در این صورت باید به شیوه زیر عمل کنید:
Delete
From People
where FName=N'مهران'
خروجی:
حالا میخواهیم سطرهایی را در جدول حذف کنیم که نام خانوادگی انتهای آنها حرف "ی" باشد. برای این کار به روش زیر عمل میکنیم:
Delete
From People
where LName Like N'%ی'
خروجی:
تمامی مثالهایی که در بالا گفتیم بر روی جدول People انجام میشد. حالا میخواهیم از جدول Roles سطری که دارای مقدار مدیر است را حذف کنیم. با نوشتن قطعه کد زیر حتما پیغام خطا را خواهید دید. اما چرا؟
Delete
From Roles
where RoleId=1
چون ما از فیلد RoleId در جدول People استفاده کردیم. به همین دلیل نمیتوانیم مدیر را از جدول Roles حذف کنیم. برای اینکار باید ابتدا در جدول People سطرهایی که داری RoleId=1 هستند را حذف و سپس عمل حذف را از جدول Role انجام دهیم. در این صورت قطعه کد ما به صورت زیر خواهد بود.
Delete
From People
Where RoleId=1
Delete
From Roles
where RoleId=1
خروجی:
در این مثال میخواهیم نامهایی که با حرف "م" شروع میشوند را حذف کنیم. برای اینکار مینویسیم:
Delete
From People
Where FName Like N'م%'
خروجی:
در این بخش میخواهیم یک مثال متفاوت بزنیم. گفتیم که اگر دستور delete را بدون شرط استفاده کنید تمام جدول شما پاک میشود. حالا میگوییم، میتوانید اینکار را انجام دهید به شرطی که قبل از from از Top استفاده کنید. در دستور زیر ما 5 سطر اول را حذف کردیم.
Delete Top(5)
From People
خروجی:
در قطعه کد پایین نشان خواهیم داد که چگونه میتوانید 10 درصد از بالای جدول خود را حذف کنید.
Delete Top(10) Percent
From People
خروجی:
آموزش دستور delete در sql server، اینجا به پایان رسید. شما میتوانید برای یادگیری بهتر خود فیلم تهیه شده در اینباره را مشاهده کنید. حتما نظرات و پیشنهادات خود را با ما در میان بگذارید و اگر سوالی ذهنتان را مشغول کرده با انجمن پرسش و پاسخ درسمن که در پایین صفحه برای شما قرار داده شده، در میان بگذارید. امید آنکه بیش از پیش موفق و مؤید باشید.