English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
الشرط هو مجموعة من القواعد التي يتم تطبيقها على أعمدة الجدول. هذه تستخدم لتحديد أنواع البيانات التي يمكن أن تدخل إلى الجدول. هذا يضمن دقة وسلامة البيانات في قاعدة البيانات.
الشرط يمكن أن يكون على مستوى العمود أو على مستوى الجدول. الشروط على مستوى العمود تطبق فقط على عمود واحد، بينما تطبق الشروط على مستوى الجدول على الجدول بأكمله.
هذه هي الشروط المتاحة بشكل شائع في SQLite.
NOT NULL الشرط − يضمن أن العمود لا يمكن أن يحتوي على القيم NULL.
DEFAULT الشرط − إذا لم يتم تحديده، يتم تقديم قيمة افتراضية للأعمدة.
UNIQUE الشرط − يضمن أن جميع القيم في العمود ليست متشابهة.
PRIMARY Key − هو معرف فريد لكل سطر/سجل في جدول قاعدة البيانات.
CHECK الشرط − يضمن أن جميع القيم في العمود تلتزم ببعض الشروط.
بشكل افتراضي، يمكن للأعمدة حفظ قيم NULL. إذا لم تريد أن تكون لديك قيم NULL في عمود معين، فإنه يجب عليك تعريف هذا الشرط في العمود لتحديد أن العمود لا يسمح بالقيم NULL.
NULL يمثل عدم وجود بيانات، وهو يعني بيانات غير معروفة.
على سبيل المثال، التعبير البرمجي التالي لـ SQLite يخلق جدولًا جديدًا يُدعى COMPANY ويضيف خمس أعمدة، حيث لم يتم تحديد الثلاثة أعمدة (ID،NAME وAGE) لتقبل القيم NULL.
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
عندما لا يتم تقديم قيمة محددة لجملة INSERT INTO، فإن شرط DEFAULT سيعطي قيمة افتراضية للأعمدة.
على سبيل المثال، التعبير البرمجي التالي لـ SQLite يخلق جدولًا جديدًا يُدعى COMPANY ويضيف خمس أعمدة. هنا، يتم تعيين قيمة الأعمدة SALARY افتراضيًا إلى 5000.00، لذا إذا لم يتم تقديم قيمة للأعمدة في جملة INSERT INTO، فإنها ستكون قيمتها افتراضيًا 5000.00.
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
UNIQUE约束可防止两个记录在特定列中具有相同的值。例如,在COMPANY表中,您可能要防止两个或多个人具有相同的年龄。
例如,以下SQLite语句创建一个名为COMPANY的新表并添加五列。在这里,AGE列设置为UNIQUE,因此您不能拥有两个具有相同年龄的记录-
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL UNIQUE, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
PRIMARY KEY约束唯一地标识数据库表中的每个记录。可以有更多的UNIQUE列,但表中只有一个主键。在设计数据库表时,主键很重要。主键是唯一的ID。
我们使用它们来引用表行。在表之间创建关系时,主键成为其他表中的外键。由于“长期的编码监督”,SQLite中的主键可以为NULL。其他数据库则不是这种情况。
主键是表中的字段,它唯一地标识数据库表中的每一行/记录。主键必须包含唯一值。主键列不能具有NULL值。
一个表只能有一个主键,它可以由单个或多个字段组成。当多个字段用作主键时,它们称为composite key。
如果表在任何表上定义了主键field(s),则不能有两个记录具有相同的值field(s)。
您已经在上面看到了许多示例,在这些示例中,我们创建了以ID为主键的COMPANY表。
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
CHECK 约束使条件能够检查输入到记录中的值。如果条件的计算结果为false,则记录违反了约束且未输入到表中。
例如,以下SQLite创建一个名为COMPANY的新表并添加五列。在这里,我们添加了一个带有SALARY的CHECK列,因此您不能有任何SALARY 0。
CREATE TABLE COMPANY3( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL CHECK(SALARY > 0) );
SQLite يدعم مجموعة صغيرة من أوامر ALTER TABLE. يسمح الأمر ALTER TABLE في SQLite للمستخدمين بتغيير اسم الجدول أو إضافة عمود جديد إلى الجدول الحالي. لا يمكن تغيير اسم العمود، حذف العمود أو إضافة أو حذف القيود في الجدول.