MySQL Basics | أساسيات MySQL
MySQL هو نظام إدارة قواعد البيانات الشائع والمفتوح المصدر الذي يوفر العديد من الميزات والأدوات لتخزين وإدارة البيانات. يعتبر MySQL موثوقًا وقويًا ومستخدمًا على نطاق واسع في تطبيقات الويب والتطبيقات الأخرى. في هذا المقال، سنقدم لك مقدمة شاملة عن MySQL، بما في ذلك طرق تثبيتها على أنظمة Windows و Linux، وأساسياتها، وأنواع البيانات الرقمية، والأوامر الأساسية، والتطبيقات المستخدمة فيها، وطرق التعامل معها بسهولة، واللغات التي يتم استخدامها مع MySQL مثل Ruby و Python و PHP.
يمكنك اتباع الخطوات التالية لتثبيت MySQL على نظام Windows:
- قم بتنزيل حزمة التثبيت الخاصة بـ MySQL من الموقع الرسمي لـ MySQL (https://dev.mysql.com/downloads/windows/installer/).
- قم بتشغيل ملف التثبيت واتبع الإرشادات على الشاشة لاستكمال عملية التثبيت.
- اختر المكونات التي ترغب في تثبيتها، مثل خادم MySQL وأدوات الإدارة.
- قم بتكوين إعدادات الخادم، مثل المستخدم الجذر (root) وكلمة المرور.
- انتظر حتى يتم الانتهاء من عملية التثبيت، ثم قم بتشغيل خادم MySQL.
يمكنك اتباع الخطوات التالية لتثبيت MySQL على نظام Linux (مثال على Ubuntu):
- افتح التيرمنال وأدخل الأمر التالي لتثبيت MySQL:
```
sudo apt-get update
sudo apt-get install mysql-server
- أثناء عملية التثبيت، سيتم طلب إعداد كلمة مرور للمستخدم الجذر
(root) في MySQL.
- بعد الانتهاء من التثبيت، يمكنك التحقق من حالة خادم MySQL بإدخال الأمر التالي :
sudo service mysql status
- يمكنك تشغيل خادم MySQL باستخدام الأمر التالي:
sudo service mysql start
الآن بعد أن قمت بتثبيت MySQL على نظامك، دعنا نلقي نظرة على بعض الأساسيات وأنواع البيانات الرقمية والأوامر الأساسية في MySQL.
- MySQL يستخدم لتخزين وإدارة البيانات في قواعد بيانات. قاعدة البيانات هي مجموعة من الجداول التي تحتوي على البيانات المنظمة بطريقة معينة. تعتبر الجداول هيكل التخزين الأساسي في MySQL.
- BOOLEAN: قيمٌ منطقيةٌ، وتعتبَر فيها القيم المساوية للصفر (0) على أنَّها false، وبقية القيم true.
- TINYINT: إذا استخدمَت مع الكلمة المحجوزة SIGNED فستُمثِّل المجال من -128 إلى 127، بينما مجالها إن كانت UNSIGNED فهو من 0 إلى 255.
- SMALLINT: إذا استخدمت مع SIGNED فهي تمثِّل المجال من -32768 إلى 32767. بينما مجال UNSIGNED فهو من 0 إلى 65535.
- INT: إذا استخدمت مع SIGNED فهي تغطي المجال من 0 إلى 4294967295، ومن -2147483648 إلى 2147483647 فيما عدا ذلك.
- ملاحظة: في أنواع البيانات TINYINT و SMAILLINT و INT، القيمة الافتراضية المرتبطة معها هي SIGNED.
- DOUBLE(M, D): يُمثِّل هذا النوع الأعداد العشرية ذات الفاصلة، حيث M هو العدد الكلي للأرقام و D هو عدد الأرقام بعد الفاصلة العشرية. إذا اُستعمِلَت الكلمة UNSIGND فلن يُسمَح بإدراج قيم سالبة في هذا الحقل.
- VARCHAR(M): يُمثِّل هذا النوع السلاسل النصية ذات الطول المتغير حيث M هو عدد الأحرف المسموح الأقصى للسلسلة النصية مقدرًا بالبايت (يمكن أن يبلغ نظريًا 65535 بايت). في حال كانت السلاسل النصية المُدخَلة بالإنكليزية، فسيأخذ كل محرف بايتًا واحدًا، لكن هنالك استثناءٌ لبعض المحارف التي قد تأخذ 3 بايت لكي تُمثَّل، فمثلًا، الحرف الإسباني ñ لا يأخذ بايتًا واحدًا وإنما ثلاثة بايتات.
- TEXT(M): يُمثِّل هذا النوع الأعمدة ذات الطول الأقصى المقدّر 65535 محرفًا، لكن كما في نوع البيانات VARCHAR(M) سينقص طول التخزين الأقصى إذا استعملنا محارف تأخذ أكثر من بايت لتُمثَّل في الحاسوب. إذا حُدِّدَ M فسيُنشأ العمود بأصغر نوع بيانات التي يستطيع تخزين هذا العدد من المحارف.
- MEDIUMTEXT(M) و LONGTEXT(M) شبيهة بنوع البيانات TEXT(M) لكن الطول الأقصى المسموح هو 16777215 و 4294967295 محرفًا على التوالي وبالترتيب.
- DATE: تمثيل التاريخ بصيغة YYYY-MM-DD.
- TIME: تمثيل الوقت بصيغة HH:MM:SS.sss (أي الساعة والدقيقة والثانية والملي ثانية).
- DATETIME: جمعٌ بين DATE و TIME بالصيغة YYYY-MM-DD HH:MM:SS.
- TIMESTAMP: تُستعمَل بصمة الوقت لتعريف اللحظة التي أضيف أو حُدِّث فيها سجلٌ (row) ما.
- بعد اطلاعك على أنواع البيانات السابقة، فيمكن أن تستطيع الآن تحديد ما هو نوع البيانات الذي ستحتاج له لإسناده إلى عمودٍ معيّن في الجدول.
- على سبيل المثال، يمكن أن يتسع اسم المستخدم بسهولة في عمودٍ بنوع البيانات VARCHAR(50)، لكن محتوى تدوينة سيحتاج إلى نوع TEXT (اختر قيمة M بما يلبي احتياجاتك).
قبل أن نشرع في إنشاء جداول، فمن الضروري استيعاب مفهومين أساسيين عن قواعد البيانات العلائقية: المفتاح الأساسي (primary key) والمفتاح الأجنبي (foreign key).
- يحتوي المفتاح الأساسي قيمةً تُمثِّلُ مُعرِّفًا فريدًا لكل سطرٍ أو سجلٍ (row أو record) فيه
CREATE DATABASE database_name;
USE database_name;
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);INSERT INTO table _name (column1, column2, ...) VALUES (value1, value2, ...);
SELECT * FROM table_name;
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
DELETE FROM table_name WHERE condition;
- هذه بعض الأمثلة على الأوامر الأساسية في MySQL. يمكنك استكشاف المزيد من الأوامر والتعلم العميق للعمل مع MySQL.
- يتوفر العديد من التطبيقات والأدوات التي تسهل التعامل مع MySQL، بما في ذلك:
1. MySQL Workbench: أداة رسومية قوية توفر واجهة بديهية لإدارة قواعد البيانات وتنفيذ الاستعلامات وتصميم الجداول وأكثر من ذلك.
2. phpMyAdmin: تطبيق ويب يتيح لك إدارة قواعد البيانات MySQL عبر متصفح الويب.
3. HeidiSQL: أداة مفتوحة المصدر توفر واجهة بديهية للتعامل مع قواعد البيانات MySQL وتحرير البيانات وإدارة الجداول.
- MySQL يتعامل مع العديد من لغات البرمجة المختلفة للوصول والتحكم في قواعد البيانات. هنا بعض الأمثلة على استخدام MySQL مع لغات البرمجة الشائعة:
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root", :password => "password", :database => "database_name")
results = client.query("SELECT * FROM table_name")
results.each do |row|
puts row["column_name"]
end
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="database_name"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM table_name")
for row in mycursor:
print(row)
$servername = 'localhost;
$username = 'root';
$password = 'password';
$dbname = 'database_name';
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = 'SELECT * FROM table_name';
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["column_name"];
}
} else {
echo "0 results";
}
$conn->close();- MariaDB هي فرع من MySQL وتعتبر نظام إدارة قواعد بيانات مفتوح المصدر. تتمتع MariaDB بالتوافق مع MySQL تمامًا وتحتفظ بالعديد من الميزات والوظائف الموجودة في MySQL. يمكنك استخدام نفس الأوامر والتعلم الذي تعرفه عن MySQL في MariaDB.
- بالإضافة إلى MariaDB، هناك العديد من البرامج والمشتقات الأخرى التي تعتمد على MySQL، مثل Percona Server وAmazon RDS وOracle MySQL وغيرها.
- إذا كنت ترغب في استخدام SQLite3 في Python بدلاً من MySQL، يمكنك القيام بالخطوات التالية:
pip3 install sqlite3
import sqlite3
# Connect to the database
conn = sqlite3.connect('mydatabase.db')
# Create a cursor object
cursor = conn.cursor()
# Create a table
cursor.execute('''CREATE TABLE customers
(name TEXT, email TEXT)''')
# Insert data into the table
cursor.execute("INSERT INTO customers VALUES ('John Doe', 'john@example.com')")
cursor.execute("INSERT INTO customers VALUES ('Jane Smith', 'jane@example.com')")
# Commit the changes
conn.commit()
# Close the cursor and connection
cursor.close()
conn.close()3. استرداد البيانات :
import sqlite3
# Connect to the database
conn = sqlite3.connect('mydatabase.db')
# Create a cursor object
cursor = conn.cursor()
# Execute SQL query
cursor.execute("SELECT * FROM customers")
# Fetch all rows
rows = cursor.fetchall()
# Process rows
for row in rows:
print("Name:", row[0], "Email:", row[1])
# Close the cursor and connection
cursor.close()
conn.close()* ثامنًا ما هو المختصر المفيد؟
- في هذا المقال، قدمنا لك مقدمة مفصلة عن MySQL وأساسياتها، وشرحنا طرق تثبيتها على أنظمة Windows و Linux. تعرفنا أيضًا على أنواع البيانات الرقمية في MySQL وقدمنا نبذة عن الأوامر الأساسية ونتائجها في الترمينال. أيضًا، قدمنا لمحة عن التطبيقات المستخدمة في MySQL وطرق التعامل معها بسهولة. وأخيرًا، استعرضنا اللغات المستخدمة في MySQL مع أمثلة في Ruby و Python و PHP، وتعرفنا على بعض البرامج المشتقة من MySQL مثل MariaDB. نأمل أن يكون هذا المقال قد ساعدك على فهم MySQL واستخدامه بكفاءة في تطبيقاتك.