Download my sql arabic my sql arabic and more Essays (university) Life Sciences in PDF only on Docsity!
MySQLاحترف
http://linuxac.org http://itwadi.com
3 ..................................................................................................SQL تعريف قواعد البيانات ولغة :مقدمة
3 ....................................................................................................Database قاعدة البيانات أو 3 .....................................................................................................................SQL لغة ال
4 ....................................................................................................على وجه الخصوص ؟MySQL لماذا
5 ...........................................................................................Debian Gnu/LinuxعلىMySQL تثبيت
6 ...............................................................................................................MySQL مقدمة للتعامل مع
9 ...............................................................................................................Tables إنشاء الجداول أو ال
9 ............................................................................................؟Tables ولكن ماهي الجداول أو ال
12 ..........................................................................................................Tables إضافة بيانات داخل ال
14 ..................................................................................................Tables الستعلم عن بيانات داخل ال
19 ..................................................................................................... Pattern Matching Operators
24 ............................................................................................Logical Operators العلمات المنطقية أو
27 ...............................................................................................................BetweenوIn العلمتان
43 ..........................................................................................Aggregate Functions دوال المجموع أو
44 .......................................................................................................max() وmin() الدالة 45 ......................................................................................................avg() وsum() الدالة 49 .................................................................................................................count() الدالة
50 .........................................................................................................................group by جملة
54 ..........................................................................................................................Having جملة
55 ...........................................................................................................Select استخدامات أخرى ل
59 ....................................................................Mathematical FunctionsأوMySQL الدوال الحسابية في
60 ........................................................................................................ mod(x,y) Function 61 ........................................................................................................... ABS(x) Function 62 .......................................................................................................... SIGN(x) Function 63 .................................................................................................... POWER(x,y) Function 63 ......................................................................................................... SQRT(x) Function 64 .............................................................................. ROUND(x) and ROUND(x,y) Function 65 ......................................................................................................... FLoor(x) Function 65 .................................................................................................... CEILING(x) Function 66 ................................................................... Trignometic Function ( Tan(x) , Cos(x) , Sin(x) )
67 ........................................................................Updateباستخدام جملة أمر (Records) تحديث السجلت
وهى عبارة عن لغة تستخدم في معالجة البياناتStructured Query Languageإلى الكلماتSQLيرمز المصطلح
Relational Database ManagementأوRDBMS المخزنة في نظم إدارة قواعد البيانات العلئقية أو فيما يعرف ب
مجموعة من الوامر قادرة على التعامل مع البيانات لكى يتم استخراج أو تخزين أو حذفSQLولذلك توفر. System
كلغة للتعامل مع أنظمة إدارة قواعد البياناتSQL ولكى تكون تلك الوامر متوافقة لشريحة أكبر من الفراد تم إخضاع
، والتي تم وضع قواعد معينة لها لتنفيذ تلك الوامر عندAmerican National InstituteأوANSI تحت معايير
MySQL ، mSQL ، PostgresSQLلكى تعمل مع أنظمة إدارة قواعد بيانات مختلفة مثلSQL يمكن أن تستخدم
.جوغيرها من تلك البرام ، Oracle ، Microsoft SQL Server ، Access ، Sybase
تكون مدعومة من قبل تلك الSQLفإن معظم أوامر وجملANSIتندرج تحت معايير الSQL ونظرًا لن لغة
المختلفة وذلك يتضح في عمل أوامرRDBMS، وفى نفس الوقت توجد بعض الختلفات بين تلك ال RDBMS
جوالتي تم شراء الشركة المسؤولة عن تطوير البرنامMySQL ذكرها وأشهرها على الطلق في بيئة مفتوحة المصدر هي
.SUN MicroSystemsمن قبل شركةMySQL AB مؤخرًا وهى شركة
أوRelational Database Management SystemأوRDBMS في الكلم السابق أشرت إلى مصطلح جديد وهو
يعنى أنك تستطيع تخزين البيانات في جداول مختلفة ، تكون تلكRelational، ولذلك مصطلحTables الجداول أو
على وجه الخصوص ؟MySQL لماذا
بشكل أكثر من رائع كما أنهاUnix-LikeوالUnixلنها تعمل على أنظمة الMySQLووقع الختيار بالنسبة ل
والتي تندرج تحت فئة الدعم مقابل المال .Enterprise Editionتحت اسم الMySQL ملحوظة : توجد نسخة من
ً ل نقول بصورة أو بأخرى تمثل حلMySQL وبالتالي أحتياجات الفرد أو المنظمة إلى قواعد البيانات تكون مختلفة و
ليست بالشركةSun ً ولكن لنقول ممتازًا يعتمد عليها كاختيار لنظم إدارة قواعد البيانات وكما ترون أن شركة مثاليا
!ول ترى فيه أفق النجاحMySQL جالغبية لكى تقوم بشراء برنام
Debian Gnu/LinuxعلىMySQL تثبيت
:من خلل المر التاليDebian Gnu/LinuxعلىMySQL تستطيع تثبيت النسخة الخيرة المستقرة من ال
debian:~# aptget install mysqlserver
ونستطيع تثبيتmysql-serverأيضا لكى نستطيع التعامل مع حزمة الmysql-client كما سوف نحتاج إلى حزمة ال
debian:~# aptget install mysqlclient ملحوظة : من الممكن تثبيت الحزمتين السابقتين في سطر واحد دون مشاكل فقط افصل بين السمين ب مسافة من لوحة المفاتيح.
بنجاح سنبدأ العمل بوضع كلمة سرmysql-clientوحزمة الmysql-server بعد أن يتم تثبيت كل ً من حزمة ال
3 rows in set (0.00 sec)
سنقوم الن بإنشاء قاعدة بيانات خاصة بنا ولتكنMySQL بعد أن استعرضنا قواعد البيانات التي توجد داخل
:بالشكل التاليmysqlويكون ذلك باستخدام المر التالي من خلل محث أوامر linux_ac
mysql> create database linux_ac; Query OK, 1 row affected (0.00 sec)
mysql> show databases; ++ | Database | ++ | information_schema | | linux_ac | | mysql | | ser | ++ 4 rows in set (0.00 sec)
ومنsemi-colonأو ;، ولحظ أن الوامر دائمًا تنهى بlinux_ac فعل ً تم إنشاء قاعدة البيانات الجديدة تحت اسم
وبالتالي فإن أي مستخدم آخر علىrootتم إنشائها من قبل المستخدمlinux_ac المهم ذكره هنا أن قاعدة البيانات
linux_ac، فعلى سبيل المثال نريد مثل منح تصريح العمل على قاعدة البياناتroot تلك القاعدة من قبل ال
:كما يليgrantفنستطيع عمل ذلك من خلل المرmuhammad لمستخدم على التوزيعة تحت اسم
mysql> grant all on linux_ac.* to muhammad@localhost identified by 'solaris'; Query OK, 0 rows affected (0.05 sec)
كل التصاريح الخاصة بقاعدة البياناتlocalhostعلى الmuhammad في المثال السابق قمنا بمنح المستخدم
ومن البديهيsolaris، كذلك قمنا بوضع كلمة السر الخاصة به وفى مثالنا كانتlinux_ac المنشأة حديثًا وهى
:بكتابة التاليmysqlوللتأكد من ذلك نقوم بالخروج من ال
mysql> \q Bye
:أيضاquit أو كتابة كلمة
mysql> quit Bye
بالشكلmuhammadولكن هذه المرة مع المستخدمmysql بعد ذلك نقوم بالتصال بقاعدة البيانات عن طريق
debian:~# mysql u muhammad p Enter password:
، بعد ذلك ستتمكن منsolarisوالتي كانت في مثالناmuhammad قم بإدخال كلمة السر التي منحتها للمستخدم
:بكل سهولة كما يليlinux_acوالعمل على قاعدة البياناتMySQL التصال ب
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.0.32Debian_7etch1log Debian etch distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
فقط ، وبالتالي فل يحق لهlinux_acقد منح التصريح للعمل على قاعدة البياناتmuhammad ولحظ أن المستخدم
:mysql ال
mysql> use ser; ERROR 1044 (42000): Access denied for user 'muhammad'@'localhost' to database 'ser'
فظهرت رسالةserأنني أريد العمل على قاعدة البيانات والتي تسمىmysql أخبرت محث أوامرuse المر السابق
، أما لو قمت بتغيير المرserليست له الصلحية للعمل على قاعدة البياناتmuhammad خطأ تفيد بأن المستخدم
والتي سيتم إنشاء جدول فيها يحتوى على مجموعة منlinux_acوالن نبدأ بالتعامل الحقيقي مع قاعدة البيانات
:mysql المر التالي من أمام محث أوامر
mysql> use linux_ac; Database changed mysql> create table members_data
( mem_id int unsigned not null auto_increment primary key, f_name varchar(20), l_name varchar(20), age int, email varchar(60) ); Query OK, 0 rows affected (0.08 sec) notليست حساسة تجاه الحروف الكبيرة والصغيرة أي تكونMySQL ملحوظة : الوامر وأسماء العمدة في ال إلخ ، أما أسماء قواعدCreateهو نفسه المرCREATEهو نفسه المرcreateبمعنى المر case-sensitive البيانات والجداول فمن الممكن أن تكون حساسة تجاه الحروف الكبيرة والصغيرة وذلك اعتماد على بيئة نظام التشغيل فإننا سوف نتنبه لهذه النقطة .Debian Gnu/Linux التي تعمل عليها ولذلك في حالتنا هذه أي بالعمل على
لنشاء جدول داخل قاعدة بيانات نعمل عليها ويتم إلحاق اسمcreate tableيستخدم المر:create table المر
ويحق لكmembers_dataوفى حالتنا هذه قمنا بتسمية الجدول باسمcreate table الجدول المراد إنشاؤه بعد المر
مرة أخرى ، بعد ذلك قمناEnterكنوع من ترتيب المدخلت بشكل جيد ثم ضغطناEnter بعد ذلك قمنا بضغط زر
الخاص بكل عضو وهنا قمناidوالذي سوف يحتوى على الmem_id بإنشاء أول عمود داخل الجدول تحت اسم
سوف يأخذ قيم أعداد صحيحة ليس فيها كسور ،mem_idأي أن المتغيرintأوinteger بتعريف ذلك العمود بالقيم
أي أن رقم العضو سيكون عدد صحيحunsignedالخاصة به وهىattributeالmem_id بعد ذلك منحنا العمود
سوف يأخذmem_idأي أن العمودnot null، ثم أضفنا خاصية أخرى وهى (Positive Integer) وبإشارة موجبة
والتي تعنى زيادة رقم العضويةauto_increment قيمة على الدوام ول يمكن أن يكون فارغًا ، بعد ذلك أضفنا الخاصية
قيمmem_idسوف تقوم بهذه المهمة ، كما أن ذلك سوف يؤدى بدوره لن تكون قيم العمودMySQL طالما أن
والتي تساعد في فهرسة العمودprimary keyوحيدة لن تتكرر أي لن تجد رقمّى عضوية متشابهان ، ثم أخيرًا الصفة
مثل حينما تشترى كتاب في صورة ورقية فيوجدprimary key ولنوضح قليل ً مفهوم صفة الفهرسة باستخدام ال
أي أنناprimary keyأنه ذو صفةmem_id الذي يخضع إليه عنوان البحث وهكذا ، ولذلك في مثالنا عرفنا العمود
أن هذا العمود هو مفتاح التعاملMySQLولذلك يجب أن نخبرmem_id قررنا تنظيم بيانات الشخاص تبعا للعمود
في حد ذاته كما ذكرناprimary key، والPRIMARY KEY مع محتويات الجدول و ذلك بأن نعطيه الصفة
فالفيصل مثل ً حينها هو رقمl_nameوالعمودf_name نفترض أنه يوجد لدينا عضوان يحملن نفس السم في العمود
للعمود بحيث ل يمكن أنprimary keyالخاص بكل واحد منها ، لنه كما ذكرنا أننا وضعنا صفة الmem_id ال
.mem_id يتكرر رقمان في نفس العمود وهو
وعرفنا نوع البيانات التيf_name بعد ذلك قمنا بإضافة العمود الثاني وهو خاص بالسم الول للعضو تحت اسم
وقمنا بوضع حد لقصى عددvariable characterأو اختصارًا لvarchar سيتضمنها ذلك الحقل أو العمود من نوع
أيضًا وقمنا بوضع حد لقصىvarcharوعرفنا نوع البيانات التي سيتضمنها ذلك الحقل أو العمود من نوع l_name
وتم تعريف نوعageحرف بين قوسين ، ثم أضفنا عمودًا يشمل العمر أو 20 عدد من الحروف للسم الخير وهو
وتمemail، ثم أخيرًا أضفنا حقل ً آخر للبريد اللكتروني تحت اسمintegerأوint البيانات الخاصة به من نوع
ًحرفا 60 وتم تحديد أقصى عدد للحروف تخص هذا الحقل وكانتvarchar تعريف نوع البيانات الخاصة به من نوع
.semi-colon أو ;ثم أخيرًا أنهينا المر بوضع قوس ثم مباشرًة بوضع
لكى يتم تنفيذsemi-colonثم تنهى المر ب ; أوcolon ملحوظة : لبد أن تفصل بين كل اسم عمود وعمود ب , أو لكى تتم عملية التنفيذ .Enterوذلك بالضغط على زرMySQL المر بشكل صحيح داخل ال
أن محثsemi-colonأو ;مع نهاية كل سطر إذا لم يحتوى علىEnter أيضًا سوف تلحظ كلما ضغطت على زر
قد فهم أن المر لم يكتمل بعد وما زال هناك بعض المور لم يتم إدخالها ولذلك يتحول محث الوامر معmysql أوامر
بعد القوس الخير فحينها سوف يتم تنفيذ المرsemi-colonوبمجرد وضعك لل ->إلى العلمةEnter كل ضغطة
سنقوم باستعراض الجداول داخل القاعدةlinux_ac والن بعد أن قمنا بإنشاء أول جدول داخل قاعدة البيانات
:لنتأكد فعليًا من إنشاء الجدول وذلك كما يلي linux_ac
mysql> show tables;
("muhammad","ahmad",23,"[email protected]"); Query OK, 1 row affected (0.06 sec)
.members_dataلضافة مدخلت جديدة داخل الجدولintoمعinsertقمنا باستخدام المر : ًأول
doubleأو " "تكون داخلemailوالعمودl_nameوالعمودf_nameالقيم التي تخص كل من العمود : ثانيا
.وذلك للدللة على أنها عبارة عن قيم نصية سوف تدخل إلى تلك الحقول كما هي quotes
.(INTEGER) لنها عبارة عن أرقام صحيحة " "لم نضعها داخلageالقيمة بالنسبة للعمود : ثالثا
لننا كما قلنا سابقا أن الinsertداخل جملة أمر الmem_idلو لحظت في المر السابق أننا لم نضع العمود : رابعا
غير مكرر مع التنبيه أن الرقامidسوف تتولى هذه المهمة وتقوم بمنح كل صف جديد داخل الجدول رقم MySQL
بحسب عدد البياناتinsert ومن ذلك يتضح أنه عند الرغبة في إضافة بيانات جديدة لبد من تكرار جملة أمر ال
ونقوم بإضافةmembers.dat لجعل المور أكثر سهولة نقوم بإنشاء ملف نصي على سطح المكتب مثل تحت اسم
ثم بعد ذلك نستدعى الملف إلى قاعدة البيانات المرادinsert جميع البيانات المراد إدخالها من خلل جملة أمر ال
:من خلل الطرفية بالشكل التاليinsert إدخال جمل أمر ال
debian:~# mysql linux_ac <members.dat u root p Enter password:
Enter، بعد الضغط على زرmembers.dat طبعًا في البداية لبد أن تكون داخل المجلد الذي يحتوى الملف
وفىlinux_ac ستتطلب منك الطرفية إدخال كلمة المرور الخاص بالمستخدم الذي تريده أن يعمل على قاعدة البيانات
ولنتأكد فعل من إدخال البيانات داخل قاعدة البياناتroot حالتنا هذه قمنا بالدخول عن طريق المستخدم الجذر أو
:بشكل سليم ننفذ المر التالي linux_ac
mysql> select * from members_data; ++++++ | mem_id | f_name | l_name | age | email | ++++++ | 1 | muhammad | ahmad | 23 | [email protected] | | 2 | ahmad | ameen | 48 | [email protected] |
| 3 | ahmad | youssef | 32 | [email protected] | | 4 | muhammad | ismael | 32 | [email protected] | | 5 | sherif | shahin | 32 | [email protected] | | 6 | sherif | faroo2 | 32 | [email protected] | | 7 | muhammad | mahfouz | 32 | [email protected] | | 8 | sarah | mahmoud | 32 | [email protected] | | 9 | marwa | hassan | 32 | [email protected] | | 10 | muhammad | wadood | 32 | [email protected] | | 11 | muhammad | antary | 32 | [email protected] | | 12 | safwat | hegazy | 32 | [email protected] | | 13 | ahmad | antar | 32 | [email protected] | | 14 | kamel | ahmad | 32 | [email protected] | | 15 | muhammad | kamal | 32 | [email protected] | | 16 | muhammad | taha | 32 | [email protected] | ++++++ 16 rows in set (0.00 sec)
.بشكل سليم كما ترىmembers.dat فعل تم وضع البيانات التي قمنا بتحرريها داخل الملف النصي
Tables الستعلم عن بيانات داخل ال
مليء بالبيانات التي ُتمكننا من العمل عليه بشكل أوسع وتطبيق جمل استعلميةmembers_data الن أصبح الجدول
والتي نحن بصدد الحديث عنها ، فالن سوف نرى كيفية استخراج بيانات أو الستعلمselect أخرى مثل جملة المر
:وتكون صيغته العامة بالشكل التاليselect عنها كما قلنا باستخدام المر
SELECT column_names from table_name [WHERE ...conditions];
بدأت بالمر نفسه ثم بعد ذلك اسم العمود أو الحقل المراد استخراج البياناتselect كما تلحظ في البداية جملة أمر
فيمكن أن [WHERE ...conditions] منه أو الستعلم عنها وذلك من خلل اسم الجدول الخاص بنا ، أما جملة
members_data وعلى سبيل المثال لكى نقوم بالستعلم عن السم الول والسم الخير لكل العضاء داخل الجدول
mysql> select f_name, l_name from members_data; +++ | f_name | l_name |
14 rows in set (0.00 sec)
mysql> select * from members_data; ++++++ | mem_id | f_name | l_name | age | email | ++++++ | 3 | ahmad | youssef | 32 | [email protected] | | 4 | muhammad | ismael | 30 | [email protected] | | 5 | sherif | shahin | 38 | [email protected] | | 6 | sherif | faroo2 | 27 | [email protected] | | 7 | muhammad | mahfouz | 29 | [email protected] | | 8 | sarah | mahmoud | 39 | [email protected] | | 9 | marwa | hassan | 45 | [email protected] | | 10 | muhammad | wadood | 42 | [email protected] | | 11 | muhammad | antary | 24 | [email protected] | | 12 | safwat | hegazy | 36 | [email protected] | | 13 | ahmad | antar | 22 | [email protected] | | 14 | kamel | ahmad | 17 | [email protected] | | 15 | muhammad | kamal | 53 | [email protected] | | 16 | muhammad | taha | 18 | [email protected] | ++++++ 16 rows in set (0.00 sec)
فعل ً قد تم إدخال البيانات فيه بشكل تلقائي دون تدخل منا أثناء تنفيذ جملة أمرmem_id لحظ أيضًا أن العمود
. insert
الستعلم عن البيانات مع وضع شروط
والتي يأتي بعدها الشرط المراد وضعهwhereمرتبط بجملةselectوسيكون القيد أو الشرط داخل جملة أمر select
وأكررها حتى تثبت في ذهن القارىء وهىselect على جملة الستعلم ، وقد ذكرنا سابقًا الصيغة العامة لجملة أمر
SELECT column_names from table_name [WHERE ...conditions];
، هي جملة اختيارية يمكن وضعها أو قد ل نحتاج إليها كما [WHERE ...conditions] وكما ذكرنا سابقًا أن جملة
بصورة جلية حيث يمكن تطبيق شروط معينة لجلب أو استخراج بيانات ُبناءًا على تلك الشروط ، وسنبدأRDBMS
mysql> select f_name, l_name from members_data
where f_name='muhammad'; +++ | f_name | l_name | +++ | muhammad | ismael | | muhammad | mahfouz | | muhammad | wadood | | muhammad | antary | | muhammad | kamal | | muhammad | taha | +++ 6 rows in set (0.03 sec)
ولكن قمنا بوضعmembers_dataلجلب السم الول والسم الخير من الجدولselect هنا استخدمنا جملة أمر
.وظهرت النتيجة بالشكل السابقmuhammad شرط وهو جلب كل المستخدمين والذي يبدأ اسم كل منهم ب
وتمmuhammad عليه هو أن يكون السم الول للمستخدمينselect لحظ : الشرط الذي قمنا ببناء جملة أمر ال المهمsingle quotesأوdouble quotesأي الموضوع سيان ل يوجد فرق بين الsingle quotes وضعه داخل .doubleأوsingleسواء كانتquotesلبد من وضعها داخلvarchar أن القيم التي تكون من نوع
mysql> select f_name, l_name from members_data
where age=32; +++ | f_name | l_name | +++ | ahmad | youssef | +++ 1 row in set (0.00 sec)
mysql> select f_name, l_name, age from members_data
where age >= 32; ++++ | f_name | l_name | age | ++++ | ahmad | youssef | 32 | | sherif | shahin | 38 | | sarah | mahmoud | 39 | | marwa | hassan | 45 | | muhammad | wadood | 42 | | safwat | hegazy | 36 | | muhammad | kamal | 53 | ++++ 7 rows in set (0.01 sec)
عام في نتيجة الجملة التي قمنا بتنفيذها سابقًا ونفس الشيء مع العلمة 32 صاحب العمرahmad كما ترى ظهر العضو
Pattern Matching Operators
، < و > و != و =مثلComparison Operators بعد أن تطرقنا فيما سبق إلى كيفية استخدام علمات المقارنة أو
وصراحة ل أريد ترجمة المصطلح حتى ل يفقد معناهPattern Matching سننتقل الن إلى جزئية أخرى وهى ال
من خلل المثلة التي سوف نطبقها على تلكPattern Matching المطلوب وسأكتفي بتوضيح معنى مصطلح ال
Pattern Matchingأيضًا ، وبذلك تتفق الwhereباستخدام جملةPattern Matching الجزئية وسيكون تطبيق ال
likeأوlike، كما أننا سوف نستعمل أداة تسمىWhereفي استخدامهما لجملةComparison Operators مع ال
. أو يساوى =بدل من العلمة operator
كانت تستخدم للستعلم المشروط وجلب بيانات متماثلة للشرط = أو " يساوى"Operator تعلمنا سابقا أن ال
كل ما فعلناه وضعنا "muhammad" الذي وضعناه ، فمثل ً حينما أردنا جلب كل المستخدمين أصحاب السم الول
: وكانت جملة الشرط بالشكل التالي"muhammad" الشرط وهو أن يكون السم الول يساوى
where f_name='muhammad'
نريد استخدمناه لعمل موائمة لجملة الستعلم المشروطة فعلى سبيل المثال = أو "يساوى "Operator أي أن ال
فكيف ننفذsherif بشرط أن يكون السم الول للعضو ( السم الول ، السم الخير )الستعلم عن أسماء العضاء
والذي يمثل عمودًا أو حقل ً داخل قاعدة البيانات لدينا ،كما أننا نريد الستعلم عن السم الخيرf_name الول وهو
والذي يمثل لدينا عمودًا أو حقل ً داخل قاعدة البيانات ولكن في السؤال ظهر قيد أو شرط جديد أل وهوl_name وهو
:وتكون الجملة بالشكل التاليsherif أن يكون السم الول للعضو
mysql> select f_name, l_name from members_data
where f_name = 'sherif'; +++ | f_name | l_name | +++ | sherif | shahin | | sherif | faroo2 | +++ 2 rows in set (0.03 sec)
" قد شرحت ذلك سابقا " ، وأسمع همس القراء ولسان حالهم يقول:P أرى أن الملل بدأ يتسرب إلى أذنيك
Operator في الحقيقة نعم شرحت ذلك الجزء سابقًا ولكن أردت التركيز على تلك الجزئية لكى تلمس الفارق بين ال
. =الذي استخدمناه وهى علمة يساوى أوOperatorوبين الlike الذي سوف نستخدمه وهو
سأقوم بتطبيق مثال ، وليكن التالي نفترض أنك تريد الستعلم =وبينlike ولكى نوضح الفارق في الستخدام بين
هل تستطيع "m" عن أسماء العضاء السم الول والسم الخير لكل عضو بشرط أن يبدأ السم الول للعضو بحرف
؟ =يساوى أوOperator فعل ذلك بال
mysql> select f_name, l_name from members_data where f_name = 'm'; Empty set (0.00 sec)
هل اتضح المر قليل ً لديك واستطعت الن أن تميز الفارق ؟؟ ما زال في "m" لديك داخل الجدول تبدأ بحرف