تعلم قواعد بيانات SQL Database
هذا الاستعلام البسيط يوضح مفاهيم أساسية مثل الاختيار، الدمج، الفلترة والترتيب في لغة الاستعلام SQL SELECT student_name, student_id, course_name, grade FROM students INNER JOIN courses ON students.course_id = courses.course_id…
هذا الاستعلام يقوم بالآتي:
يختار أربعة أعمدة من الجدولين: اسم الطالب، رقم الطالب، اسم المادة، والدرجة.
يدمج (INNER JOIN) جدول الطلاب وجدول المواد معًا على أساس course_id.
يفلتر النتائج ليشمل فقط الطلاب الذين حصلوا على درجة 80 أو أكثر.
يرتب النتائج تنازليًا حسب الدرجة.
يختار أربعة أعمدة من الجدولين: اسم الطالب، رقم الطالب، اسم المادة، والدرجة.
يدمج (INNER JOIN) جدول الطلاب وجدول المواد معًا على أساس course_id.
يفلتر النتائج ليشمل فقط الطلاب الذين حصلوا على درجة 80 أو أكثر.
يرتب النتائج تنازليًا حسب الدرجة.
👍1
الفلترة في قواعد البيانات هي عملية اختيار وإرجاع السجلات (الصفوف) من جدول البيانات التي تستوفي معايير أو شروط محددة.
باستخدام شرط WHERE:
باستخدام شروط HAVING:
باستخدام شرط FILTER في بعض قواعد البيانات الحديثة:
باستخدام شرط WHERE:
باستخدام شروط HAVING:
باستخدام شرط FILTER في بعض قواعد البيانات الحديثة:
👍2
تعلم قواعد بيانات SQL Database
الفلترة في قواعد البيانات هي عملية اختيار وإرجاع السجلات (الصفوف) من جدول البيانات التي تستوفي معايير أو شروط محددة. باستخدام شرط WHERE: باستخدام شروط HAVING: باستخدام شرط FILTER في بعض قواعد البيانات الحديثة:
شرح توضيح لهذه الطرق
باستخدام شرط WHERE:
هذا هو الطريقة الأكثر شيوعًا للفلترة في SQL.
يتم وضع الشروط المطلوبة بعد كلمة WHERE.
يمكن استخدام عدة شروط منطقية مثل =, >, <, <=, >=, LIKE, IN, BETWEEN، إلخ.
مثال: WHERE grade >= 80 AND course_name = 'Math'
باستخدام شروط HAVING:
تُستخدم HAVING مع الاستعلامات المجمعة (Aggregate Queries) التي تستخدم وظائف تجميع مثل SUM، AVG، COUNT.
HAVING تسمح بتطبيق شروط على النتائج المجمعة.
مثال: GROUP BY course_name HAVING AVG(grade) >= 85
باستخدام شرط FILTER في بعض قواعد البيانات الحديثة:
هذه طريقة بديلة مشابهة لـ WHERE ولكن تُستخدم في سياقات معينة.
مثال: SELECT student_name, grade FILTER (WHERE grade >= 80) FROM students
باستخدام شرط WHERE:
هذا هو الطريقة الأكثر شيوعًا للفلترة في SQL.
يتم وضع الشروط المطلوبة بعد كلمة WHERE.
يمكن استخدام عدة شروط منطقية مثل =, >, <, <=, >=, LIKE, IN, BETWEEN، إلخ.
مثال: WHERE grade >= 80 AND course_name = 'Math'
باستخدام شروط HAVING:
تُستخدم HAVING مع الاستعلامات المجمعة (Aggregate Queries) التي تستخدم وظائف تجميع مثل SUM، AVG، COUNT.
HAVING تسمح بتطبيق شروط على النتائج المجمعة.
مثال: GROUP BY course_name HAVING AVG(grade) >= 85
باستخدام شرط FILTER في بعض قواعد البيانات الحديثة:
هذه طريقة بديلة مشابهة لـ WHERE ولكن تُستخدم في سياقات معينة.
مثال: SELECT student_name, grade FILTER (WHERE grade >= 80) FROM students
👍2❤1
فلترة السجلات باستخدام شرط WHERE:
SELECT *
FROM customers
WHERE customer_name LIKE 'John%'
AND country = 'USA'
AND order_total > 1000;
فلترة النتائج المجمعة باستخدام شرط HAVING:
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
فلترة باستخدام شرط FILTER:
SELECT
student_name,
grade,
grade FILTER (WHERE grade >= 80) AS high_grade
FROM
students;
هذا الاستعلام سيإرجاع اسم الطالب، درجته العامة، وكذلك درجته العالية (80 أو أكثر) في عمود منفصل.
SELECT *
FROM customers
WHERE customer_name LIKE 'John%'
AND country = 'USA'
AND order_total > 1000;
فلترة النتائج المجمعة باستخدام شرط HAVING:
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
فلترة باستخدام شرط FILTER:
SELECT
student_name,
grade,
grade FILTER (WHERE grade >= 80) AS high_grade
FROM
students;
هذا الاستعلام سيإرجاع اسم الطالب، درجته العامة، وكذلك درجته العالية (80 أو أكثر) في عمود منفصل.
👍1
كيفية إضافة عمود في الجدول وتعيين قيمة افتراضية له إذا لم يدخل المستخدم
—How to add a column in a table and assign it a default value if the user does not enter
alter table Mas
add AllowAddteacher int not null default(1) —-
—How to add a column in a table and assign it a default value if the user does not enter
alter table Mas
add AllowAddteacher int not null default(1) —-
👍1
اما ننشأ داله تعدي قيمه او تعيد جدول
إنشاء دالة تعيد قيمة
الآن، سنقوم بإنشاء دالة تقوم بحساب مجموع المبالغ في جدول الطلبات.
كود إنشاء الدالة:
CREATE FUNCTION calculate_total_amount()
RETURNS DECIMAL(10, 2)
AS
BEGIN
DECLARE total_amount DECIMAL(10, 2);
SELECT SUM(amount) INTO total_amount FROM orders;
RETURN total_amount;
END;
إنشاء دالة تعيد قيمة
الآن، سنقوم بإنشاء دالة تقوم بحساب مجموع المبالغ في جدول الطلبات.
كود إنشاء الدالة:
CREATE FUNCTION calculate_total_amount()
RETURNS DECIMAL(10, 2)
AS
BEGIN
DECLARE total_amount DECIMAL(10, 2);
SELECT SUM(amount) INTO total_amount FROM orders;
RETURN total_amount;
END;
👍1
شرح الكود جسم الداله الداله بسيطه
في الدوال التي تعيد قيمه او جدول
CREATE FUNCTION: لإنشاء دالة جديدة.
calculate_total_amount(): اسم الدالة.
RETURNS DECIMAL(10, 2): نوع القيمة التي ستعيدها الدالة.
DECLARE: لتعريف متغير لتخزين المجموع.
SELECT SUM(amount): لحساب مجموع القيم في عمود amount.
RETURN: لإرجاع القيمة المحسوبة.
في الدوال التي تعيد قيمه او جدول
CREATE FUNCTION: لإنشاء دالة جديدة.
calculate_total_amount(): اسم الدالة.
RETURNS DECIMAL(10, 2): نوع القيمة التي ستعيدها الدالة.
DECLARE: لتعريف متغير لتخزين المجموع.
SELECT SUM(amount): لحساب مجموع القيم في عمود amount.
RETURN: لإرجاع القيمة المحسوبة.
👍1
استخدام الدالة
يمكنك استخدام الدالة التي أنشأتها للحصول على مجموع المبالغ
SELECT calculate_total_amount() AS total_amount;
يمكنك استخدام الدالة التي أنشأتها للحصول على مجموع المبالغ
SELECT calculate_total_amount() AS total_amount;
👍1
إنشاء دالة تعيد جدول (اختياري)
إذا كنت ترغب في إنشاء دالة تعيد جدولًا، يمكنك استخدام الكود التالي (مثل PostgreSQL):
CREATE FUNCTION get_orders()
RETURNS TABLE(id INT, amount DECIMAL(10, 2))
AS $$
BEGIN
RETURN QUERY SELECT id, amount FROM orders;
END;
$$ LANGUAGE plpgsql;
إذا كنت ترغب في إنشاء دالة تعيد جدولًا، يمكنك استخدام الكود التالي (مثل PostgreSQL):
CREATE FUNCTION get_orders()
RETURNS TABLE(id INT, amount DECIMAL(10, 2))
AS $$
BEGIN
RETURN QUERY SELECT id, amount FROM orders;
END;
$$ LANGUAGE plpgsql;
👍1
للاستعلام عن البيانات التي تعيدها الدالة:
SELECT * FROM get_orders();
SELECT * FROM get_orders();
👍1
التطبيق العملي لكي نفهم الموضوع
انشا جدول
ثم ادخل بيانات
ثم طبق امثله
انشا جدول
ثم ادخل بيانات
ثم طبق امثله
👍1
الخطوة 1: تهيئه البيئة مثل انشاء قاعده البيانات
الخطوة 2: إنشاء جدول
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
Amount DECIMAL(10, 2)
);
الخطوة 2: إنشاء جدول
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
Amount DECIMAL(10, 2)
);
👍1
الخطوة 12: إدخال بيانات
INSERT INTO Orders (OrderID, Amount) VALUES (1, 100.50);
INSERT INTO Orders (OrderID, Amount) VALUES (2, 200.75);
INSERT INTO Orders (OrderID, Amount) VALUES (3, 150.25);
الخطوة 4: إنشاء دالة تعيد قيمة
CREATE FUNCTION CalculateTotalAmount()
RETURNS DECIMAL(10, 2)
AS
BEGIN
DECLARE @TotalAmount DECIMAL(10, 2);
SELECT @TotalAmount = SUM(Amount) FROM Orders;
RETURN @TotalAmount;
END;
الخطوة 5: استخدام الدالة
SELECT dbo.CalculateTotalAmount() AS TotalAmount;
INSERT INTO Orders (OrderID, Amount) VALUES (1, 100.50);
INSERT INTO Orders (OrderID, Amount) VALUES (2, 200.75);
INSERT INTO Orders (OrderID, Amount) VALUES (3, 150.25);
الخطوة 4: إنشاء دالة تعيد قيمة
CREATE FUNCTION CalculateTotalAmount()
RETURNS DECIMAL(10, 2)
AS
BEGIN
DECLARE @TotalAmount DECIMAL(10, 2);
SELECT @TotalAmount = SUM(Amount) FROM Orders;
RETURN @TotalAmount;
END;
الخطوة 5: استخدام الدالة
SELECT dbo.CalculateTotalAmount() AS TotalAmount;
👍2
ان شاء الله الجميع يستفيد بالتطبيق العملي وان شاء الله نحاول نقدم المزيد من الشروحات ويا حبذا الجميع يتفاعل ويشارك الاخرين بالأفكار والملاحظات
👍7❤1
شرح اكثر على انشاء دوال في قواعد البيانات
لو نريد عمل دالة ترجع بيانات العملاء بناءً على المبيعات
الخطوة 1: إنشاء الجداول
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName NVARCHAR(100)
);
CREATE TABLE Sales (
SaleID INT PRIMARY KEY,
CustomerID INT,
SaleAmount DECIMAL(10, 2),
SaleDate DATETIME,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
لو نريد عمل دالة ترجع بيانات العملاء بناءً على المبيعات
الخطوة 1: إنشاء الجداول
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName NVARCHAR(100)
);
CREATE TABLE Sales (
SaleID INT PRIMARY KEY,
CustomerID INT,
SaleAmount DECIMAL(10, 2),
SaleDate DATETIME,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
👍2
إنشاء الدالة
CREATE FUNCTION GetCustomerSales(@ID INT)
RETURNS TABLE
AS
RETURN
(
SELECT SaleID, SaleAmount, SaleDate
FROM Sales
WHERE CustomerID = @ID
);
CREATE FUNCTION GetCustomerSales(@ID INT)
RETURNS TABLE
AS
RETURN
(
SELECT SaleID, SaleAmount, SaleDate
FROM Sales
WHERE CustomerID = @ID
);
👍2
إدخال بعض البيانات للجدولين السابقين لكي نشوف النتائج
INSERT INTO Customers (CustomerID, CustomerName) VALUES (1, 'Ali');
INSERT INTO Customers (CustomerID, CustomerName) VALUES (2, 'Sara');
INSERT INTO Sales (SaleID, CustomerID, SaleAmount, SaleDate) VALUES (1, 1, 100.00, '2023-01-01');
INSERT INTO Sales (SaleID, CustomerID, SaleAmount, SaleDate) VALUES (2, 1, 150.00, '2023-02-01');
INSERT INTO Sales (SaleID, CustomerID, SaleAmount, SaleDate) VALUES (3, 2, 200.00, '2023-03-01');
INSERT INTO Customers (CustomerID, CustomerName) VALUES (1, 'Ali');
INSERT INTO Customers (CustomerID, CustomerName) VALUES (2, 'Sara');
INSERT INTO Sales (SaleID, CustomerID, SaleAmount, SaleDate) VALUES (1, 1, 100.00, '2023-01-01');
INSERT INTO Sales (SaleID, CustomerID, SaleAmount, SaleDate) VALUES (2, 1, 150.00, '2023-02-01');
INSERT INTO Sales (SaleID, CustomerID, SaleAmount, SaleDate) VALUES (3, 2, 200.00, '2023-03-01');
👍3❤1
يمكنك استخدام الدالة لاستعلام المبيعات الخاصة بعميل معين كالتالي:
مثال
SELECT * FROM GetCustomerSales(1);
مثال
SELECT * FROM GetCustomerSales(1);
👍1