سلام الله عليكم كيف احوالكم
استعلام متداخل لإظهار المنتجات التي تم شراؤها بواسطة أكثر من عميل:
SELECT p.ProductName, COUNT(o.CustomerID) as NumCustomers
FROM Products p
INNER JOIN OrderDetails od ON p.ProductID = od.ProductID
INNER JOIN Orders o ON od.OrderID = o.OrderID
GROUP BY p.ProductName
HAVING COUNT(o.CustomerID) > 1;
هذا الاستعلام يقوم بدمج بيانات الجداول المنتجات والطلبات وتفاصيل الطلبات، ثم يحسب عدد العملاء الذين اشتروا كل منتج ويظهر المنتجات التي تم شراؤها بواسطة أكثر من عميل.
استعلام متداخل لإظهار المنتجات التي تم شراؤها بواسطة أكثر من عميل:
SELECT p.ProductName, COUNT(o.CustomerID) as NumCustomers
FROM Products p
INNER JOIN OrderDetails od ON p.ProductID = od.ProductID
INNER JOIN Orders o ON od.OrderID = o.OrderID
GROUP BY p.ProductName
HAVING COUNT(o.CustomerID) > 1;
هذا الاستعلام يقوم بدمج بيانات الجداول المنتجات والطلبات وتفاصيل الطلبات، ثم يحسب عدد العملاء الذين اشتروا كل منتج ويظهر المنتجات التي تم شراؤها بواسطة أكثر من عميل.
👍2
هذا الاستعلام البسيط يوضح مفاهيم أساسية مثل الاختيار، الدمج، الفلترة والترتيب في لغة الاستعلام SQL
SELECT
student_name,
student_id,
course_name,
grade
FROM
students
INNER JOIN
courses ON students.course_id = courses.course_id
WHERE
grade >= 80
ORDER BY
grade DESC;
SELECT
student_name,
student_id,
course_name,
grade
FROM
students
INNER JOIN
courses ON students.course_id = courses.course_id
WHERE
grade >= 80
ORDER BY
grade DESC;
👍1
تعلم قواعد بيانات 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