ماهو - شرح sql




لماذا استخدام "حيث 1=2" على بناء جملة SQL CREATE TABLE؟ (5)

ثق في جوجل ، يا صديقي. من الجزء السفلي من النتيجة الأولى عند google هذا البيان :

فمثلا:

CREATE TABLE suppliers
  AS (SELECT *
    FROM companies WHERE 1=2);

سيؤدي ذلك إلى إنشاء جدول جديد يسمى الموردين يتضمن جميع الأعمدة من جدول الشركات ، ولكن لا توجد بيانات من جدول الشركات.

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;

قرأت هذا البيان في مكان ما على الإنترنت لكنني لم أستطع فهم WHERE 1=2 .

هل من فضلك وضح ذلك؟


عادة ما يتم استخدام هذا النوع من الأوامر لنسخ بنية جدول إلى آخر. في هذه الحالة ، سيكون EMPL_DEMO لهيكل العمود نفسه employees ، باستثناء المفاتيح أو القيود .

دائمًا ما يقيم 1=2 على False والذي يمنعك من نسخ أي من الصفوف.


يفعل بناء الجملة هذا الشيء نفسه ، لكنه أكثر وضوحًا ، فإنه ينشئ جدولًا له نفس البنية ، بدون بيانات.

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;

يمكن أن يكون هذا مفيدًا لنسخ بنية الجدول باستثناء القيود والمفاتيح والفهارس وممتلكات الهوية وصفوف البيانات.

سيقوم هذا الاستعلام بإنشاء جدول EMPL_DEMO مع عدم نسخ صفوف من جدول الموظفين WHERE 1=2 يتم تقييم الشرط WHERE 1=2 دائمًا على أنه FALSE .

  CREATE TABLE EMPL_DEMO 
  AS 
  SELECT * 
  FROM employees 
  WHERE 1=2;

وحي:

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2; //just structure not data

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=1; //ststructure and data

فهم أفضل في قاعدة بيانات Teradata:

CREATE TABLE EMPL_DEMO AS Memployees with no data; //structure

CREATE TABLE EMPL_DEMO AS Memployees with data; //structure and data






sql