SQLite هو مصدر مفتوح ، خفيف الوزن ، لا يوجد اتصال للشبكة ، قاعدة بيانات مستقلة. يدعم ميزات قاعدة البيانات العلائقية المضمنة.
قام Android ببناء تطبيق قاعدة بيانات SQLite. يتوفر محليًا عبر الجهاز (هاتف محمول ، جهاز لوحي) ويحتوي على بيانات بتنسيق نصي ، ويحمل بيانات وزن خفيف ومناسب لأي لغة.
تركيب Sqllit
Windows
1: انقر هنا لتنزيل SQLite .
2: قم بالتمرير لأسفل والعثور على الثنائيات المترجمة مسبقًا لنظام التشغيل Windows وعلى الرابط للتنزيل.
3: احصل على الملف الذي تم تنزيله على نظامك المحلي ، والآن افتح محرك الأقراص C وأنشئ مجلدًا جديدًا مثل SQLite3 والصق الملف الذي تم تنزيله هنا.
4: لقد انتهيت الآن من التثبيت. لتشغيل الأمر في SQLite ، افتح موجه الأوامر ، انتقل إلى المسار الذي يتم نسخ SQLite فيه. الآن يمكنك تحديد أي استفسار هنا.
Mac
في نظام Mac ، يتم تثبيت sqlite مسبقًا في النظام ، كل ما تحتاجه هو معرفة كيفية استخدامه.
1: افتح الجهاز الخاص بك.
2: حدد موقع دليلك الحالي باستخدام الأمر pwd (دليل العمل الحالي).
3: قم بإنشاء دليل باستخدام mkdir وقم بتسميته sqlite باستخدام cd (تغيير الدليل) انتقل إلى dir.
4: الآن استخدم sqlite3 test.db (الاختبار هو اسم قاعدة البيانات).
Linux (Ubuntu)
في نظام التشغيل Linux ، استخدم الخطوات التالية:
1: افتح Terminal.
2: الآن اكتب الأمر التالي للبدء.
sudo apt-get install sqlite3 libsqlite3-dev
3: سيستمر التثبيت بعد ذلك وسيتركه يكتمل.
4: اكتب فقط sqlite3 وهذا سوف يطالب رقم الإصدار بالتفاصيل الأخرى. الآن يمكنك كتابة أوامر وإنشاء قاعدة بيانات والخروج من نوع ".quit".
نوع البيانات في SQLite: يحدد بشكل أساسي نوع البيانات التي سيخزنها الكائن فيها ، أي القيمة التي يمكن أن يأخذها في الداخل للتخزين. هناك أنواع أو بيانات مختلفة مثل الأرقام ، الأبجدية ، الأبجدية الرقمية وما إلى ذلك ، لذلك لتخزين كل هذا النوع من البيانات ، توجد أنواع مختلفة من البيانات. كما تحدد أنواع البيانات القيمة التي سيتم تخزينها أو العمليات التي يمكن تنفيذها على البيانات.
قاعدة بيانات SQLite هي نوع ديناميكي أي نوع القيمة المراد تخزينها في الحاوية يتم تحديده من خلال القيمة نفسها. بمعنى آخر ، يستخدم SQLite كتابة ثابتة وجامدة ، أي يسمح لنا بتعريف البيانات حسب القيمة.
لنأخذ مثالاً لفهم النقطة بشكل أكثر وضوحًا:
create table demo_table( Number int(15), Name varchar(50) ); insert into demo_table (Number , Name) values ('EA', '102');
هنا في المثال أعلاه نحدد نوع بيانات الرقم على أنه عدد صحيح والاسم باسم Varchar. في السطر الثاني ، أدخلنا قيمة الحرف في Number و Number in Name باستخدام الأمر insert. سيتم تشغيل هذا الاستعلام دون أي خطأ لأن محرك SQLite يسمح بالكتابة الصارمة التي تحاول عادةً تحويل القيم تلقائيًا إلى نوع البيانات المناسب.
فئات التخزين
Null: القيمة هي قيمة خالية .
Integer : القيمة هي عدد صحيح بعلامة ، مخزنة في 1 أو 2 أو 3 أو 4 أو 6 أو 8 بايت حسب حجم القيمة.
Real : القيمة هي قيمة فاصلة عائمة ، مخزنة كرقم فاصلة عائمة IEEE 8 بايت.
Text: القيمة عبارة عن سلسلة نصية ، يتم تخزينها باستخدام ترميز قاعدة البيانات (UTF- 8 أو UTF-16BE أو UTF-16LE)
Blob: القيمة عبارة عن blob من البيانات ، يتم تخزينها تمامًا كما تم إدخالها.
لقد استخدمنا الفئات المذكورة أعلاه في أوامر هذه المقالة.
نوع التقارب SQLite Affinity Type:
من أجل زيادة التوافق بين SQLite ومحركات قواعد البيانات الأخرى ، يدعم SQLite مفهوم "نوع التقارب" على الأعمدة. نوع التقارب هو النوع الموصى به للبيانات المخزنة في هذا العمود. يمكن لأي عمود تخزين أي نوع من البيانات. تسمى فئة التخزين المفضلة للعمود "التقارب".
قام كل عمود بتعيين تقاربات النوع التالية:
- TEXT
- NUMERIC
- INTEGER
- REAL
- NONE
أسماء أنواع التقارب Affinity Type Names
DATA | TYPE AFFINITY |
---|---|
INT | INTEGER |
INTEGER | |
TINYINT | |
SMALLINT | |
MEDIUMINT | |
BIGINT | |
UNSIGNED BIGINT | |
INT2 | |
INT8 | |
CHARACTER(20) | TEXT |
VARCHAR(225) | |
VARYING CHARACTER(225) | |
NCHAR(55) | |
NATIVE CHARACTER(70) | |
NVARCHAR(100) | |
TEXT | |
CLOB | |
BLOB | BLOB |
REAL | REAL |
DOUBLE | |
DOUBLE PRECISION | |
FLOAT | |
NUMERIC | NUMERIC |
DECIMAL(10,5) | |
BOOLEAN | |
DATE | |
DATETIME |
SQLite Commands أوامر سكليتي
أوامر SQLite تشبه أوامر SQL. يعمل SQLite كنظام إدارة قواعد البيانات العلائقية. كما هو الحال في قاعدة البيانات العلائقية الأخرى ، يتم إرسال الطلب من العميل إلى خادم قاعدة البيانات ، كما تتم معالجة الطلب. ولكن هنا لا يوجد شيء من هذا القبيل لأنه قائم بذاته وبدون خادم.
يتم تصنيف أوامر SQLite على أنها
هناك 3 أقسام رئيسية في هذا ، ولكن قبل ذلك دعونا نتعرف على كيفية إنشاء قاعدة بيانات في SQLite.
إنشاء قاعدة بيانات: قاعدة البيانات عبارة عن حاوية تحتوي على جداول وطرق عرض وما إلى ذلك.
.open : يمكن للمستخدم فقط تحديد اسم قاعدة البيانات باستخدام الأمر open. سيفتح قاعدة البيانات الحالية أو ينشئ قاعدة بيانات جديدة إذا لم تكن موجودة.
SQLite version 3.16.2 2017-01-06 16:32:41 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open new_Database
1) أوامر DDL:
يرمز DDL إلى لغة تعريف البيانات. يستخدم هذا لتحديد هيكل قاعدة البيانات. يتضمن أوامر مثل الإنشاء والتعديل والإفلات.
CREATE : يتم استخدام هذا الأمر لإنشاء جدول أو فهرس أو مشغل أو عرض أو كائنات قاعدة بيانات أخرى. الخ.
DROP: هذا في الأساس لإسقاط هيكل الجدول ، وعرض الخ. ولكن لا يمكن للمستخدم إسقاط عمود في SQLite.
ALTER: هذا الأمر يسمح لنا بتغيير أو تعديل الهيكل الحالي مثل إعادة تسمية الجدول ، إضافة عمود وما إلى ذلك ولكن لا يمكن تغيير العمود.
2) أوامر DML:
يرمز DML إلى لغة معالجة البيانات التي تعالج البيانات / السجل بشكل أساسي مثل الإدراج أو التحديث أو الحذف.
INSERT: يستخدم هذا الأمر لإدراج سجل في الجدول.
UPDATE : يتم تحديث سجل الجدول.
DELETE: يقوم بحذف سجل الجدول.
3) أوامر DQL:
يرمز DQL إلى لغة استعلام البيانات التي تُستخدم أساسًا لاسترداد السجلات في الجدول.
SELECT : يسمح لنا باسترداد السجلات.
الآن دعونا نشرح كل هذه الأوامر واحدة تلو الأخرى بالتفصيل:
CREATE TABLE : يُستخدم هذا الأمر لإنشاء كائنات قاعدة بيانات مثل الجداول. يمكن للمستخدم إنشاء جدول في أي قاعدة بيانات ، عن طريق تحديد اسم الجدول وأعمدته بالمواصفات (أنواع البيانات).
create table < Table_Name > ( column 1 datatype, column 2 datatype, .... column n datatype );
مثال على إنشاء جدول:
create table student ( Roll_no int, Name text, Fees real, address varchar );
ALTER TABLE: يستخدم هذا الأمر لتغيير كائنات قاعدة البيانات مثل الجداول. يمكن للمستخدم تغيير الجدول إضافة متغيرات الأعمدة ويمكن إعادة تسمية الجدول.
alter table < Table_Name > add new_column _name column_defination;
مثال على تعديل الجدول: إضافة عمود جديد
alter table student add Father_name varchar(50);
مثال لتغيير الجدول: إعادة تسمية الجدول
alter table student rename to stu;
DROP TABLE: يستخدم هذا الأمر لإسقاط بنية الجدول. يتم إسقاط البيانات المرتبطة بهيكل الجدول وجهات النظر والفهرس والقيود وما إلى ذلك.
drop table < Table_Name >;
مثال لإسقاط الجدول
drop table student;
INSERT: يستخدم هذا الأمر لإدراج سجل في الجدول. يحدد المستخدم اسم الجدول والبيانات التي سيتم تحديدها في الجدول.
insert into < Table_Name > values(value 1, value 2,... value n);
مثال لإدراج سجل في الجدول
insert into student values ('12','Rohit','2500','Karnal','Shyam Lal');
حذف: يستخدم هذا الأمر لحذف سجل في الجدول. يحدد المستخدم اسم الجدول والبيانات المراد حذفها من الجدول.
delete table < Table_Name > where <condition>;
مثال لحذف السجلات في الجدول
delete table student;
delete table student where Roll_no='12';
تحديث: يستخدم هذا الأمر لتحديث السجل في الجدول. يحدد المستخدم اسم الجدول والبيانات المراد تعديلها من الجدول بشرط محدد.
update table < Table_Name > set column1 = value1 , column2 = value2 ...... columnN = valueN where <condition>;
مثال لتحديث السجلات في الجدول
update student set Fees = '30000' where Roll_no='1';
SELECT: يستخدم هذا الأمر لاسترداد السجلات من الجدول. يمكن للمستخدم استرداد السجلات حسب متطلباتك من جداول متعددة من خلال تطبيق الشروط.
select column1, column2, ...columnN from table < Table_Name >
مثال لتحديث السجلات في الجدول
select Name, Roll_No from student;
لاسترداد جميع البيانات استخدم:
select * from student;
عوامل التشغيل هي الكلمات الاحتياطية المضمنة التي لها معنى محدد وراءها. يتم استخدام هذه العوامل مع الاستعلام لبعض المقارنات أو العمليات الأخرى.
عوامل التشغيل في Operators In SQLite :
- Arithmetic
- Relational
- Logical
- Bitwise
ARITHMETIC
تُستخدم العوامل الحسابية للعمليات الحسابية الأساسية مثل الجمع (+) والطرح (-) والضرب (*) والقسمة (/) والمعامل (٪).
لنفكر في A = 10 & B = 5.
- الإضافة: أضف القيم في أي من الترتيب الذي تم تحديده به ، لذلك سيعطي A + B 15.
- الطرح: اطرح معامل الجانب الأيمن من المعامل الأيسر ، لذلك سيعطي AB 5.
- الضرب: اضرب القيم في أي من الرتب التي يتم تحديدها ، لذلك سيعطي A * B 50.
- القسمة : قسّم البسط على المقام ، لذا ستعطي A / B 2.
- المعامل: اقسم معامل الجانب الأيسر على الجانب الأيمن وأعد الباقي ، لذا فإن A٪ B سيعطي صفرًا.
ذات الصلة
العوامل العلائقية هي أيضًا العوامل الحسابية الأساسية.
لنفكر في A = 10 & B = 5 .
- < : إرجاع صحيح عندما يكون المعامل الأيسر أقل من اليمين ، لذلك (A <B) خطأ.
- <= : إرجاع صحيح عندما يكون المعامل الأيسر أقل من أو يساوي اليمين ، لذلك (A <= B) خطأ.
- > : إرجاع صحيح عندما يكون المعامل الأيسر أكبر من اليمين ، لذلك (A> B) يكون صحيحًا.
- > = : إرجاع صحيح عندما يكون المعامل الأيسر أكبر من أو يساوي اليمين ، لذلك (A> = B) يكون صحيحًا.
- = أو == : إرجاع صحيح عندما يكون كلا المعاملين متساويين ، لذلك (أ = ب) خطأ.
- ! = أو <> : إرجاع صحيح عندما لا يكون كلا المعاملين متساويين ، لذلك (A = B) يكون صحيحًا.
LOGICAL
فيما يلي العوامل المنطقية.
- AND : إرجاع صحيح عندما تكون جميع الشروط المعرفة بواسطة AND صحيحة ، وإلا خطأ.
- OR = : إرجاع صحيح عندما تكون أي شروط معرّفة بواسطة OR صحيحة ، وإلا خطأ
- NOT : إنه عامل سالب ، وعكس معنى المعامل.
- BETWEEN : العامل بين يُرجع القيمة المحددة بين الحد الأدنى والحد الأقصى للقيمة.
- IN : يسمح عامل التشغيل IN بتحديد قيم متعددة معه وإرجاع الصفوف كما هو محدد.
- NOT IN : إنه عكس عامل IN ، ويعيد القيم التي أو لم يتم تحديدها ، ويمكن للمستخدم إدخال قيم متعددة فيه.
- EXISTS : يجد عامل التشغيل هذا صفًا محددًا للطقس موجودًا.
BITWISE
فيما يلي عوامل تشغيل البت.
- & : ثنائي AND
- | : ثنائي OR
- >> : إزاحة لليمين ثنائي.
- << : التحول إلى اليسار الثنائي.
جدول الحقيقة لـ "&" و "|"
أ | ب | أ & ب | أ | ب |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 |
تُستخدم الجمل لتحديد أي شرط محدد باستخدام الأوامر مثل التحديد والإدراج والتحديث والحذف والتعديل.
where CLAUSE في SQLITE :
حيث يتم استخدام الجملة لتصفية النتيجة ، لذلك يتم تعريف الشرط مع عبارة where ، وإذا كان الشرط المحدد صحيحًا ، يتم إرجاع السجلات. يتم استخدامه مع التحديث ، التحديد ، التغيير .. الخ.
بناء الجملة
select column1, column2, columnN from where <condition>;
استعمال:
sqlite> select * from t1; Number Name --- --- 101 Ram 102 Ram Kumar 103 Krishan 104 Ramesh sqlite> select name from t1 where num=102; Name ---- Ram Kumar sqlite>
و / أو AND/ OR Clause
تُستخدم هذه الجملة لاسترداد السجلات أو يمكنك أن تقول سجلات متعددة بالشرط المحدد تحدد هاتين الجملتين.
و AND:
باستخدام عبارة "AND" ، يمكننا تحديد شروط متعددة ولكنها تصبح صحيحة إذا كانت جميع الشروط المحددة معها صحيحة. مثلما نحدد [condition1] و [condition2] ، سيكون صحيحًا إذا كان كلاهما الشرط 1 ، الشرط 2 صحيحًا .
Syntax بناء الجملة
Where [condition1] AND [condition2] AND [condition3] ... AND [conditionN]
Example: EMPLOYEE TABLE مثال
Eno Ename Esalary Eaddress --- ----- ------- ------ 101 Rajat 50000.0 Karnal 102 Ranjit 56000.0 Karnal 103 Rahul 66000.0 Karnal 104 Ravi 66000.0 Kaithal 105 Ravina 75000.0 Kaithal
Usage الاستعمال
sqlite> select Eno from Employee where Eaddress='Karnal'; Eno --- 101 102 103
OR او :
باستخدام عبارة "OR" ، يمكننا تحديد شروط متعددة ولكنها ترجع صحيحًا إذا كانت أي شروط محددة معها صحيحة. مثلما نحدد [condition1] و [condition2] ، سيكون صحيحًا إذا كان أي من الشرطين أيًا من الشرطين 1 ، الشرط 2 صحيحًا .
Syntax بناء الجملة
Where [condition1] AND [condition2] OR [condition3] ... OR [conditionN]
Usage استعمال
sqlite> select Eno, Ename from Employee where Eaddress='Karnal' or Esalary=75000; Eno Ename --- ----- 101 Rajat 102 Ranjit 103 Rahul 105 Ravina
LIKE CLAUSE
يتم استخدام عبارة Like لمطابقة القيم باستخدام أحرف البدل. أحرف البدل هي الشخصية الخاصة التي لها بعض المعنى.- النسبة المئوية "٪" - تمثل حرفًا واحدًا أو أكثر.
- الشرطة السفلية "_" - هذا يمثل حرفًا واحدًا..
Usage للاستخدام
في المثال التالي ، سيتم إرجاع السجلات التي تنتهي بـ Ename بالأحرف الأبجدية ‘t’.
sqlite> select Esalary from Employee where ename like '%t'; Esalary ------ 50000.0 56000.0
In following will return records as starting with ‘R’ followed by any letter after that ‘v’ than any number of letters.
sqlite> select Eno ,Ename from Employee where Ename like 'R_v%'; Eno Ename --- ---- 104 Ravi 105 Ravina
GLOB CLAUSE
يتم استخدام عبارة Glob لمطابقة قيم النص مقابل النمط باستخدام أحرف البدل unix. عبارة Glob حساسة لحالة الأحرف على عكس الجملة. أحرف البدل هي الشخصية الخاصة التي لها بعض المعنى.
- النجمة "*" - تمثل حرفًا واحدًا أو أكثر.
- علامة استفهام "؟" - هذا يمثل شخصية واحدة..
Usage الاستخدام
في المثال التالي ، سيتم إرجاع السجلات التي تنتهي بـ Ename بالأحرف الأبجدية ‘t’.
sqlite> select Esalary from Employee where ename glob '*t'; Esalary ------ 50000.0 56000.0
في ما يلي سيتم إرجاع السجلات على أنها تبدأ بـ "R" متبوعة بأي حرف بعد ذلك "v" أكثر من أي عدد من الأحرف .
sqlite> select Eno ,Ename from Employee where Ename glob 'R?v*'; Eno Ename --- ---- 104 Ravi 105 Ravina
ملاحظة مهمة: الاختلاف الأساسي بين Like و Glob هو أن Glob حساس لحالة الأحرف ولكن مثل المشغل ليس أكثر يستخدم Glob أحرف البدل unix.
LIMIT & OFFSET CLAUSE بند التقييد والاعتراض
في شرط حد SQLite يحد بشكل أساسي من الإخراج ، فإنه يعرض فقط عددًا من الصفوف كما هو محدد فيه ، دعنا نرى المثال .
Usage الاستخدام
في المثال أدناه ، إذا رأيت أن الحد مضبوط على "3" ، فسيعرض أول 3 سجلات .
sqlite> select * from Employee limit 3 ; Eno Ename Esalary Eaddress --- ----- ------- ------- 101 Rajat 50000.0 Karnal 102 Ranjit 56000.0 Karnal 103 Rahul 66000.0 Karnal
OFFSET CLAUSE بند الإزاحة
سيؤدي استخدام Offset with Limit إلى تعيين تعويض بعد الإزاحة المحددة ستعرض السجلات .
Usage الاستخدام
في الاستعلام أدناه ، سيعرض شرط التحديد سجلين كما هو موضح أعلاه وستترك الإزاحة عددًا محددًا من السجلات فيه..
sqlite> select * from employee limit 2 offset 2; Eno Ename Esalary Eaddress --- ----- ------- -------- 103 Rahul 66000.0 Karnal 104 Ravi 66000.0 Kaithal
ORDER BY CLAUSE ترتيب حسب الشرط
Order By Clause كما يرمز الاسم ، يتم فرز البيانات بترتيب محدد ، أي إما تصاعديًا أو تنازليًا. بشكل افتراضي ، يكون الترتيب تصاعديًا. يمكنك استخدام عدة أعمدة بالترتيب حسب البند .
Usage الاستخدام
في المثال أدناه ، يتم استخدام الترتيب حسب البند الذي يتم فيه طلب السجلات بواسطة Eaddress .
sqlite> select Ename, Esalary from employee order by Eaddress ASC; Ename Esalary ----- ------- Ravi 66000.0 Ravina 75000.0 Rajat 50000.0 Ranjit 56000.0 Rahul 66000.0
في المثال أدناه ، استخدمنا الترتيب حسب البند الذي يقوم بفرز السجلات بترتيب تنازلي .
sqlite> select Ename, Esalary from employee order by Eaddress DESC; Ename Esalary ----- ------- Rajat 50000.0 Ranjit 56000.0 Rahul 66000.0 Ravi 66000.0 Ravina 75000.0
GROUP BY
يتم استخدام Group By Clause لتجميع السجلات المتشابهة معًا. يتم استخدام هذه الجملة مع استعلام التحديد واختيارياً يمكنك استخدام الأمر بفقرة معه .
Usage:
في المثال أدناه نريد أن نعرف عدد الموظفين من نفس الموقع. لذلك استخدمنا التجميع حسب مع وظيفة العد ، ثم أضفنا ترتيبًا بفقرة والتي تقوم بفرز السجلات وفقًا لـ Eno .
sqlite> select Eaddress, count(Eaddress) as Number_of_Employees from employee group by Eaddress order by Eno; Eaddress Number_of_Employees ------- ------------------- Karnal 3 Kaithal 2
HAVING CLAUSE
يتم استخدام شرط وجود لتحديد شرط مع المجموعة بواسطة.
الاستعمال:
في المثال التالي نحسب عدد الموظفين من kaithal من خلال تجميعهم.
sqlite> select Eaddress, count(Eaddress) as Number_of_Employees from employee group by Eaddress having Eaddress='Kaithal'; Eaddress Number_of_Employees -------- ------------------- Kaithal 2
متميز / الكل
مميز كما يشرح نفسه يعرض بيانات فريدة.
الاستعمال:
في الاستعلام أدناه ، يتم جلب سجلات العناوين المميزة.
sqlite> select Distinct Eaddress from employee; Eaddress ------ Karnal Kaithal
باستخدام ALL بالمثل ، سيتم عرض جميع السجلات:
sqlite> select All Eaddress from employee; Eaddress -------- Karnal Karnal Karnal Kaithal Kaithal