الأمر Insert في اللغة الاستعلامية SQL
الأمر Insert في اللغة الاستعلامية SQL
الأمر Insert في اللغة الاستعلامية SQL
هذه المقالة في عبارة الأمر Insert في اللغة الاستعلامية SQL ، هي جزء من سلسلة حول وظائف ومشغلات وتقنيات معالجة السلسلة.
تركز المقالات السابقة على تقنيات استعلام SQL ، وكلها تتمحور حول مهمة إعداد البيانات وتحويل البيانات.
لقد ركزنا حتى الآن على بيان محدد لقراءة المعلومات من الجدول.
لكن هذا يطرح السؤال.
كيف وصلت البيانات إلى هناك في المقام الأول؟
لذلك في هذه المقالة ، سنركز على عبارة DML ، عبارة SQL insert.
إذا أردنا إنشاء بيانات ، فسنستخدم كلمة SQL الأساسية ، “Insert”.
التنسيق العام هو عبارة INSERT INTO SQL متبوعة باسم جدول ، ثم قائمة الأعمدة ، ثم القيم التي تريد استخدام جملة SQL Insert لإضافة البيانات إلى تلك الأعمدة.
عادة ما يكون الإدخال مهمة مباشرة.
يبدأ بعبارة بسيطة تتمثل في إدخال صف واحد.
ومع ذلك ، في كثير من الأحيان ، يكون استخدام نهج قائم على مجموعة لإنشاء صفوف جديدة أكثر كفاءة.
في الجزء الأخير من المقالة ، دعنا نناقش تقنيات مختلفة لإدراج العديد من الصفوف في وقت واحد.
أيضا فيما يلي سنتعرف علي الأمر Insert في اللغة الاستعلامية SQL
المتطلبات المسبقة
الافتراض هو أن لديك الإذن التالي لإجراء عملية INSERT على الجدول
- كذلك عملية INSERT هي الافتراضية لأعضاء دور خادم مسؤول النظام الثابت ودور قاعدة البيانات الثابتة db_owner و db_datawriter ومالك الجدول.
- يتطلب INSERT باستخدام خيار OPENROWSET BULK أن يكون المستخدم عضوًا في دور خادم ثابت مسؤول النظام أو دور خادم Buladmin الثابت.
قواعد:
- عادةً لا نوفر دائمًا بيانات لكل عمود على حدة. في بعض الحالات ، يمكن ترك الأعمدة فارغة وفي حالات أخرى توفر القيم الافتراضية الخاصة بها.
- أيضا لديك مواقف حيث تقوم بعض الأعمدة بإنشاء المفاتيح تلقائيًا. في مثل هذه الحالات ، من المؤكد أنك لا تريد محاولة إدخال قيمك الخاصة في تلك المواقف.
- أيضا يجب أن تتطابق الأعمدة والقيم مع الترتيب ونوع البيانات والرقم
- إذا كان العمود عبارة عن سلاسل أو تاريخ أو وقت أو أحرف ، فيجب تضمينها في علامات الاقتباس المفردة. إذا كانت رقمية ، فلست بحاجة إلى علامات الاقتباس.
- إذا لم تقم بإدراج الأعمدة المستهدفة في عبارة insert ، فيجب عليك إدخال القيم في جميع الأعمدة في الجدول ، وتأكد أيضًا من الحفاظ على ترتيب القيم
كيفية إجراء insert إدراج بسيطة
لنبدأ في إدخال البيانات في جدول القسم البسيط هذا.
أولاً ، استخدم اسم الجدول ثم داخل قوس ، اسم الأعمدة ثم اكتب القيم.
لذلك ، قم بتسمية الأعمدة التي سنكتبها في القيم.
على سبيل المثال
CREATE TABLE department
dno INT)
,PRIMARY KEY
,dname VARCHAR(20) NOT NULL
loc VARCHAR(50) NOT NULL
يقوم SQL insert التالي في العبارة بإدراج صف في القسم.
كذلك يتم سرد الأعمدة dno و dname و loc وقيم تلك الأعمدة.
أيضا يتم الاحتفاظ بالترتيب بنفس طريقة الأعمدة في الجدول
على سبيل المثال
INSERT INTO department
,dno)
,dname
loc
(
VALUES
,10)
‘,ENGINEERING’
‘New York’
;(
كيفية إجراء عملية إدراج بسيطة باستخدام SSMS
يمكن إدراج البيانات في جدول إما باستخدام SQL Server Management Studio (SSMS) أو واجهة المستخدم الرسومية أو من خلال لغة معالجة البيانات في محرر SQL.
يعد استخدام واجهة المستخدم الرسومية في SSMS طريقة سريعة وسهلة لإدخال السجلات مباشرة إلى الجدول.
دعنا نمضي قدمًا ونتصفح جدول القسم وانقر بزر الماوس الأيمن وانتقل لتعديل أهم 200 صف.
لذلك سيظهر هذا نافذة محرر حيث يمكننا التفاعل مباشرة مع البيانات.
لكتابة القيم الجديدة ، انزل إلى الأسفل وابدأ في كتابة القيم.
من المفيد جدًا في بعض الحالات التعرف على البيانات التي توشك على إدخالها في الجدول.
على سبيل المثال
*SELECT
;FROM department
كيفية استخدام Insert في عبارة لإضافة صفوف متعددة من البيانات
في SQL Insert التالي في البيان ، تم إدخال ثلاثة صفوف في القسم.
كذلك يتم توفير قيم جميع الأعمدة ويتم سردها بنفس ترتيب الأعمدة في الجدول.
أيضا ، يتم سرد القيم المتعددة وفصلها بواسطة محدد الفاصلة.
على سبيل المثال
INSERT INTO department
,dno)
,dname
loc
(
VALUES
,40)
,‘Sales’
‘NJ’
,(
,50)
,‘Marketting’
‘MO’
,(
,60)
,‘Testing’
‘MN’
;(
|
كيفية استخدام Insert في عبارة لإضافة بيانات بالقيم الافتراضية
دعونا ننشئ جدولًا بسيطًا للعرض التوضيحي.
لذلك يتم إنشاء جدول مع عمود عدد صحيح معرف بالقيمة الافتراضية 0 وعمود تاريخ ووقت آخر معرف بقيمة الطابع الزمني للتاريخ الافتراضي.
على سبيل المثال
CREATE TABLE demo
,id INT DEFAULT 0)
() hirdate DATETIME DEFAULT GETDATE
;(
لذلك الآن ، دعنا ندرج القيمة الافتراضية في الجدول التوضيحي باستخدام إدراج SQL في العبارة
على سبيل المثال
INSERT INTO demo
;DEFAULT VALUES
*SELECT
;FROM demo
ملاحظة: إذا تم تحديد جميع أعمدة الجدول بقيم افتراضية ، فحدد جملة القيم الافتراضية لإنشاء صف جديد بكل القيم الافتراضية
أيضا بعد ذلك ، تجاوز القيم الافتراضية للجدول SQL Insert في العبارة.
على سبيل المثال
INSERT INTO demo
VALUES(1,‘2018-09-28 08:49:00’)
*SELECT
;FROM demo
|
أيضا دعنا نفكر في مثال آخر حيث يكون الجدول عبارة عن مزيج من الأعمدة الافتراضية وغير الافتراضية.
على سبيل المثال
;DROP TABLE IF EXISTS Demo
CREATE TABLE demo
(id INT
,PRIMARY KEY IDENTITY(1, 1)
,Name VARCHAR(20)
()hirdate DATETIME DEFAULT GETDATE
);
|
كذلك لإدراج القيم الافتراضية في الأعمدة ، ما عليك سوى استبعاد الأعمدة الافتراضية من قائمة الإدراج مع إدراج SQL في العبارة.
على سبيل المثال
INSERT INTO demo (name)
;VALUES (‘Prashanth’), (‘Brian’), (‘Ahmad’)
*SELECT
;FROM demo
|
أيضا في المثال التالي ، يمكنك أن ترى أن الكلمة الأساسية DEFAULT تُستخدم لتغذية قيمة إلى الجدول في عبارة القيم مع SQL Insert في العبارة
على سبيل المثال
INSERT INTO demo(name,hirdate)
;VALUES(‘Kiki’,DEFAULT), (‘Yanna’,DEFAULT), (‘Maya’,DEFAULT)
|
كيفية استخدام إدراج لإضافة بيانات إلى جدول عمود الهوية
يوضح المثال التالي كيفية إدراج البيانات في عمود الهوية.
أيضا في العينة ، نتجاوز السلوك الافتراضي (خاصية IDENTITY للعمود) للإدراج باستخدام عبارة SET IDENTITY_INSERT
كذلك إدراج قيمة صريحة في عمود الهوية.
كذلك في هذه الحالة ، يتم إدراج ثلاثة صفوف بالقيم 100 و 101 و 102
على سبيل المثال
;SET IDENTITY_INSERT Demo ON
INSERT INTO demo
,id)
,name
hirdate
(
VALUES
,100)
,‘Bojan’
DEFAULT
,(
,101)
,‘Milan’
DEFAULT
,(
,102)
,‘Esat’
DEFAULT
,(
;SET IDENTITY_INSERT Demo OFF
*SELECT
;FROM demo
|
كيفية استخدام جملة SQL Insert لإضافة بيانات من مجموعة بيانات أخرى
في هذا القسم ، سنرى كيفية تسجيل نتائج الاستعلام (التحديد البسيط أو التحديد المركب متعدد الجداول) في جدول آخر.
كذلك يوضح المثال التالي كيفية إدراج البيانات من جدول في جدول آخر باستخدام INSERT… SELECT أو INSERT… EXECUTE أو SELECT * INTO.
أيضا يعتمد كل منها على عبارة SELECT متعددة الجداول التي تتضمن تعبيرًا وقيمة حرفية في قائمة الأعمدة.
INSERT… SELECT عبارة
كذلك تستخدم عبارة SQL INSERT الأولى عبارة INSERT… SELECT لاشتقاق الإخراج من جداول المصدر المتعددة مثل قاعدة بيانات Employee و EmployeePayHistory و Department و Person of the AdventureWorks2014 وإدراج مجموعة النتائج في جدول العرض التوضيحي.
يمكنك أن ترى أن المخطط والتعريف قد تم إنشاؤه بالفعل من أجل جملة INSERT INTO SQL
على سبيل المثال
CREATE TABLE Demo
(FirstName VARCHAR(25),
LastNameVARCHAR(25),
JobTitleVARCHAR(100),
RateDECIMAL(7, 4),
GroupName VARCHAR(50)
);
INSERT INTO Demo
SELECT P.FirstName,
P.LastName,
EMP.JobTitle,
EPH.Rate,
Dept.GroupName
FROM HumanResources.EmployeePayHistory EPH
INNER JOIN HumanResources.Employee EMP ON EMP.BusinessEntityID = EPH.BusinessEntityID
INNER JOIN HumanResources.EmployeeDepartmentHistory H ON EMP.BusinessEntityID = H.BusinessEntityID
INNER JOIN HumanResources.Department Dept ON H.DepartmentID = Dept.DepartmentID
INNER JOIN Person.Person P ON P.BusinessEntityID = EMP.BusinessEntityID
WHERE Dept.GroupName = ‘Research and Development’;
SELECT *
FROM Demo;
|
INSERT…EXECUTE statement
كذلك عبارة INSERT… EXECUTE الثانية ، يتم تنفيذ الإجراء المخزن والذي يحتوي على عبارة SELECT.
أيضا المثال التالي ، يتم إنشاء الجدول tb_spaceused.
على سبيل المثال
أيضا تستخدم عبارة INSERT INTO SQL جملة EXECUTE لاستدعاء إجراء مخزن يحتوي على مجموعة نتائج جملة SELECT.
على سبيل المثال
INSERT INTO tb_spaceused
EXEC sp_msforeachdb
“; command1 = “use ? exec sp_spaceused @oneresultset = 1@
*SELECT
;FROM tb_spaceused
|
SELECT * INTO statement
ثالثًا ، في هذه الحالة ، تريد إنشاء جدول جديد يحتوي على نفس مجموعة الأعمدة كجدول موجود أو تحديد بسيط أو عبارة تحديد معقدة.
نسخ المخطط فقط
على سبيل المثال ، قد ترغب في إنشاء هيكل فقط للجدول التجريبي وتسميته demo_ replicate ولا تريد نسخ الصفوف.
لذلك في هذه الحالة ، استخدم شرط FALSE في جملة WHERE (1 <> 2 أو 1 = 0).
على سبيل المثال
*SELECT
INTO DEMO_Duplicate
FROM Demo
;WHERE 1 <> 2
|
1
2
|
*SELECT
FROM DEMO_Duplicate
|
ملاحظة:
كذلك في هذه الحالة ، تم إنشاء جدول العرض التوضيحي بالفعل بالطريقة الأولى. كذلك أنا أستخدم نفس الجدول لهذا العرض التوضيحي.
نسخ المخطط والبيانات
أيضا ينسخ المثال التالي كلاً من المخطط والبيانات إلى الجدول الهدف.
على سبيل المثال
*SELECT
INTO DEMO_Duplicate
FROM Demo
|
ملخص
حتى الآن ، ناقشنا المعايير والقواعد والمبادئ التوجيهية لبيان إدراج SQL.
لذلك نأمل أن تكون استفدت أقصي استفادة من هذه المقالة. الأمر Insert في اللغة الاستعلامية SQL
يمكنك إدراج أي قيم إذا كانت مقترنة بعبارة تحديد وتطابق مع المخطط الهدف.
أيضا تابع سلسلة المقالات الخاصة بقواعد البيانات SQL من خلال مدونة twiintech
كذلك يمكنك طلب الخدمة الاحترافية لقواعد البيانات عن طريق فريق من المهندسين المختصين