Mission Carthage

الرئيسية › الدروس › استعلامات SQL بسيطة

استعلامات SQL: SELECT وWHERE وORDER BY وUPDATE وDELETE

الفصل 28 · 3 علوم الإعلامية, باك علوم الإعلامية

اسأل table: اختار الأعمدة، صفّي الأسطر بـ WHERE، رتّبهم، وبعد بدّل وفسّخ أسطر بـ UPDATE و DELETE.

دروس هذا الفصل

  1. نختارو أعمدة وأسطر
  2. نرتّبو ونصفّيو خير
  3. نبدّلو ونفسّخو أسطر

الدرس 28.1 : نختارو أعمدة وأسطر

10 دقيقة

الـ requête SELECT تقرا table من غير ما تبدّلها. بعد SELECT نكتبو الأعمدة اللي نحبّوها؛ بعد FROM، الـ table؛ وبعد WHERE، الشرط اللي لازم الأسطر يحقّقوه.

SELECT * FROM eleve;
SELECT nom, prenom FROM eleve WHERE ville = 'Sfax';

نحسبو ونسمّيو عمود

SELECT prenom, moyenne + 1 AS moyenne_bonus FROM eleve;

نصيحة : AS تعطي اسم للعمود متاع النتيجة. من غير AS، MySQL يسمّيه كيما كتبتو: moyenne + 1.

انتبه : فاصلة منسية بين زوز أعمدة ما تعطيش غلطة: SELECT nom prenom يورّي عمود واحد برك، nom، بالاسم prenom.

بـ SQL

الـ table eleve تتصنع في أوّل السكريبت. بدّل الشرط متاع الـ WHERE: التلامذة متاع سوسة، وبعد اللي عندهم أكثر من 12.

CREATE TABLE eleve (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  prenom VARCHAR(30) NOT NULL,
  ville VARCHAR(20),
  moyenne DECIMAL(4,2)
);
INSERT INTO eleve VALUES
  (1, 'Ben Salah', 'Amine', 'Sfax', 12.50),
  (2, 'Trabelsi', 'Sarra', 'Tunis', 16.25),
  (3, 'Jaziri', 'Yassine', 'Sfax', 9.75),
  (4, 'Mansour', 'Rim', 'Sousse', 14.00),
  (5, 'Bouzid', 'Hedi', NULL, 11.00);

SELECT nom, prenom, moyenne FROM eleve WHERE ville = 'Sfax';

الدرس 28.2 : نرتّبو ونصفّيو خير

12 دقيقة

الترتيب: ORDER BY

SELECT prenom, moyenne FROM eleve ORDER BY moyenne DESC, prenom;

ORDER BY يرتّب النتيجة: ASC من الأصغر للأكبر (بالـ défaut)، DESC من الأكبر للأصغر. بعد فاصلة، عمود ثاني يفرّق بين المتساويين. من غير ORDER BY، MySQL ما يوعدش بـ حتى ترتيب.

شروط أغنى

SELECT DISTINCT ville FROM eleve;
SELECT prenom FROM eleve ORDER BY moyenne DESC LIMIT 3;

نصيحة : DISTINCT تنحّي الأسطر المكرّرة من النتيجة. LIMIT 3 تخلّي أوّل 3 أسطر: مع ORDER BY ... DESC، هوما أحسن 3.

بـ SQL

جرّب كل شرط: عوّض الـ WHERE بـ moyenne BETWEEN 10 AND 14، وبعد nom LIKE 'B%'، وبعد ville IS NULL.

CREATE TABLE eleve (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  prenom VARCHAR(30) NOT NULL,
  ville VARCHAR(20),
  moyenne DECIMAL(4,2)
);
INSERT INTO eleve VALUES
  (1, 'Ben Salah', 'Amine', 'Sfax', 12.50),
  (2, 'Trabelsi', 'Sarra', 'Tunis', 16.25),
  (3, 'Jaziri', 'Yassine', 'Sfax', 9.75),
  (4, 'Mansour', 'Rim', 'Sousse', 14.00),
  (5, 'Bouzid', 'Hedi', NULL, 11.00);

SELECT nom, prenom, ville FROM eleve WHERE ville IN ('Sfax', 'Sousse') ORDER BY nom;

الدرس 28.3 : نبدّلو ونفسّخو أسطر

10 دقيقة

التبديل: UPDATE

UPDATE eleve SET ville = 'Gabès' WHERE id = 5;
UPDATE eleve SET moyenne = moyenne + 0.5 WHERE ville = 'Sfax';

UPDATE يبدّل قيم: بعد SET، الأعمدة والقيم الجديدة متاعهم (مفرّقين بفاصلات)؛ بعد WHERE، الأسطر المعنية. القيمة الجديدة تنجم تتحسب بالقديمة: moyenne + 0.5.

الفسخ: DELETE

DELETE FROM eleve WHERE moyenne < 10;

انتبه : من غير WHERE، UPDATE يبدّل الأسطر الكل و DELETE يفسخهم الكل. قبل ما تخدّم، اقرا الشرط متاعك بـ SELECT: يورّيك الأسطر اللي باش يتمسّو.

بـ SQL

خدّم: الـ SELECT الأخير يورّي التبديلات. وبعد فسّخ التلامذة اللي ما عندهمش مدينة بـ DELETE تحطّو قبل الـ SELECT.

CREATE TABLE eleve (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  prenom VARCHAR(30) NOT NULL,
  ville VARCHAR(20),
  moyenne DECIMAL(4,2)
);
INSERT INTO eleve VALUES
  (1, 'Ben Salah', 'Amine', 'Sfax', 12.50),
  (2, 'Trabelsi', 'Sarra', 'Tunis', 16.25),
  (3, 'Jaziri', 'Yassine', 'Sfax', 9.75),
  (4, 'Mansour', 'Rim', 'Sousse', 14.00),
  (5, 'Bouzid', 'Hedi', NULL, 11.00);

UPDATE eleve SET moyenne = moyenne + 0.5 WHERE ville = 'Sfax';
SELECT * FROM eleve;

تدرّب مجانًا

كل درس فيه 3 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.

افتح الفصل في Mission Carthage جرّب في الكومبيلاتور أونلاين

← الفصل اللي قبل : قواعد البيانات: نصنعو الـ tables · الفصل اللي بعد : SQL: الربط، التجميع والاستعلامات الفرعية →

كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة

الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.