نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

SQL/Topics

أنواع البيانات أنواع البيانات التي يمكن استخدامها مع محركات قواعد البيانات المختلفة (البيانات العددية، والبيانات النصية، والوقت والتاريخ، والبيانات الثنائية ...إلخ.). أساسيات لغة SQL القيمة NULL يستخدم التعبير IS NULL للتأكد من خلو القيمة (أي لا توجد قيمة في الحقل المحدد). التعليقات Comments تضاف التعليقات إلى الشيفرة بهدف تسهيل قراءتها أو كتابة ملاحظات جانبية مساعدة. SELECT count(*); -- This comment continues to the end of line SELECT count(*); /* This is an inline ...

التعليقات في SQL

تضاف التعليقات إلى الشيفرة بهدف تسهيل قراءتها أو كتابة ملاحظات جانبية مساعدة، وتوجد طريقتان لإضافة التعليقات: الأولى: بإضافة شرطَتين متتاليتَن، وذلك للتعليقات السطرية (سطر واحد فقط). الثانية: بإضافة الرمزين ‎*/ عند بداية التعليقات وإنهائها بالرمزين ‎ */‎وذلك للتعليقات الممتدة عبر سطر أو أكثر. أمثلة SELECT count(*); -- This comment continues to the end of line SELECT count(*); /* This is an inline comment */; SELECT count(*), /* This is a multiline comment */ country; التوافقية SQLServer SQLite Oracle PostgreSQL ...

الشرط CASE في SQL

تستخدم لاختبار شرط معين بشكل مشابه لتعليمات if/else في لغات البرمجة الأخرى لتعيد أحد التعابير الممكنة، وتكون البنية العامة لها بالشكل الآتي: CASE WHEN condition THEN result [WHEN ...] [ELSE result] END إذ تعبر الكلمة condition عن الشرط المُختبَر، وكلمة result عن التعبير المُعاد. مثال ليكن الجدول الآتي students موجودًا في قاعدة البيانات: GPA Age Name StudentID 3.68 25 Mona 1024 3.57 24 Radi 1081 2.50 25 Leen 1012 4.00 26 Sarah 1085 1.96 22 Amin 1066 2.87 23 Yusuf ...

الاختبار الشرطي IF في SQL

تستخدم صيغة IF لاختبار شرط معين للتأكّد من تحقّقه أو عدم تحقّقه وإجراء ما يتناسب مع ذلك، وتكون البنية العامة لها بالشكل الآتي: IF condition THEN statements [ ELSEIF condition THEN statements [ ELSEIF condition THEN statements ...]] [ ELSE statements ] END IF; إذ تعبّر الكلمة condition عن الشرط المُختبَر، وكلمة statements عن التعليمات التي ستُجرى أو قد تكون تعابير بدلًا من التعليمات. ويلاحظ  في محركي PostgreSQL و Oracle أن الكلمة المفتاحية ELSEIF تصبح ELSIF، وفي محرك SQL Server ...

الأمر USE في SQL

يستخدم هذا الأمر لتحديد قاعدة البيانات التي يتَعامَل معها لنقل السياق context لها، وله الصيغة الآتية: USE { database_name} [;] مثال لاستخدام قاعدة البيانات المُسماة centre يكون الأمر بالشكل: USE centre; التوافقية SQLServer SQLite Oracle PostgreSQL MySQL نعم لا لا لا نعم مصادر توثيق USE في محرك MySQL توثيق USE في محرك SQLServer

بعض الدوال المساعدة في SQL

الدوال الرياضية الدالة مهمتها COUNT(*)‎ تعيد عدد السجلات الموجودة في الجدول MAX(col_name)‎ تعيد القيمة الأكبر في حقل col_name في سجلات الجدول MIN(col_name)‎ تعيد القيمة الأصغر في حقل col_name في سجلات الجدول AVG(col_name)‎ تعيد قيمة المتوسط الحسابي لقيم الحقل col_name في سجلات الجدول SUM(col_name)‎ تعيد قيمة مجموع قيم الحقل col_name في سجلات الجدول SQRT(m)‎ تعيد قيمة الجذر التربيعي للقيمة m (قد تكون قيمة أحد الحقول) RAND()‎ تعيد قيمة عشوائية مُولّدة واقعة في المجال ما بين القيمة 0 والقيمة 1 MOD(N,M)‎ تعيد ...

أنواع البيانات في SQL

تختلف أنواع البيانات بحسب محرك البيانات المستخدَم وستُذكر تباعًا. في محرك البيانات MySQL أنواع البيانات العددية Numeric النوع بداية المجال نهاية المجال مساحة التخزين TINYINT ‎-128 127 1 بايت SMALLINT ‎-32768 32767 2 بايت MEDIUMINT ‎-8388608 8388607 3 بايت INT ‎-2147483648 2147483647 4 بايت BIGINT ‎-9223372036854775808 9223372036854775807 8 بايت BIT 0 1 بت واحد البيانات العددية الثابتة مع الفاصلة العشرية النوع الوصف DECIMAL(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد ...

المعاملات Operators في SQL

المعاملات الرياضية Arithmetic Operators تستخدم لإجراء العمليات الحسابية على البيانات العددية في الجداول، وهي: المعامل المهمة + الجمع - الطرح * الضرب / القسمة % باقي القسمة ويضاف إليها المعامل ^ في محرك PostgreSQL للقيام بعملية الرفع إلى قوة. مثال إن كان الجدول الآتي items موجودًا في قاعدة البيانات: DiscountPercent No Price ItemID 20 2 25 157 10 2 5 203 30 3 10 109 فيمكن حساب قيمة الشراء النهائية من خلال إجراء العملية الحسابية وجمع النتائج باستخدام الدالة التجميعية ...

الأمر COMMIT في SQL

يستخدم هذا الأمر بهدف حفظ التغييرات المُجراة على قاعدة البيانات نتيجة لتنفيذ العمليات، إذ تحفظ كافة التغييرات منذ آخر أمر COMMIT أو ROLLBACK. صيغة الأمر: COMMIT [TRANSACTION]; مثال إن كان جدول الزبائن customers موجودًا في قاعدة البيانات على النحو الآتي: Bill OrderID FullName CustomerID 160 0291 Abd al-Salam Hadi 1156 170 0302 Ahmad Mostafa 1157 210 0203 Reem Hammad 1158 350 0294 Abd Allah Sadiq 1159 185 0255 Raghad al-Hamdan 1160 165 0276 Abd al-Razzaq Salloum 1161 175 0247 Hussam ...

حلقة WHILE في SQL

تهدف حلقة WHILE إلى تكرار عددٍ من التعليمات باستمرار تحقق الشرط ضمنها، إذ يُتأكَّد من تحقّق الشرط قبل البدء بتنفيذ التعليمات التي تحتويه، وتكون البنية العامّة لها: [ <<label>> ] WHILE boolean-expression LOOP statements END LOOP [ label ]; إذ يمكن تحديد تسمية label لها وتوضع التعليمات statements ضمنها بعد الكلمة المفتاحية LOOP. أما في محرك MySQL فتصبح بالشكل الآتي: [begin_label:] WHILE search_condition DO statement_list END WHILE [end_label]; وفي محرك SQL Server تكون بالشكل: WHILE boolean_expression { sql_statement | ...

المعاملات المنطقية في SQL

غالبًا ما تستخدم المعاملات المنطقية (AND و OR و NOT) في عبارة WHERE للربط ما بين الشروط أو نفيها، إذ يستخدم المعامل AND للربط ما بين الشروط للتأكد من تحققها جميعًا، أما معامل OR فيستخدم للربط ما بين الشروط للتأكد من تحقّق شرطٍ أو أكثر من بينها، أما NOT فيستخدم بغرض النفي، وتكون قيمة التعبير النهائية منطقية (Boolean) إما TRUE أو FALSE. ويُضاف لها معامل XOR في محرك MySQL والذي يتحقق من تحقّق شرطٍ واحدٍ فقط دون الشروط الأخرى. مثال ...

الاستعلامات الفرعية Subqueries في SQL

الاستعلام الفرعي هو استعلام واقعٌ ضمن استعلام آخر بهدف استخدام البيانات الناتجة عنه في الاستعلام الرئيسي الذي يحتويه، وغالبًا ما يكون الاستعلام الفرعي عبارة عن استعلام SELECT، ويمكن استخدامه مع أي من استعلامات SELECT أو INSERT أو UPDATE أو DELETE. استخدام الاستعلام الفرعي في استعلام SELECT تحديد الاستعلام الفرعي كأحد الأعمدة يُمكن تحديد أحد الأعمدة التي ستظهر بتنفيذ استعلام SELECT من خلال الاستعلام الفرعي الذي يعيد قيمة وحيدة لكل سجل. مثال إن كانت الجداول الآتية موجودة في قاعدة البيانات: الجدول ...

التسمية البديلة Alias في SQL

يمكن إطلاق تسمية على الجداول أو الحقول تسهيلًا للتعامل معها بالاسم البديل المؤقت (وقد يكون أكثر اختصارًا)، وذلك عند الحاجة إلى الوصول إلى نفس الجدول أو الحقل عدة مرات، ويعبًّر عن ذلك بالكلمة المفتاحية AS، ويمكن الاستغناء عنها عند تسمية الجدول. أمثلة في الاستعلام الآتي: SELECT Name AS Top Students, Age, GPA FROM students سيظهر العمود Name باسم Top Students في النتائج. وفي الاستعلام: SELECT StudentID, FirstName, Course, Lecturer FROM students st LEFT JOIN courses co ON st.CourseID = co.CourseID; سُمي الجدول students باسم st والجدول ...

تعبير الإعادة RETURN في SQL

تستخدم لإنهاء الدالة وإعادة قيمة ما للموقع الذي استُدعيت فيه الدالة، وتكون الصيغة العامّة بالشكل الآتي: RETURN [expression]; إذ إن expression هي قيمة التعبير التي ستُعاد (وقد تكون قيمة أوليّة scalar مباشرة أو قيمة مركّبة كسجل)، أما إن كانت الدالة تحتوي بتعريفها متحولات للخرج (من نوع OUT) أو عند الحاجة للخروج من الدالة فيُكتفى بكلمة RETURN فقط، أي بالشكل الآتي: RETURN; مثال تعيد الدالة الآتية double_it المُعرَّفة من المستخدم عبر محرك Oracle القيمة العددية (نوعها NUMBER) المُدخلة إليها بعد مضاعفتها: FUNCTION ...

التأكد من خُلوّ القيمة IS NULL في SQL

يستخدم التعبير IS NULL للتأكد من خلو القيمة (أي لا توجد قيمة في الحقل المحدد)، ويكون سياق التعبير بالشكل الآتي: column IS [NOT] NULL وغالبًا ما تستخدم في العبارة WHERE للتحقق من وجود القيمة في إحدى حقول السجلات. مثال إن كانت قاعدة البيانات تحتوي الجدول customers الآتي: Bill OrderID Phone FullName CustomerID 160 0291 NULL Abd al-Salam Hadi 1156 170 0302 (171) 555-2222 Ahmad Mostafa 1157 210 0203 (100) 555-4822 Reem Hammad 1158 350 0294 NULL Abd Allah Sadiq 1159 185 ...

تعديل الدالة ALTER FUNCTION في SQL

يستخدم هذا الأمر لتعديل تعريف دالة مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION، وله الصيغ الآتية: ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] RENAME TO new_name; لإعادة تسمية الدالة name (والتي معاملاتها محددة بالنوع argmode والاسم argname ونوع البيانات argtype) باسم جديد new_name. ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] OWNER TO { new_owner ...

إنشاء دالة CREATE FUNCTION في SQL

يستخدم هذا الأمر لتعريف دالة جديدة، وله البنية العامّة الآتية: CREATE [ OR REPLACE ] FUNCTION name ( [[argmode] [ argname ] argtype [, ...] ] ) [RETURNS rettype] AS 'definition' إذ ينشئ هذا الأمر دالةً جديدةً (أو يستبدلها في حال وجود دالة سابقة) باسم name وتوضع معاملاتها ما بين القوسين وذلك بتحديد نوع المعامل argmode (كدخل IN أو خرج OUT أو دخل وخرج معًا INOUT) ومن ثم اسم المعامل argname ونوع قيمته argtype وكما يمكن تحديد نوع القيمة ...

تحديد عدد السجلات في استعلامات SQL

يمكن تحديد عدد السجلات التي ستُجلب من الجدول ضمن استعلام SELECT أو التي ستُحذف من الجدول ضمن استعلام DELETE أو ستُحدَّث قيمها ضمن استعلام UPDATE، ولكن تختلف محركات قواعد البيانات فيما بينها بالصياغة العامة للاستعلام، وسيُذكر ذلك تباعًا. تحديد عدد سجلات النتائج يكون للاستعلام البنية العامة الآتية في محرك SQL Server، والتي تعتمد على الكلمة المفتاحية TOP: SELECT TOP number | percent col_name(s) FROM tbl_name WHERE condition; إذ يُعبّر المتحول number عن عدد السجلات المطلوبة، وتُعبّر الكلمة المفتاحية percent عن نسبة السجلات المئوية ...

التابع Cursor.execute()‎ في بايثون

ينفّذ التابع جملة SQL المعطاة. البنية العامة execute(sql[, parameters]) ‎المعاملات sql سلسلة نصية تتضمن جملة SQL المراد تنفيذها. يمكن استخدام جمل تتضمن معاملات (أي استخدام محتوى نائب placeholder عوضًا عن الحروف). تدعم وحدة sqlite3 نوعين من المحتويات النائبة، هما: علامة الاستفهام (نمط qmark) ومحتوى نائب مسمّى (نمط التسمية). ينفّذ تابع execute()‎ جملة SQL واحدة، ويطلق التابع تحذيرًا في حال استخدام أكثر من جملة واحدة. يمكن استخدام التابع executescript()‎ لتنفيذ جمل متعددة في استدعاء واحد. أمثلة يبين المثال التالي طريقة استخدام ...

الدالة sqlite3.complete_statement()‎ في بايثون

تتحقّق الدالة ممّا إذا كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة. البنية العامة sqlite3.complete_statement(sql) المعاملات sql سلسلة نصية تتضمن جملة SQL المراد التحقق ممّا إذا كانت تنتهي بفاصلة منقوطة أو لا. القيمة المعادة تعيد الدالة القيمة True إن كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة. أمثلة يمكن استخدام هذه الدالة لتوفير طبقة حماية لقاعدة بيانات SQLite، وكما هو موضح في المثال التالي: import sqlite3 con = sqlite3.connect(":memory:") con.isolation_level = None cur ...

التابع Cursor.executemany()‎ في بايثون

ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في تسلسل المعاملات المعطى. البنية العامة executemany(sql, seq_of_parameters) ‎المعاملات sql سلسلة نصية تتضمن جمل SQL المراد تنفيذها. seq_of_parameters ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters. تسمح وحدة sqlite3 كذلك باستخدام مكرِّر ينتج معاملات بدلًا عن إنتاج تسلسل. أمثلة يبين المثال التالي طريقة استخدام التابع: import sqlite3 class IterChars: def __init__(self): ...

التابع Cursor.executescript()‎ في بايثون

هذا التابع من التوابع غير المعيارية والذي يسهل عملية تنفيذ جمل SQL متعددة دفعة واحدة. ينفّذ هذا التابع جملة COMMIT في البداية، ثم ينفّذ بعدها شيفرة SQL المعطاة في المعاملات. البنية العامة executescript(sql_script) ‎المعاملات sql_script يمكن لهذا المعامل أن يكون نسخة من الكائن str. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 con = sqlite3.connect(":memory:") cur = con.cursor() cur.executescript(""" create table person( firstname, lastname, ...

تحديد مجال أو عدد محدّد من القيم في SQL

معامل IN يستخدم لتحديد عددٍ معيّنٍ من القيم المحتملة لأحد حقول البيانات. مثال إن كان الجدولان الآتيان موجوديَن في قاعدة البيانات: الجدول الأول: جدول السيارات cars Colour Price Year Company Model CarID White 22,500 2018 KIA Optima 05081 Red 25,995 2017 KIA Optima Hybrid 05082 Red 31,900 2018 KIA Stinger 05083 Black 31,990 2017 KIA Cadenza 05084 Blue 23,240 2018 KIA Niro 05085 Grey 14,200 2018 KIA Rio 5-Door 05086 Blue 18,200 2018 KIA Forte5 05087 الجدول الثاني: جدول الزبائن ...

التابع Connection.iterdump()‎ في بايثون

يعيد التابع مكرِّرًا iterator يمكن استخدامه لعرض (dump) قاعدة البيانات بصيغة SQL النصية. البنية العامة iterdump() ‎القيمة المعادة يعيد التابع مكرِّرًا iterator يمكن استخدامه لعرض (dump) قاعدة البيانات بصيغة SQL النصية. هذا التابع مفيد عند التعامل مع قواعد البيانات المخزّنة في الذاكرة. يقدّم هذا التابع نفس الإمكانات التي يقدّمها الأمر ‎.dumb في صدفة sqlite3. أمثلة يعرض المثال التالي كيفية تحويل الملف existing_db.db إلى ملف عرض SQL يحمل الاسم dump.sql: import sqlite3 con = sqlite3.connect('existing_db.db') with open('dump.sql', 'w') as f: ...

التابع Connection.execute()‎ في بايثون

يستدعي هذا التابعُ التابعَ Cursor.execute()‎ مع تمرير المعاملات المعطاة. البنية العامة execute(sql[, parameters]) ‎ المعاملات sql سلسلة نصية تتضمن جملة SQL المراد تنفيذها. القيمة المعادة هذا التابع طريقة مختصرة لإنشاء كائن مؤشر عن طريق استدعاء التابع cursor()‎، حيث يستدعي التابع execute()‎ في كائن المؤشر مع تمرير المعاملات المعطاة، ثم يعيد كائن المؤشر. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') c = conn.cursor() symbol = 'RHAT' c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) انظر أيضًا التابع Connection.excutemany()‎: ...

التابع Connection.executemany()‎ في بايثون

يستدعي هذا التابعُ التابعَ Cursor.executemany()‎ مع تمرير المعاملات المعطاة. البنية العامة executemany(sql[, parameters]) ‎المعاملات sql سلسلة نصية تتضمن جملة SQL المراد تنفيذها. القيمة المعادة هذا التابع هو طريقة مختصرة لإنشاء كائن مؤشر عن طريق استدعاء التابع cursor()‎، حيث يستدعي التابع executemany()‎ في كائن المؤشر مع تمرير المعاملات المعطاة، ثم يعيد كائن المؤشر. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ...

التابع Connection.executemany()‎ في بايثون

يستدعي هذا التابعُ التابعَ Cursor.executemany()‎ مع تمرير المعاملات المعطاة. البنية العامة executemany(sql[, parameters]) ‎المعاملات sql سلسلة نصية تتضمن جملة SQL المراد تنفيذها. القيمة المعادة هذا التابع هو طريقة مختصرة لإنشاء كائن مؤشر عن طريق استدعاء التابع cursor()‎، حيث يستدعي التابع executemany()‎ في كائن المؤشر مع تمرير المعاملات المعطاة، ثم يعيد كائن المؤشر. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ...

التابع Connection.create_collation()‎ في بايثون

ينشئ التابع مقارنة collation يحمل الاسم المعطى مع الكائن القابل للاستدعاء المعطى. البنية العامة create_collation(name, callable) ‎المعاملات name اسم المقارنة المراد إنشاؤها. callable كائن قابل للاستدعاء. سيُمرّر وسيطان نصّيان إلى الكائن القابل للاستدعاء، وسيعيد النتيجة ‎-1 إن كان ترتيب الوسيط الأول أدنى من الوسيط الثاني، ويعيد 0 إن كان الوسيطان متساويين، ويعيد 1 إن كان ترتيب الوسيط الأول أعلى من الوسيط الثاني. لاحظ أنّ هذه المقارنة تتحكّم في عبارة (ORDER BY في SQL) لكي لا تؤثّر عمليات المقارنة على عمليات ...

مقدمة إلى التعامل مع قواعد البيانات في Laravel

مقدمة يُبسّط Laravel التعامل مع قواعد البيانات بشكل كبير عبر مجموعة متنوعة من الأسندة الخلفية (backends) قواعد البيانات إمّا باستخدام  لغة الاستعلام البنيوية SQL خام أو باستخدام منشئ الاستعلامات الفصيح (fluent query builder)، أو باستخدام رابط الكائنات بالعلاقات Eloquent. يدعم Laravel حاليًا أربع قواعد بيانات: MySQL PostgreSQL SQLite SQL Server الضبط تقع إعدادات قاعدة بيانات تطبيقك في config/database.php. تستطيع في هذا الملف تعريف جميع اتصالات قاعدة بياناتك لإضافةً لتحديد الاتصال الافتراضي. تتوافر أمثلة عن معظم أنظمة قواعد البيانات المدعومة في ...

التابع Connection.set_authorizer()‎ في بايثون

يسجّل هذا التابع كائن استدعاء خلفيٍّ، وينفّذ هذا الكائن في كل محاولة للوصول إلى عمود في جدول ضمن قاعدة البيانات. البنية العامة set_authorizer(authorizer_callback) ‎ المعاملات authorizer_callback كائن استدعاء خلفي يُنفّذ في كل محاولة للوصول إلى أعمدة الجداول في قاعدة البيانات. يجب أن يعيد الاستدعاء الخلفية النتيجة SQLITE_OK إن كان الوصول مسموحًا به، والنتيجة SQLITE_DENY إن كان المطلوب تجاهل جملة SQL بأكملها مع إطلاق خطأ، والنتيجة SQLITE_IGONRE إن كن المطلوب التعامل مع العمود على أنّه يحمل القيمة NULL. هذه الثوابت متاحة ...

الدالة sqlite3.create_function()‎ في بايثون

ينشئ التابع دالة معرفة من قبل المستخدم يمكن استعمالها لاحقًا ضمن جمل SQL. البنية العامة create_function(name, num_params, func) ‎المعاملات name اسم الدالة المراد إنشاؤها. num_params عدد المعاملات التي تستقبلها الدالة (يمكن تعيين القيمة ‎-1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات). func كائن قابل للاستدعاء callable في بايثون، والذي سيستدعى كدالة SQL. القيمة المعادة يمكن للدالة أن تعيد أيّة قيمة من القيم المدعومة في SQLite وهي: bytes، str، int، float، None. أمثلة يبين المثال التالي طريقة استخدام الدالة: import ...

كائنات Cursor‎ في بايثون

كائنات Cursor هي وسيلة التواصل بين المستخدم وقاعدة البيانات، حيث يمكن باستخدام الخصائص والتوابع التي تقدّمها هذه الكائنات تنفيذ جمل SQL وإجراء الاستعلامات وجلب النتائج من قاعدة البيانات. خصائص كائنات Cursor يمتلك كائن المؤشر الخصائص التالية: الخاصية rowcount بالرغم من أنّ صنف Cursor في وحدة sqlite3 يتضمّن هذه الخاصية، إلا أنّ الدعم الذي يقدّمه محرّك SQLite لتحديد "عدد الصفوف المتأثرة"/"عدد الصفوف المحدّدة" جيّد أيضًا. يُجمع عدد التعديلات في الخاصية rowcount عند تنفيذ جمل الاستعلام بواسطة التابع executemany()‎. تتطلب معايير بايثون ...

المعامل EXISTS

يستخدم المعامل EXISTS للتأكد من وجود سجلات ناتجة عن الاستعلام الفرعي المستخدم في الاستعلام الرئيسي. مثال إن كان في قاعدة البيانات الجدولان الآتيان: الجدول الأول: جدول الطلاب students RegDate CourseID LastName FirstName StudentID ‎07-JUL-2017‎ 0206 Najjar Rama 1147 ‎08-NOV-2017‎ 0604 Kordi Jenan 1148 ‎07-JUL-2017 0206 Bitar Rahaf 1149 ‎20-AUG-2017 0607 Taweel Farah 1150 ‎08-NOV-2017 0610 Arab Rami 1151 ‎24-OCT-2017 0803 Akkad Aya 1152 ‎08-NOV-2017 0504 Haddad Abed 1153 ‎20-AUG-2017 0801 Fares Tasneem 1154 ‎24-OCT-2017 0607 Hamsho Monther 1155 ‎30-SEP-2017 0607 ...

الدالة addslashes()‎ في PHP

(PHP 4, PHP 5, PHP 7) تضيف الدالة addslashes()‎ الخطوط المائلة العكسية (backslashes). الوصف string addslashes (string $str). تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف المُراد تهريبها. تتمثل هذه المحارف فيما يلي:   علامات الاقتباس المفردة (') علامات الاقتباس المزدوجة (") الخطوط المائلة العكسية (\) NUL (البايت NUL) تستخدم الدالة addslashes()‎ لتهريب أحد المحارف المذكورة آنفًا داخل كود برمجي بلغة PHP: <?php $str = "O'Reilly?"; eval("echo '" . addslashes($str) . "';"); ?> قبل نسخة 5.4.0  للغة PHP، كانت ميزة magic_quotes_gpc مُفَعلة ...

تهجيرات Active Record في ريلز

التهجيرات (Migrations) هي ميزة من Active Record التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام روبي لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات. التوابع التي يوفرها Active Record لتعديل قاعدة البيانات. المهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك. العلاقة بين التهجيرات والملف schema.rb. نظرة عامة على التهجيرات إن التهجيرات هي طريقة مناسبة وسلسة ...

النشر على الخادم الإنتاجي في Laravel

مقدمة عندما تكون جاهزًا لنشر تطبيق Laravel على الخادوم الإنتاجي، هناك بعض الأشياء المهمة التي يمكنك القيام بها للتأكد من تشغيل التطبيق بأقصى كفاءة ممكنة. في هذا المستند، سنغطي بعض نقاط البداية الرائعة للتأكد من نشر تطبيق Laravel بشكل صحيح. ضبط الخادوم Nginx إذا كنت تقوم بنشر تطبيقك على خادوم Nginx، فيمكنك استخدام ملف التهيئة التالي كنقطة بداية لتهيئة خادوم الويب الخاص بك. على الأرجح، يجب تخصيص هذا الملف بناءً على تهيئة خادومك. إذا كنت ترغب في المساعدة في إدارة ...

التابع Connection.set_progress_handler()‎ في بايثون

يسجّل هذا التابع استدعاءً خلفيًا يجري تنفيذه لكل n من تعليمات SQLite في الجهاز الافتراضي virtual machine. هذا التابع مفيد عند الحاجة إلى اجراء استدعاء من SQLite أثناء عملية طويلة، كتحديث واجهة رسومية مثلًا. البنية العامة set_progress_handler(handler, n) المعاملات handler يمكن استدعاء التابع مع تمرير القيمة None للمعامل handler للتخلص من أي استدعاء خلفي معدّ مسبقًا. تؤدي إعادة قيمة غير الصفر من الاستدعاء الخلفي إلى إنهاء الاستعلام الحالي وإطلاق الاستثناء OperationalError. n عدد تعليمات SQLite. انظر أيضًا التابع Connection.set_authorizer()‎:يسجّل هذا ...

تعديل قاعدة البيانات ALTER DATABASE

يُمكن تعديل صفات قاعدة البيانات من خلال هذا الأمر الذي له الصيغ الآتية: ALTER DATABASE name RENAME TO new_name; أو في محرك SQL Server: ALTER DATABASE name MODIFY NAME = new_name; لإعادة تسمية قاعدة البيانات باسم جديد new_name ولا تمكن إعادة تسمية قاعدة البيانات المستخدمة حاليًا إذ يجب الاتصال بقاعدة بيانات أخرى ريثما تُعاد تسمية قاعدة البيانات الحالية. ALTER DATABASE name OWNER TO new_owner; التعليمة السابقة لنقل ملكية قاعدة البيانات باسم name إلى مالك آخر باسم new_owner. ALTER DATABASE name RESET ALL; أما التعليمة ...

التابع Connection.set_trace_callback()‎ في بايثون

يسجل التابع trace_callback يجري استدعاؤه لكل جملة SQL تنفّذ بواسطة SQLite. البنية العامة set_trace_callback(trace_callback) المعاملات trace_callback يأخذ الاستدعاء الخلفي وسيطًا واحدًا وهو عبارة الاستعلام (كسلسلة نصية) التي سيجري تنفيذها، وتتجاهل اللغة القيمة المعادة من الاستدعاء الخلفي. يجدر الانتباه إلى أنّ محرّك SQLite لا ينفّذ العبارات الممرّة إلى توابع Cursor.execute()‎ وحسب، بل هناك مصادر أخرى منها عملية إدارة الإجراءات في وحدة بايثون، وعملية تنفيذ المشغّلات triggers المعرّفة في قاعدة البيانات الحالية. يؤدي تمرير القيمة None إلى المعامل trace_callback إلى تعطيل الاستدعاء ...

الخاصية content

الخاصية content في CSS تُستخدَم مع العنصرين الزائفين ‎::before و ‎::after لتوليد محتوى في العنصر. بطاقة الخاصية القيمة الابتدائية normal تُطبَّق على العنصرين الزائفين ‎::before و ‎::after. قابلة للوراثة لا قابلة للحركة لا القيمة المحسوبة ستكون القيمة هي normal دومًا إذا طُبِّقت هذه الخاصية على العناصر العادية. وإذا كانت القيمة normal وطُبِّقَت على العنصرين الزائفين ‎::before و ‎::after فستكون القيمة المحسوبة هي none. إذا استخدمنا روابط URL النسبية فستحوِّل إلى روابط مطلقة. إذا استخدمنا الدالة attr(x)‎ فستحوِّل القيمة إلى سلسلة نصية. ...

حذف الفهرس DROP INDEX

يستخدم هذا الأمر لحذف فهرس أو أكثر في قاعدة البيانات وفق البنية العامّة الآتية: DROP INDEX [ IF EXISTS ] name [ CASCADE | RESTRICT ] إذ يُحذف الفهرس المحدد باسم name، وتمنع IF EXISTS حدوث أي خطأ في حال عدم وجود هذا الفهرس في قاعدة البيانات، أما الكلمة المفتاحية CASCADE فهي للإعلام بحذف أي كائنات objects معتمدة على الفهرس المحذوف، وبالحالة الافتراضية فإن RESTRICT تمنع حذف الفهرس إن كان هناك اعتماد عليه من قبل كائن ما. بعض أمور التوافقية في ...

كائنات Connection‎ في بايثون

تقدّم كائنات الاتصال Connection عددًا من الخصائص والتوابع التي تساعد المستخدم في التعامل مع قواعد بيانات SQLite، كالاتصال بقاعدة البيانات وتحميل الملحقات وإنشاء النسخ الاحتياطية وغيرها. تنشأ كائنات الاتصال كنتيجة لاستدعاء الدالة sqlite3.connect()‎. خصائص كائنات الاتصال تمتلك كائنات الاتصال بقواعد البيانات SQLite الخصائص التالية: الخاصية isolation_level يمكن استخدام هذه الخاصية لمعرفة مستوى العزل الافتراضي الحالي أو تعيينه. تأخذ الخاصية القيمة None لنمط الحفظ التلقائي autocommit أو إحدى القيم "DEFERRED" أو "IMMEDIATE" أو "EXCLUSIVE". راجع قسم التحكم بالإجراءات للمزيد من المعلومات. ...

كائنات Connection‎ في بايثون

تقدّم كائنات الاتصال Connection عددًا من الخصائص والتوابع التي تساعد المستخدم في التعامل مع قواعد بيانات SQLite، كالاتصال بقاعدة البيانات وتحميل الملحقات وإنشاء النسخ الاحتياطية وغيرها. تنشأ كائنات الاتصال كنتيجة لاستدعاء الدالة sqlite3.connect()‎. خصائص كائنات الاتصال تمتلك كائنات الاتصال بقواعد البيانات SQLite الخصائص التالية: الخاصية isolation_level يمكن استخدام هذه الخاصية لمعرفة مستوى العزل الافتراضي الحالي أو تعيينه. تأخذ الخاصية القيمة None لنمط الحفظ التلقائي autocommit أو إحدى القيم "DEFERRED" أو "IMMEDIATE" أو "EXCLUSIVE". راجع قسم التحكم بالإجراءات للمزيد من المعلومات. ...

الوحدة sqlite3 في بايثون

SQLite هي مكتبة مكتوبة بلغة C تتيح إنشاء قواعد بيانات على القرص الصلب ولا تحتاج إلى خادوم خاص لمعالجتها، وتتيح الوصول إلى قاعدة البيانات باستخدام نسخة غير قياسية من لغة الاستعلام SQL. تستخدم بعض التطبيقات والبرامج قاعدة بيانات SQLite لتخزين بياناتها الداخلية، ويمكن إنشاء نماذج أولية من التطبيق باستخدام SQLite ثم نقل الشيفرة إلى قواعد بيانات أكبر مثل PostgreSQL أو Oracle. كُتبت وحدة sqlite3 من قبل Gerhard Häring، وتقدّم واجهة SQL متوافقة مع معايير DB-API 2.0 الموصوفة في PEP 249. ...

التابع Connection.executescript()‎ في بايثون

يستدعي هذا التابعُ التابعَ Cursor.executescript()‎ مع تمرير المعاملات المعطاة. البنية العامة executescript(sql_script) ‎المعاملات sql_script سلسلة نصية تتضمن شيفرة SQL المراد تنفيذها. القيمة المعادة هذا التابع هو طريقة مختصرة لإنشاء كائن مؤشر عن طريق استدعاء التابع cursor()‎، حيث يستدعي التابع executescript()‎ في كائن المؤشر مع تمرير قيمة المعامل sql_script، ثم يعيد كائن المؤشر. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') conn.executescript(""" insert into recipe (name, ingredients) values ('broccoli stew', 'broccoli peppers cheese tomatoes'); ...

استعلام DELETE

يُستخدم استعلام DELETE لحذف سجل أو أكثر، وله البنية العامة: DELETE FROM tbl_name WHERE condition; إذ يُحدد الشرط الذي ستُحذف السجلات وفقًا له في عبارة WHERE. أما تنفيذ الاستعلامَيْن الآتيين: DELETE * FROM tbl_name; DELETE FROM tbl_name; فيؤدي لحذف كافة السجلات الموجودة في الجدول. مثال إن كان جدول الزبائن customers موجودًا في قاعدة البيانات على النحو الآتي: Bill OrderID FullName CustomerID 160 0291 Abd al-Salam Hadi 1156 170 0302 Ahmad Mostafa 1157 210 0203 Reem Hammad 1158 350 0294 Abd Allah Sadiq 1159 ...

تعديل الفهرس ALTER INDEX

يستخدم هذا الأمر لتعديل الفهرس المُنشأ عبر الأمر CREATE INDEX، وله الصيغ الآتية: ALTER INDEX [ IF EXISTS ] name RENAME TO new_name لتغيير اسم الفهرس المسمى name (إن وُجد) ليصبح باسم new_name. ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter = value [, ... ] ) لتعديل أيّ من قيم معاملات التخزين المتعلقة بالفهرس (إن وُجد). ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] ) لإعادة ضبط كافة قيم معاملات التخزين لهذا الفهرس (إن وُجد) ...

الأمر START TRANSACTION

يُستخدم هذا الأمر للإعلام بالبدء بإجراء مجموعة من العمليات التي قد تنتهي بأمر COMMIT أو ROLLBACK، وله الصيغة التالية: START TRANSACTION; وتختلف هذه الصيغة باستخدام الكلمة المفتاحية BEGIN في محرك SQL Server لتصبح: BEGIN TRANSACTION; أما في محرك SQLite فهي الكلمة المفتاحية BEGIN فقط، أيّ: BEGIN; وفي محرك Oracle يصبح الأمر على النحو الآتي: SET TRANSACTION NAME 'name'; ويكون هذا الأمر مسؤولًا عن البدء بالعمليات وتسميتها بآن واحد بالاسم الذي يُحدد عبر name. مثال إذا كان الجدول الآتي موجودًا في قاعدة البيانات: Bill OrderID ...

أساسيات Active Record في ريلز

هذا الدليل هو مدخل إلى المكتبة Active Record. بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM (اختصار للعبارة Object Relational Mapping أي "ربط الكائنات العِلاقيَّة") وما هو Active Record وكيفية استعمالهما في ريلز. كيف ينسجم Active Record مع النموذج MVC (اختصار للعبارة Model-View-Controller). كيفية استعمال نماذج Active Record (أي Active Record models) لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة (relational database). اصطلاحات تسمية مخطَّط Active Record. مفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات. ما هو Active Record؟ ...

التابع Connection.create_aggregate()‎ في بايثون

ينشئ التابع دالة تجميع aggregate function معرّفة من قبل المستخدم. البنية العامة create_aggregate(name, num_params, aggregate_class) المعاملات name اسم دالة التجميع المراد إنشاؤها. num_params عدد المعاملات التي تستقبلها الدالة (يمكن تعيين القيمة ‎-1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات). aggregate_class صنف تجميع يجب أن يتضمّن تابع step، والذي يأخذ المعامل num_params والذي يحدّد عدد المعاملات في الدالة التي ينشئها التابع (يمكن تعيين القيمة ‎-1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات)، وتابع finalize والذي سيعيد النتيجة النهائية من ...

الربط الداخلي INNER JOIN

يُستخدم هذا النوع من الربط ما بين جدولين (أو أكثر) وذلك لتحديد بعض السجلات من الجدول اليساري والجدول اليميني بحيث تحقق شرط الربط، وتكون له البنية العامّة الآتية: SELECT col_names FROM tbl_name1 [INNER] JOIN tbl_name2 ON col_name1 = col_name2 وكما يُلاحظ أن وجود كلمة INNER اختياريّ لأن الربط الداخلي هو الحالة الافتراضية في الربط. مثال إن كانت قاعدة بيانات أحد المراكز التعليمية تحتوي على الجداول الآتية: الجدول الأول: جدول الطلاب students (المفتاح الأولي فيه هو عمود StudentID والمفتاح الثانوي هو عمود CourseID ...

أدوات Active Support في ريلز

Active Support هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا. في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) ...

الاستعلام UPDATE

يُستخدم هذا الاستعلام من أجل تحديث قيم البيانات المخزنة في سجلات الجداول. البنية العامة للاستعلام: UPDATE tbl_name SET col_name = [|DEFAULT], col_name = value [|DEFAULT], … WHERE condition إذ من الممكن تحديث عدة قيم في عدة سجلات ضمن نفس الاستعلام، وعند استخدام الكلمة المفتاحية DEFAULT ستصبح القيمة في الحقل هي القيمة الافتراضية لنوع البيانات فيه، أما إن كان الاستعلام بالشكل: UPDATE tbl_name SET col_name = value [|DEFAULT], col_name = value [|DEFAULT], … فتنفيذه يؤدي لتعديل قيمة الحقل المحدد بكافة السجلات الموجودة في الجدول ...

مفاتيح الجداول

تستخدم المفاتيح بهدف الربط ما بين الجداول في قواعد البيانات. المفتاح الأوليّ PRIMARY KEY هو عمود (أو أكثر) من الجدول والذي يميّز السجلات عن بعضها، تكون القيم فيه فريدة (غير مكررة) ولا يمكن ألّا يحتوي قيمة (قيمته NULL)، ويكون للجدول مفتاح أولي وحيد. المفتاح الثانويّ FOREIGN KEY هو عمود (أو أكثر) من الجدول والذي يمكن عدّه مرجعيةً (reference) لعمود آخر في جدول ثانٍ (وغالبًا ما يكون هذا العمود هو المفتاح الأولي للجدول الثاني). مثال تحتوي قاعدة بيانات أحد المراكز التعليمية ...

الربط بين الجداول

تخزن البيانات عادةً في قواعد البيانات بأكثر من جدول لتسهيل تنظيمها وإدارتها، وتُربط هذه الجداول فيما بينها من خلال الأعمدة المترابطة فيما بينها، وذلك بالاعتماد على مفهومي المفتاح الأولي Primary Key والمفتاح الثانوي Foreign Key، وله عدة أنواع ستُذكر تباعًا. أنواع ربط الجداول توجد عدة أنواع للربط بين جدولين (أو أكثر)، إذ يسمى الجدول الأول يساريًا والجدول الثاني يمينًا: الربط الداخلي INNER JOIN: تحديد بعض السجلات من الجدول اليساري والجدول اليميني بحيث تحقق شرط الربط. الربط اليساري LEFT JOIN: تحديد ...

الدالة csv.writer()‎‎ في بايثون

تعيد الدالة كائن كتابة وظيفته تحويل بيانات المستخدم إلى سلاسل نصية مفصولة عن بعضها البعض وكتابتها في الكائن المعطى وهو كائن شبيه بالملفات، ويمكن كذلك استخدام أيّ كائن يمتلك التابع write()‎. إن كانت قيمة هذا المعامل كائن ملف، فيجب أن يكون مفتوحًا مع المعامل newline=''‎. ملاحظة: إن لم تحدد القيمة newline=''‎ لن تُفسّر الأسطر الجديدة في الحقول المحاطة بعلامات اقتباس بطريقة صحيحة، وسيضاف رمز ‎\r إضافي إلى الأسطر المنتهية بالرمز ‎\r\n في المنصّات التي تستخدم الرمز الأخير في نهايات الأسطر. ...

الخاصية counter-increment

الخاصية counter-increment في CSS تُزيد أو تُنقِص قيمة أحد عدّادات CSS بقيمة معيّنة، ويمكن إعادة تعيين العدّاد إلى رقم معيّن باستخدام الخاصية counter-reset. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على كل العناصر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* الزيادة بمقدار 1 */ counter-increment: my-counter; /* الإنقاص بمقدار 1 */ counter-increment: my-counter -1; /* زيادة أحد العدادات بمقدار 1 وإنقاص الثاني بمقدار 4*/ counter-increment: counter1 counter2 -4; /* عدم زيادة أو إنقاص أيّ عداد، وتُستخدَم لتجاوز القواعد التي لها أولوية أقل */ counter-increment: ...

إلغاء صلاحيات الوصول REVOKE

يستخدم هذا الأمر لإلغاء صلاحيات الوصول access privileges لمستخدمٍ أو مجموعة مستخدمين أو أكثر، وله إحدى الصيغ العامّة الآتية (بحسب محركات البيانات المختلفة): في محرك البيانات PostgreSQL REVOKE { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [, ...] | ALL [ PRIVILEGES ] } ON [ TABLE ] tbl_name [, ...] FROM { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] }; إلغاء صلاحية تنفيذ استعلامات SELECT و INSERT و UPDATE و DELETE ...

الخاصية counter-reset

الخاصية counter-reset في CSS تُعيد ضبط قيمة أحد عدّادات CSS إلى قيمة معيّنة، بينما يمكن زيادة أو إنقاص قيمة العداد باستخدام الخاصية counter-increment. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على كل العناصر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* ضبط قيمة العداد إلى 0 */ counter-reset: my-counter; /* ضبط قيمة العداد إلى -1 */ counter-reset: my-counter -1; /* ضبط قيمة أوّل عداد إلى 1 وثاني عدّاد إلى 4 */ counter-reset: counter1 1 counter2 4; /* إلغاء عملية إعادة التعيين، وتُستخدَم لتجاوز القواعد ...

Kotlin/Native

ما هي تقنية Kotlin/Native؟ تُستخدَم تقنية Kotlin/Native لترجمة شيفرات Kotlin إلى الصيغة الثنائيّة الأساسيّة (native binaries) والتي لا تتطلَّب آلةً افتراضيّة (virtual machine) لتشغيلها، وتشمل كلًا من المعالجات الخلفيّة (أو السند الخلفي [backend]) المعتمدة على تقنيات مكتبة LLVM للمترجِم (compiler) وكذلك تعريف الاستخدام الأساسيّ (native implementation) من مكتبة التشغيل (runtime) في Kotlin، وقد صُمّمت هذه التقنية للسماح بالترجمة في منصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة iOS والأهداف المدمجة [embedded targets])، أو عندما يحتاج ...

منشئ الاستعلامات في Laravel

مقدمة يوفّر منشئ استعلامات قاعدة بيانات Laravel واجهة ملائمة وسلسة لإنشاء وإدارة استعلامات قاعدة البيانات. يمكن استخدامه لتنفيذ معظم عمليات قاعدة البيانات بتطبيقك كما أنه يعمل على جميع أنظمة قواعد البيانات المدعومة. يستخدم منشئ استعلامات Laravel ارتباط المعاملة PDO لحماية تطبيقك من هجمات حقن SQL. لا حاجة لتنظيف السلاسل النصيّة التي تُمرّر كارتباطات. استرداد النتائج استرداد جميع الصفوف من الجدول تستطيع استخدام التابع table على الواجهة الساكنة DB لبدء استعلام. يرد التابع table نسخة منشئ استعلامات فصيحة (fluent) للجدول المحدد، ...

منح صلاحيات الوصول GRANT

يستخدم هذا الأمر لمنح صلاحيات الوصول access privileges لمستخدمٍ أو مجموعة مستخدمين أو أكثر، وله إحدى الصيغ العامّة الآتية (بحسب محركات البيانات المختلفة): في محرك البيانات PostgreSQL GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [, ...] | ALL [ PRIVILEGES ] } ON [ TABLE ] tbl_name [, ...] TO { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] } [ WITH GRANT OPTION ]; إعطاء صلاحية تنفيذ استعلامات SELECT و ...

تعديل المستخدم ALTER USER

يُستخدم هذا الأمر للتعديل من خصائص وسماحيات المستخدم، وله الصيغ الآتية (بحسب محركات قواعد البيانات المختلفة): في محرك البيانات PostgreSQL ALTER USER {name | CURRENT_USER} [ WITH ] option [ ... ] إذ إن name هو اسم المستخدم الذي ستطرأ التعديلات عليه، ويمكن أن يكون الخيار option أحد الكلمات المفتاحية الآتية: الخيار مهمته  SUPERUSER لجعل المستخدم SUPERUSER أي له كافة صلاحيات الوصول access privileges في قاعدة البيانات CREATEDB لإعطاء المستخدم صلاحية إنشاء قاعدة بيانات جديدة CREATEROLE لإعطاء المستخدم صلاحية إنشاء مستخدم ...

إنشاء مستخدم جديد CREATE USER

يُستخدم هذا الأمر لإنشاء مستخدم جديد، وله الصيغ الآتية (بحسب محركات قواعد البيانات المختلفة). في محرك البيانات PostgreSQL CREATE USER name [ [ WITH ] option [ ... ] ] إذ إن name هو اسم المستخدم المنشَأ ويمكن أن يكون الخيار option أحد الكلمات المفتاحية الآتية: الخيار مهمته  SUPERUSER لجعل المستخدم SUPERUSER أي له كافة صلاحيات الوصول access privileges في قاعدة البيانات CREATEDB لإعطاء المستخدم صلاحية إنشاء قاعدة بيانات جديدة CREATEROLE لإعطاء المستخدم صلاحية إنشاء مستخدم آخر جديد CONNECTION LIMIT connlimit ...

عبارة HAVING

تستخدم عبارة  HAVING ضمن استعلام SELECT لتحديد شرطٍ معينٍ عند تجميع السجلات مع بعضها GROUP BY، وقد أُضيف إلى لغة SQL لأنه لا يمكن استخدام عبارة WHERE مع الدوال التجميعيّة مثل SUM و MIN  و MAX ...إلخ. تجميع السجلات وفق شرط مُحدّد ليكن الجدول الآتي (patients) موجودًا في قاعدة البيانات: Doctor Section Age Patient PatientID Nasser Cardiology 76 Salem 1029 Abd Allah Neurology 17 Hasan 896 Reem Maternity 23 Nadine 964 Fateh Cardiology 65 Rami 1070 Kareem Neurology 19 Abd ...

الدالة sqlite3.connect()‎ في بايثون

تفتح هذه الدالة اتصالًا مع قاعدة بيانات SQLite عبر الملف المعطى، وتعيد افتراضيًا كائن اتصال ما لم تحدد قيمة أخرى في المعاملات. البنية العامة sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri]) المعاملات database كائن شبيه بالمسار path-like يمثّل مسار ملف قاعدة البيانات (المسار المطلق أو النسبي للمجلد الحالي) الذي سيتم الاتصال به. يمكن استخدام القيمة ":memory:" لفتح اتصال مع قاعدة بيانات تخزّن في ذاكرة الوصول العشوائي RAM بدلًا من القرص الصلب. إذا أجريت عدة اتصالات بقاعدة بيانات واحدة، وأجرى ...

الربط اليساري LEFT JOIN

يُستخدم هذا النوع من الربط ما بين جدولين (أو أكثر) وذلك لتحديد كافة السجلات من الجدول اليساري وبعض السجلات من الجدول اليميني التي تحقق شرط الربط، وتكون له البنية العامّة الآتية: SELECT col_names FROM tbl_name1 LEFT [OUTER] JOIN tbl_name2 ON col_name1 = col_name2 مثال إن كانت قاعدة بيانات أحد المراكز التعليمية تحتوي على الجداول الآتية: الجدول الأول: جدول الطلاب students (المفتاح الأولي فيه هو عمود StudentID والمفتاح الثانوي هو عمود CourseID للربط مع جدول الدورات التدريبية) RegDate CourseID LastName FirstName StudentID ...

الدالة itertools.groupby()‎ في بايثون

تعيد الدّالة itertools.groupby()‎ مُكرّرًا يُعيد مفاتيح مُتسلسلة ومجموعات (groups) تنتمي إلى هذه المفاتيح من الكائن القابل للتّكرار المعطى. العمليّة التي تقوم بها الدّالة مُشابهة لكيفيّة عمل المُرشّح uniq في أنظمة Unix. إذ تُولّد نقطة توقّف (break) أو مجموعة جديدة في كلّ مرّة تتغيّر فيها قيمة الدّالةِ المفتاح (لذا يجب في الغالب ترتيب البيانات باستعمال نفس الدّالة المفتاح). وطريقة العمل هذه تختلف عن طريقة عمل عبارة GROUP BY في لغة SQL التي تجمع العناصر المُشتركة بغضّ النّظر عن ترتيب البيانات. البنية ...

تهجير قاعدة البيانات في Laravel

مقدمة تشبه عمليات التهجير التحكم في الإصدار لقاعدة بياناتك، مما يسمح لفريقك بتعديل مخطط قاعدة البيانات ومشاركته بسهولة. وعادةً ما تقترن عمليات التهجير بمنشئ مخططات Laravel لبناء مخطط قاعدة البيانات تطبيقك بسهولة. وإذا كان عليك في أي وقت مضى إخبار أحد أعضاء الفريق بإضافة عمود يدويًا إلى مخطط قاعدة البيانات المحليّة الخاصة بك، فقد واجهت المشكلة التي حُلّت باستخدام تهجيرات قاعدة البيانات. توفّر الواجهة الساكنة Schema دعمًا لإنشاء وتعديل الجداول عبر جميع أنظمة قواعد البيانات المدعومة من قبل Laravel. توليد ...

الاستعلام SELECT

يُستخدَم استعلام SELECT للحصول على سجلات البيانات من الجداول المخزنة في قاعدة البيانات، قد تكون نتيجة الاستعلام سجلًا أو أكثر، وعمودًا أو أكثر. البنية العامة SELECT [DISTINCT | TOP] select_list [FROM table_source] [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ ASC | DESC]]; ويمكن أن تُستخدَم بعض المعاملات مثل UNION و EXCEPT و INTERSECT لدمج نتائج الاستعلامات أو مقارنتها مع بعضها، وتجب مراعاة ترتيب الكلمات المفتاحية المستخدمة في الصياغة السابقة لدى وجود العديد منها ضمن استعلامٍ واحد. أمثلة فيما يلي أمثلةٌ مختلفةٌ ...

حذف الدالة DROP FUNCTION

يستخدم هذا الأمر لحذف دالة (أو إجراء) أو أكثر مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION، وله البنية العامّة الآتية: DROP {FUNCTION | PROCEDURE} [ IF EXISTS ] name [ ( [argtype [, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ] إذ تُحذف الدالة المحدد باسم name، وتمنع IF EXISTS حدوث أي خطأ في حال عدم وجود دالة بهذا الاسم في قاعدة البيانات، ويُحدد نوع البيانات لمتغيرات الدالة ما بين قوسين لاحتمال تكرار نفس اسم الدالة بلائحة مختلفة ...

إنشاء فهرس CREATE INDEX

يستخدم هذا الأمر لإنشاء فهرس للجدول وفق البنية العامّة الآتية: CREATE INDEX [ name ] ON tbl ( col [, ...]); إذ يُنشأ الفهرس باسم name للجدول المسمى tbl الذي يحتوي على العمود المسمى col، وتُعتَبر الفهارس إحدى المفاهيم الأساسية في قواعد البيانات إذ تُسرِّع أداء الاستعلامات من خلال تقليل عدد صفحات البيانات التي تُمسح بياناتها (scanned) في القاعدة. مثال يستخدم الأمر الآتي لإنشاء مؤشر باسم idx على الجدول records عبر العمود title: CREATE INDEX idx ON records (title); التوافقية SQLServer ...

إنشاء العرض CREATE VIEW

يستخدم هذا الأمر لإنشاء عرضٍ والذي هو عبارة عن جدول افتراضي يُبنى بالاعتماد على نتائج استعلامٍ ما، وله البنية العامّة الآتية: CREATE VIEW name [ ( col_name [, ...] ) ] AS query إذ إن name هو اسم العرض المُنشَأ وتُحدّد الأعمدة المطلوبة بين قوسين، وتُعبِّر كلمة query عن الاستعلام الذي سيُؤخذ العرضُ منه، ويُمكن استخدام هذا العرض المنشأ في عبارة FROM بأي استعلام SELECT آخر. مثال لإنشاء عرض باسم novels يحتوي كافة الكتب الروائية المتوفرة في سجلات المكتبة الموجودة بالجدول books، ...

إنشاء جدول CREATE TABLE

يستخدم هذا الأمر لإنشاء جدولٍ جديدٍ في قاعدة البيانات وفق البنية العامّة الآتية: CREATE TABLE [ IF NOT EXISTS ] tbl_name ( [ { col_name data_type [ column_constraint [ ... ] | table_constraint } [, ... ] ] ) إذ يُنشأ الجدول الجديد باسم tbl_name وتُحدَّد أعمدته ما بين القوسين وذلك بتحديد اسم العمود col_name ونوع بياناته data_type وتحديد القيود على مستوى العمود أو الجدول. قيود العمود يُمكن ضبط بعض القيود على العمود مثل: القيد دلالته NOT NULL ...

تعديل الجدول ALTER TABLE

يُستخدَم هذا الأمر لتعديل تعريف الجدول المُنشأ مسبقًا عبر الأمر CREATE TABLE، وله الصيغ الآتية: ALTER TABLE [ IF EXISTS ] name RENAME [ COLUMN ] col_name TO new_col_name لإعادة تسمية عمود اسمه col_name في الجدول الذي اسمه name (إن وُجد) باسمٍ جديد new_col_name. ALTER TABLE [ IF EXISTS ] name RENAME CONSTRAINT const_name TO new_const_name لإعادة تسمية قيد اسمه const_name في الجدول الذي اسمه name (إن وُجد) باسمٍ جديد new_const_name. ALTER TABLE [ IF ...

حذف مستخدم DROP USER

يُستخدَم هذا الأمر لحذف مستخدم، وله الصيغة العامّة الآتية: DROP USER [IF EXISTS] name; إذ يحذف المستخدم ذو الاسم name إن وُجد. مثال لحذف المستخدمَين accountant و customer (إن وُجدا)  يُستخدم الأمر الآتي: DROP USER IF EXISTS accountant, customer; التوافقية SQLServer SQLite Oracle PostgreSQL MySQL نعم لا نعم نعم نعم مصادر توثيق DROP USER في محرك MySQL توثيق DROP USER في محرك PostgreSQL توثيق DROP USER في محرك Oracle توثيق DROP USER في محرك SQLServer

حذف قاعدة البيانات DROP DATABASE

يستخدم هذا الأمر لحذف قاعدة البيانات، وله البنية العامة التالية: DROP DATABASE [IF EXISTS] name; إذ إن name هو اسم قاعدة البيانات التي ستُحذف ولا يسمح بتنفيذ هذا الاستعلام إلا من مالك قاعدة البيانات ولا يمكن التراجع عن الحذف فيما بعد، وتمنع العبارة IF EXISTS حدوث أي خطأ في حال عدم وجودة قاعدة بيانات بهذا الاسم. يتضمن الحذف كافة الملفات المرتبطة بقاعدة البيانات بالصيغ التالية: ‎.TRN ‎.BAK ‎.DAT ‎.HSH ‎.MRG ‎.frm ‎.ibd ‎.MYD ‎.MYI ‎.TRG ‎.ndb ‎.par ‎.cfg ‎.db مثال لحذف ...

تعديل العرض ALTER VIEW

يستخدم هذا الأمر لتعديل عرضٍ مُنشَأ مسبقًا عبر الأمر CREATE VIEW، وله الصيغ الآتية: ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] col_name SET DEFAULT expression; لتحديد قيمة افتراضية expression للعمود col_name الموجود في العرض name (إن وُجد). ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] col_name DROP DEFAULT; لحذف القيمة الافتراضية للعمود col_name الموجود في العرض name (إن وُجد). ALTER VIEW [ IF EXISTS ] name OWNER TO new_owner; لنقل ملكية العرض name إلى المالك new_owner. ...

إنشاء قاعدة البيانات CREATE DATABASE

يستخدم هذا الأمر لإنشاء قاعدة بيانات جديدة، وله البنية العامة التالية: CREATE DATABASE name; إذ إن name هو اسم قاعدة البيانات التي ستُنشأ ولا يسمح بتنفيذ هذا الاستعلام ضمن بنية عمليات (transaction block). مثال لإنشاء قاعدة بيانات باسم CompanyRecords يُستخدم الأمر: CREATE DATABASE CompanyRecords; التوافقية SQLServer SQLite Oracle PostgreSQL MySQL نعم لا نعم نعم نعم إن محرك SQLite لا يدعم الأمر CREATE DATABASE إذ يتيح خيار إنشاء قاعدة البيانات من خلال سطر الأوامر command-line. مصادر توثيق CREATE DATABASE في محرك MySQL ...

حذف الجدول DROP TABLE

يستخدم هذا الأمر لحذف جدول أو أكثر من قاعدة البيانات، وله البنية العامّة الآتية: DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] إذ يُحذف الجدول المحدد باسم name، وتمنع IF EXISTS حدوث أي خطأ في حال عدم وجود هذا الجدول في قاعدة البيانات، أما الكلمة المفتاحية CASCADE فهي للإعلام بحذف أي كائنات objects معتمدة عليه (مثل Views)، وبالحالة الافتراضية فإن RESTRICT تمنع حذفه إن كان هناك اعتماد عليه من قبل كائن ما. أما لحذف كافة ...

حذف العرض DROP VIEW

يستخدم هذا الأمر لحذف view أو أكثر مُنشئ مسبقًا عبر الأمر CREATE VIEW، وله البنية العامّة الآتية: DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] إذ يُحذف view المحدد باسم name، وتمنع IF EXISTS حدوث أي خطأ في حال عدم وجوده في قاعدة البيانات، أما الكلمة المفتاحية CASCADE فهي للإعلام بحذف أي كائنات objects معتمدة عليه، وبالحالة الافتراضية فإن RESTRICT تمنع حذفه إن كان هناك اعتماد عليه من قبل كائن ما. مثال لحذف view باسم ...

استعلام الاستبدال REPLACE

هو استعلام يستخدم للقيام بنفس مهمة الاستعلام INSERT (إضافة سجل جديد للجدول) ولكن لإدخال سجلٍ بنفس القيمة الموجودة مسبقًا في عمود المفتاح الأوليّ وذلك منعًا لحدوث التكرار، إذ يُحذف السجل المحتوي لهذه القيمة ليُضاف سجلٌ جديدٌ بدلًا منه، وتكون الصيغة العامة للاستعلام على النحو الآتي: REPLACE INTO tbl VALUES (col_name [, col_name] ...); إذ إن table هو اسم الجدول الذي سيُعدَّل فيه السجل، وتوضع القيم الجديدة ضمن القوسين. مثال إن كان الجدول الآتي students موجودًا في قاعدة البيانات: GPA Age Name ...

معاملات المقارنة مع نتائج الاستعلام الفرعي

تستخدم المعاملات SOME و ANY و ALL بهدف المقارنة مع القيم الناتجة (لعمودٍ واحدٍ) عن أحد الاستعلامات الفرعية، وستُذكر تباعًا. معامل ANY إذ تعيد المقارنة قيمة TRUE في حال تطابق التعبير مع قيمة أيّ من السجلات الناتجة عن الاستعلام الفرعي وقيمة FALSE في حال عدم وجود أي نتيجة مطابقة. معامل SOME إذ تعيد المقارنة قيمة TRUE في حال وجود بعض القيم في السجلات الناتجة عن الاستعلام الفرعي والمطابقة لقيمة التعبير الذي تُقارن معه، وهي بهذا مماثلة لنتيجة المعامل ANY. معامل ...

عبارة GROUP BY

تُستخدم عبارة GROUP BY في استعلام SELECT بهدف تجميع النتائج ضمن مجموعات بحسب عمود أو أكثر من الجدول. استخدام GROUP BY لمعرفة عدد السجلات الممكن تجميعها سويةً ليكن الجدول الآتي (patients) موجودًا في قاعدة البيانات: Doctor Section Age Patient PatientID Nasser Cardiology 76 Salem 1029 Abd Allah Neurology 17 Hasan 896 Reem Maternity 23 Nadine 964 Fateh Cardiology 65 Rami 1070 Kareem Neurology 19 Abd al-Rahim 1150 Hadi Critical Care 65 Roushd 1097 Reem Maternity 27 Sana 1034 Abd Allah ...

DISTINCT

تستخدم العبارة DISTINCT للحصول على قيمٍ فريدةٍ غير مكررة، وغالبًا ما تستخدم في استعلام SELECT للحصول على سجلات لا تتكرر القيم فيما بينها، إذ يصبح الاستعلام بالشكل الآتي: SELECT DISTINCT columns FROM tbl; مثال إن كان الجدول الآتي patients موجودًا في قاعدة البيانات: Doctor Section Age Patient PatientID Nasser Cardiology 76 Salem 1029 Abd Allah Neurology 17 Hasan 896 Reem Maternity 23 Nadine 964 Fateh Cardiology 65 Rami 1070 Kareem Neurology 19 Abd al-Rahim 1150 Hadi Critical Care 65 Roushd 1097 ...

العمليات Transactions

العملية هي مجموعة من التعديلات التي تتم في قاعدة البيانات وفق تسلسل منطقي، وينتج عنها بعض التغييرات في القاعدة كحذف سجل أو تعديل بيانات أو إنشاء سجل جديد، هذه كلها عبارة عن عمليات، وتصبح هذه التغييرات جزءًا دائمًا من قاعدة البيانات إذا نُفذَّت بشكل تامّ دون أخطاء، أما في حال حدوث أيّ خطأ فيُتراجَع عن هذه التغييرات وتعود قاعدة البيانات كما هي قبل إنجاز العمليات عليها. التحكم بالعمليات توجد أربعة أوامر للتحكم بالعمليات وهي: COMMIT: لحفظ التغييرات ROLLBACK: للتراجع عن ...

عبارة WHERE

تُستخدم عبارة WHERE ضمن استعلام SELECT لتحديد الشروط التي تُعرض أو تحذف السجلات أو تُعدل قيم حقولها وفقًا لها، إذ يُمكن أن تستخدم أيضًا مع استعلامَي DELETE و UPDATE، وتعتمد اعتمادًا أساسيًا على المُعاملات المنطقية والحسابية وبعض المعاملات الأخرى في صياغة تلك الشروط. الحصول على البيانات وفق شرطٍ بسيط إن كان الجدول الآتي موجودًا في قاعدة البيانات: GPA Age Name StudentID 3.68 25 Mona 1024 3.57 24 Radi 1081 2.50 25 Leen 1012 4.00 26 Sarah 1085 1.96 22 Amin ...

الأمر ROLLBACK

يستخدم هذا الأمر لإلغاء العمليات المُجراة على قاعدة البيانات مما يعني تجاهل التغييرات التي طرأت عليها. صيغة الأمر: ROLLBACK [TRANSACTION]; وفي محركات SQLite و MySQL و PostgreSQL تمكن العودة إلى نقطة محددة حُفظت مسبقًا، وذلك عبر الأمر: ROLLBACK TO SAVEPOINT savePointName; إذ إن savePointName هو اسم نقطة الحفظ التي سيُرجع لها بتجاهل أية تغييرات طرأت بعدها. مثال إن كان جدول الزبائن customers موجودًا في قاعدة البيانات على النحو الآتي: Bill OrderID FullName CustomerID 160 0291 Abd al-Salam Hadi 1156 170 0302 Ahmad ...

استعلام INSERT

مهمة هذا الاستعلام هي إنشاء سجل جديد في الجدول، وله البنية العامة: INSERT INTO tbl_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); إذ تجب مراعاة التوافقية ما بين اسم العمود والقيمة التي ستوضع فيه على التوالي وبالترتيب، وأن تكون متوافقةً مع نوع بيانات الحقل، أي أن التوافق يجب أن يكون بالترتيب والعدد والنوع. ولإسناد قيم إلى كافة الحقول في السجل يُمكن الاستغناء عن أسماء الأعمدة ليصبح الاستعلام بالشكل: INSERT INTO tbl_name VALUES (value1, value2, value3, ...); إذ تجب مراعاة ترتيب القيم ...

العبارة ORDER BY

تتلخص مهمة عبارة ORDER BY بترتيب النتائج (تصاعديًا أو تنازليًا) ضمن استعلام SELECT وفق عمودٍ (أو أكثر) من الجدول. تحديد نمط الترتيب التصاعدي أو التنازلي تُستخدم الكلمتان المفتاحيتان ASC و DESC لتحديد نمط الترتيب التصاعدي ASC والتنازلي DESC بعدّ الترتيب التصاعدي الحالة الافتراضية للعبارة. ليكن الجدول rivers الآتي موجودًا في قاعدة البيانات: Continent Outflow LengthMiles LengthKm River Serial South America Atlantic Ocean 4345 6992 Amazon 1 Africa Mediterranean 4258 6853 Nile 2 North America Gulf of Mexico 3902 6275 Mississippi ...

خط أنابيب الأصول في ريلز

يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل. كيفيّة تنظيم أصول تطبيقك بشكل صحيح. فوائد أنبوب الأصول. كيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب. كيفيّة وضع الأصول مع جوهرة في حزمة. ما هو أنبوب الأصول؟ يوفّر أنبوب الأصول إطارًا لسَلسَلة وتصغير أو ضغط أصول JavaScript و CSS. كما أنه يضيف القدرة على كتابة هذه الأصول بلغات أخرى ومعالجات مسبقة مثل CoffeeScript و Sass و ERB. يسمح للأصول في تطبيقك أن تُدمج تلقائيًّا مع ...

عمليات التحقق من Active Record في ريلز

يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها Active Record. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة (validation helpers) لـ Active Record المدمجين. كيفية إنشاء توابع مخصصة للتحقق من الصحة. كيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق. نظرة عامة على عمليات التحقق الشيفرة التالية تظهر مثالًا عن تحقق بسيط جدًا: class Person < ApplicationRecord validates :name, presence: true end Person.create(name: ...

ارتباطات Active Record في ريلز

يغطي هذا الدليل مزايا الارتباطات Active Record. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج Active Record. الأنواع المختلفة للارتباطات في Active Record. كيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات. لمَ نستخدم الارتباطات؟ في ريلز، يعدّ الارتباط اتصالًا بين نموذجين من Active Record. لمَ نحتاج إلى الارتباطات بين النماذج؟ لأنها تجعل العمليات الشائعة سهلة وبسيطة في تطبيقك. مثلًا، لنفرض أن لدينا تطبيق ريلز بسيط يحوي نموذجًا للكتّاب ونموذجًا للكتب؛ كل كاتب يملك العديد من الكتب. ...

نظرة سريعة على التخزين المؤقت في ريلز

هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. يعني التخزين المؤقت تخزين المحتوى الذي أُنشِئ أثناء دورة الاستجابة للطلب وإعادة استخدامه عند الاستجابة لطلبات مشابهة. غالبًا ما يكون التخزين المؤقت الطريقة الأكثر فاعلية لتعزيز أداء التطبيق. من خلال التخزين المؤقت، يمكن لمواقع الويب التي تعمل على خادم واحد مع قاعدة بيانات واحدة الحفاظ على تحميل الآلاف من المستخدمين المتزامنين. يوفر ريلز مجموعة مميزة من ميزات التخزين المؤقت. سوف يعلمك هذا الدليل نطاق وغرض كل ...

Rails/Topics

ابدأ من هنا البدء مع ريلز يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز. المكتبات الأساسية Action Cable تعمل المكتبة Action Cable على دمج WebSockets مع بقية تطبيق ريلز الخاص بك بسهولة، إذ تسمح بكتابة الميزات ذات الوقت الحقيقي (real-time features) المنشودة في روبي وفي نفس ...

مقدمة إلى رابط الكائنات بالعلاقات Eloquent

مقدمة يزود رابط الكائنات بالعلاقات Eloquent ORM المضمّن في Laravel تنفيذًا بسيطًا من أجل قواعد البيانات التي تتعامل مع الـ ActiveRecord. كل جدول في قاعدة البيانات يقابله نموذج (Model) يُستخدم للتفاعل مع هذا الجدول. تمكّنك النماذج من تنفيذ الاستعلامات على البيانات الموجودة في الجداول، إضافةً إلى إضافة البيانات الجديدة. قبل البدء، تأكد من تهيئة اتصال قاعدة البيانات في الملف config/database.php. للمزيد من المعلومات حول تهيئة قاعدة البيانات، تفقّد التوثيق المناسب. تعريف النماذج للبدء، لننشئ نموذج Eloquent. تتواجد النماذج افتراضيًّا في ...

الخطافات غير المتزامنة في Node.js

الاستقرار: 1-تجريبي توفِّر الوحدة async_hooks واجهة برمجية (API) لتسجيل دوال ردود النداء التي تتعقَّب دورة حياة (lifetime) الموارد غير المتزامنة (asynchronous resources) المُنشأَة داخل تطبيقات Node.js. يمكن الوصول إلى هذه الوحدة باستعمال الأمر التالي: const async_hooks = require('async_hooks'); اصطلاحات يمثِّل المورد غير المتزامن كائنًا مرفقًا به رد نداء. قد يُستدعَى رد النداء هذا عدَّة مرات، مثل الحدث 'conection' في net.createServer()‎، أو مرةً واحدة فقط، مثل fs.open()‎. يمكن أن يُغلق المورد أيضًا قبل أن يُستدعَى رد النداء. لا تفرِّق الوحدة AsyncHook ...

ضبط تطبيقات ريلز

يغطي هذا الدليل ميزات الضبط والتهيئة المتاحة لتطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية ضبط سلوك تطبيقات ريلز. كيفية إضافة شيفرة مصدريّة إضافية لتنفيذها وقت بدء تشغيل التطبيق. مواقع شيفرة التهيئة والضبط يوفر ريلز أربعة مواضع رئيسيّة لوضع الشيفرة المصدريّة للتهيئة: config/application.rb ملفات الضبط (configuration) الخاصة بالبيئة المهيآت (Initializers) ما بعد المهيآت (After-initializers) تشغيل شيفرة برمجية قبل ريلز في أحيان نادرة، يحتاج تطبيقك لتشغيل بعض الشيفرات البرمجية قبل تحميل ريلز نفسه، ذا ضعها آنذاك قبل استدعاء require 'rails/all'‎ في ...

تأمين تطبيقات ريلز

يصف هذا الدليل مشاكل الأمان الشائعة في تطبيقات الويب وكيفية تجنبها باستخدام ريلز. بعد قراءة هذا الدليل، ستتلعم: جميع التدابير المضادة التي سيسلط الضوء عليها. مفهوم الجلسات (sessions) في ريلز، و ما يُنفذ في وجود وسائل الهجوم المعروفة. كيف يمكن أن يكون مجرد زيارة أحد المواقع مشكلة أمنية (مع CSRF). ما عليك الانتباه عند العمل مع الملفات أو توفير واجهة إدارة. كيفية إدارة المستخدمين: تسجيل الدخول والخروج وهجمات الطرق على جميع الطبقات. أكثر الطرق المعروفة لهجوم الحقن. المقدمة تعمل إطارات ...

تنقيح تطبيقات ريلز

يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح. كيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك. طرقًا مختلفة للتنقيح. كيفيّة تحليل أثر المكدس. مساعدي العرض للتنقيح احدى المهام الشائعة في التنقيح هي فحص محتويات متغيّر معيّن، لذا يوفر ريلز ثلاثة طرائق لفعل ذلك: Debug To_yaml Inspect debug سيعيد المساعد debug الوسم <pre> الذي يصدّر الكائن باستخدام تنسيق YAML، وسيؤدي هذا إلى توليد بيانات يمكن للإنسان قراءتها من أي كائن. ...

عرض (100 السابقة | 100 التالية) (20 | 50 | 100 | 250 | 500).