×

DML - INSERT,UPDATE,DELETE در SQL Server

فصل بیستم :

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 قرار میدهیم و برای غیر فعال کردن این امکان خط دوم را اجرا میکنیم

در فیلم مثالهای یادی وجود دارد این فصل را حتما با فیلم ببینید

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

SELECT *
INTO newtable
FROM table1
WHERE 1=0;



مفاهیم و موضوعات این فصل عبارتند از :

  • DML - Data Manipulation Language

  • INSERT

  • UPDATE

  • DELETE

  • SELECT INTO

vatantop
نظرات و سوالات درج سوال/ نظر