مقدمة و طريقة تنزيل و تثبيت Sqllit في الاندرويد

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 في Linux (Ubuntu)

نوع البيانات في 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

DATATYPE AFFINITY
INTINTEGER
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
BLOBBLOB
REALREAL
DOUBLE
DOUBLE PRECISION
FLOAT
NUMERICNUMERIC
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