فصل بیستم :
DML - INSERT,UPDATE,DELETE
Data Manipulation Language
دستوراتی جهت درج ، بروزرسانی و حذف اطلاعات در دیتابیس
INSERT
جهت درج رکورد/ رکوردهای جدید در جدول
INSERT INTO table_name
VALUES (value1,value2,value3,...);
در این فرمت تنها مقدیر جهت درج رکورد جدید ذکر میشوند و در آن مقادیر بترتیب ستونهای جدول در فیلد های رکورد جدید درج میشوند
درج چند رکورد با یک insert into
INSERT INTO table_name
VALUES (value1,value2,value3,...), (value1,value2,value3,...), (value1,value2,value3,...)
در فرمت ذیل نام ستونها و مقادیر ذکر میشوند
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
هنگامی که بخواهیم در جدولی مقداری را در ستون identity درج کنیم .
SET IDENTITY_INSERT [نام جدول] ON;
SET IDENTITY_INSERT [نام جدول] OFF;
خط اول دستور بالا را قبل از insert قرار میدهیم و برای غیر فعال کردن این امکان خط دوم را اجرا میکنیم
اگر بخواهیم ستونی مقدار default خود را داشته باشد.
در لیست مقادیر کلمه default را بجای آن میگذاریم .
در فیلم مثالهای یادی وجود دارد این فصل را حتما با فیلم ببینید
UPDATE
جهت بروزرسانی رکورد های موجود در جدول.
UPDATE table_name
SET column1=value1,column2=value2,...
[WHERE some_column=some_value;]
آپدیتی بنویسید که در جدول titles قیمت کتابها ییکه بیشتر از 18 دلار هستند را 40% افزایش دهد
update titles set price=price*1.4
where price>18
آپدیتی بنویسید که قیمت کتابهایی که بیشتر از 18 دلار هستند را 10% افزایش دهد و کتابهایی که کمتر از 18 دلار هستند را 5% افزایش دهد .
update titles set price=case when price>18 then price * 1.1 else price * 1.05 end
آپدیتی بنویسید که ستون salary دانش آموزان کلاس الف را به 5000 بروزرسانی کند .
update Student set Salary=5000 where ClassroomID in
(select ID from Classroom where ClassName=N'کلاس الف')
DELETE
جهت حذف رکوردها از جدول
DELETE FROM table_name
[WHERE some_column=some_value;]
در صورت عدم ذکر عبارت where تمامی رکورد های جدول حذف خواهند شد. لذا در اجرای دستور delete بایستی نهایت دقت را نمود .
SELECT INTO
فرض کنید می خواهیم بر اساس نتیجه یک select یک جدول بسازیم ؟
با این دستور مطابق با فیلد های موجود در select جدولی ایجاد شده و اطلاعات رکوردهای منتج از select نیز در آن کپی میشود.
SELECT column_name(s)
INTO newtable
FROM table1;
newtable : نام جدول جدیدی است که ساخته میشود .
Table1 : جدول اصلی ما که select بروی آن انجام میشود
نام ستونهایی که در جدول جدید ایجاد شوند و اطلاعات در آنها کپی شود. طبیعتا می توان از * هنگامی که می خواهیم همه ستونها در جدول جدید ایجاد شوند می توان استفاده کرد .
نکته : جدول جدید با ستونهای همنام با جدول اصلی ساخته خواهد شد. اگر می خواهیم نام ستونهای جدید تغییر کند می توانیم از alias برای ستونهای مورد نظر استفاده کنیم
select * into studentBack from Student
نکته : primary key این روش کپی نمی شود.
نکته : از این دستور می توان برای ساختن جدولی مشابه جدول اول استفاده نمود ولیکن اطلاعات جدول اول را در آن درج نکرد.(کپی کردن فقط ساختار). فقط کافیست در عبارت where شرطی را ذکر کرد که همیشه غلط باشد ؟!
SELECT *
INTO newtable
FROM table1
WHERE 1=0;
بسیاری از مفاهیم درفیلم اموزشی بطور مفصل شرح داده شده اند . لذا حتما فیلم آموزشی این فصل را ببینید .
مفاهیم و موضوعات این فصل عبارتند از :
-
DML - Data Manipulation Language
-
INSERT
-
UPDATE
-
DELETE
-
SELECT INTO