لعرض بيانات مخزنة في قاعدة بيانات SQLite نستعمل العبارة "SELECT ",
عندما نستعمل هته العبارة ، نكون قد عينا الجدول أو الجداول التي نريد عرض البيانات الموجودة بها. وفي نفس الوقت الأعمدة التي نريد الاستعلام عنها.
يمكن أيضا توفير معايير إضافية لمواصلة تقليص البيانات التي سيتم إرجاعها.
الصيغة المبسطة للعبارة "SELECT ":
استخدمنا في السابق عبارة "SELECT" ، في موضوع إدراج البيانات.
وكان استعمالها على النحو التالي:
SELECT * FROM enmployers;
عند تنفيد هذا الأمر نحصل على نتائج مشابها لما يلي:
sqlite> SELECT * FROM enmployers; 1|Amar Lakhdar 2|Kamel Benahmed 3|Kamel Benkamel 4|Said 5|Faird 6|Lakhder 7|Nassim 8|Fouad 9|Mounir 10|Nadir 11|Tarik Moussafer
تنسيق البيانات المعروضة:
يمكن تنسيق وعرض البيانات بطرق مختلفة وذلك حتى نسهّل عملية قراءتها وهذه بعض التنسيقات الممكنة :
تنسيق الأعمدة :
يمكن استعمال الأمر ".mode" لتغيير طريقة العرض ، المثال السابق مكافئ للأمر " .mode list" لعرض البيانات في شكل قائمة. لعرض البيانات في شكل أعمدة نستعمل الكود التالي :
.mode column
عند ملاحظة هذا العرض يمكن تعديل عرض الأعمدة باستعمال الأمر ".width" متبوع بعرض كل عمود، في المثال التالي عرض العمود الأول هو 12 وعرض العمود الموالي هو 20,
.width 12 20
إضافة / أزالة رؤوس الأعمدة:
يمكن إضافة الأمر ".headers" لعرض أم عدم عرض رؤوس الأعمدة، لعرض رؤس الأعمدة نستعمل الكود التالي :
.headers on
يمكن إخفاء رؤوس الأعمد باستعمال الأمر :
.headers off
عرض الإعدادات :
يمكن عرض الإعدادات السابقة وغيرها باستعمال الأمر ".view" كما يلي :
sqlite> .show echo: off eqp: off explain: off headers: on mode: column nullvalue: "" output: stdout separator: "|" stats: off width: 12 20
العرض الجديد:
بعد تطبيق الإعدادات السابقة يمكن أن تعرض البيانات بالشكل الجديدالتالي :
EmployerId EmployerName ---------- ------------ 1 Amar Lakhdar 2 Kamel Benahmed 3 Kamel Benkamel 4 Said 5 Faird 6 Lakhder 7 Nassim 8 Fouad 9 Mounir 10 Nadir 11 Tarik Moussafer
استعمال جملة WHERE:
يمكننا استخدام جملة" WHERE "لتقليص النتائج المعروضة. هذه الأداة تسمح لنا بوصع معايير محددة يمكن تطبيقها على الاستعلام.
على سبيل المثال، يمكننا عرض السجلات التي تتوفر فيها شروط معينة،
ففي المثال التالي نريد عرص السجل الذي يكون فيه EmployerId يساوي 3 فنكتب ما يلي:
ففي المثال التالي نريد عرص السجل الذي يكون فيه EmployerId يساوي 3 فنكتب ما يلي:
SELECT * FROM Employers WHERE EmployerId = 6;
فتكون النتيجة كما يلي:
EmployerId EmployerName ------------ -------------------- 3 Kamel Benkamel
للعثور على جميع العمال الذين تبدأ أسماؤهم بحرف "N"، يمكننا أن نكتب الكود التالي :
SELECT * FROM Employers WHERE EmployerName LIKE 'N%';
فتكون النتيجة:
EmployerId EmployerName ------------ -------------------- 7 Nassim 10 Nadir
يستخدم رمز النسبة المئوية (%) لتعويض حرف أو عدة حروف . لذلك، في هذا المثال، نعرض كل العمال التي تبدأ أسماؤهم بالحرف "N" مهما كان عدد احروف التي يحتويها الاسم (أي أن الاسم يبدأ بالحرف "N" يليه أي حرف أو عدة حروف).
مثال آخر على استخدام جملة WHERE هو لاسترداد مجموعة من القيم. على سبيل المثال، يمكن عرض السجلات التي تكون فيهاا قيمة الحقل EmployerId أقل من عدد ما ، أكبر من عدد ما ، أو داخل نطاق معين.
وهنا مثال على اختيار سجلات فقط مع EmployerId أقل من عدد معين :
مثال آخر على استخدام جملة WHERE هو لاسترداد مجموعة من القيم. على سبيل المثال، يمكن عرض السجلات التي تكون فيهاا قيمة الحقل EmployerId أقل من عدد ما ، أكبر من عدد ما ، أو داخل نطاق معين.
وهنا مثال على اختيار سجلات فقط مع EmployerId أقل من عدد معين :
SELECT * FROM Employers WHERE EmployerId < 4;
وتكون النتيجة:
EmployerId EmployerName ---------- ------------ 1 Amar Lakhdar 2 Kamel Benahmed 3 Kamel Benkamel
وهنا مثال على اختيار السجلات مع EmployerId داخل نطاق معين فقط :
SELECT * FROM Employers WHERE EmployerId BETWEEN 2 AND 5;
فنحصل على مايلي :
EmployerId EmployerName ---------- ------------ 2 Kamel Benahmed 3 Kamel Benkamel 4 Said 5 Faird
اختيار الأعمدة
يمكننا عرض بعض الأعمدة فقط من مجموعة النتائج. ويكون بكتابة أسماء الأعمدة مفصولة بفواصل في الاستعلام.
من الأفضل كتابة أسماء الأعمدة التي نحتاجها فقط، فاستعمال * في الاستعلام هو أمر غير محبب فهو يعتبر حمل زائد في تنفيد الأمر ويؤدي إلى عرض أعمدة غير مطلوبة أو غير ضرورية.
فلنقم بكتابة الاستعلام السابق، لكن في هذه المرة نعرض فقط أسماء العمال :
SELECT EmployerName FROM Employers WHERE EmployerId BETWEEN 2 AND 5;
فتكون النتيجة :
EmployerName ------------ Kamel Benahmed Kamel Benkamel Said Faird
استعمال جملة ORDER BY:
يمكننا استخدام جملة ORDER BY لترتيب السجلات التي يتم إرجاعها.
يمكننا إضافة ASC لترتيب تصاعدي أو DESC لترتيب تنازلي. إذا لم نضف أي عبارة ، فإنه سيتم استخدام الترتيب التصاعدي.
في المثال التالي نقوم بعرض السجلات مرتبة حسب EmployerName بترتيب تصاعدي:
SELECT * FROM employers ORDER BY EmployerName;
فتكون النتيجة كما يلي :
EmployerId EmployerName ---------- ------------ 1 Amar Lakhdar 5 Faird 8 Fouad 2 Kamel Benahmed 3 Kamel Benkamel 6 Lakhder 9 Mounir 10 Nadir 7 Nassim 4 Said 11 Tarik Moussafer
أما إذا أرادنا أن يكون الترتيب تنازليا فإننا نكتب ما يلي :
SELECT * FROM employers ORDER BY EmployerName DESC;
فتكون النتيجة كما يلي:
EmployerId EmployerName ---------- ----------- 11 Tarik Moussafer 4 Said 7 Nassim 10 Nadir 9 Mounir 6 Lakhder 3 Kamel Benkamel 2 Kamel Benahmed 8 Fouad 5 Faird 1 Amar Lakhdar
استعمال جملة "LIMIT":
يمكن استعمال الجملة "LIMIT " للحد من عدد السجلات المعروضة ، هذا الأمر يكون مفيد في حالة ما إذا كان عدد السجلات كبير جدا، ونريد عرض البعض منها فقط.
في المثال التالي نريد تحديد العرض في خمس سجلات فقط :
SELECT * FROM employers LIMIT 5;
وهذه النتيجة المطلوبة :
EmployerId EmployerName ---------- ------------ 1 Amar Lakhdar 2 Kamel Benahmed 3 Kamel Benkamel 4 Said 5 Faird
ليست هناك تعليقات:
إرسال تعليق