Transact-SQL Reference
```wiki
مرجع Transact-SQL
Transact-SQL (يُختصر غالبًا إلى T-SQL) هي مجموعة من امتدادات لغة SQL القياسية، تطورها شركة Microsoft. تُستخدم T-SQL كلغة أساسية لإدارة قواعد البيانات في نظام إدارة قواعد البيانات SQL Server، وتوفر مجموعة واسعة من الميزات التي تتجاوز قدرات SQL القياسية. هذا المقال هو مقدمة شاملة لـ T-SQL للمبتدئين، مع التركيز على المفاهيم الأساسية والأوامر المستخدمة بشكل شائع.
ما هي T-SQL ولماذا نستخدمها؟
SQL (Structured Query Language) هي اللغة القياسية للتفاعل مع قواعد البيانات العلائقية. T-SQL تبني على هذه الأساسيات، مضيفةً ميزات مثل:
- المتغيرات (Variables): تسمح بتخزين القيم وإعادة استخدامها في الاستعلامات والإجراءات المخزنة.
- التحكم في التدفق (Flow Control): مثل حلقات `WHILE` وعبارات `IF...ELSE`، تسمح بإنشاء منطق معقد داخل T-SQL.
- الإجراءات المخزنة (Stored Procedures): مجموعات من أوامر T-SQL التي يمكن استدعاؤها كوحدة واحدة، مما يعزز إعادة الاستخدام والأداء.
- الوظائف المعرفة من قبل المستخدم (User-Defined Functions): تسمح بإنشاء وظائف مخصصة لإجراء حسابات معينة.
- معالجة الأخطاء (Error Handling): آليات للتعامل مع الأخطاء التي قد تحدث أثناء تنفيذ T-SQL.
باختصار، T-SQL توفر قوة ومرونة أكبر من SQL القياسية، مما يجعلها مثالية لتطوير تطبيقات قواعد البيانات المعقدة. فهم T-SQL ضروري لأي شخص يعمل مع SQL Server.
أساسيات بناء الجملة
مثل SQL القياسية، تعتمد T-SQL على بناء جملة يعتمد على الكلمات المفتاحية. الأوامر T-SQL عادةً ما تكون مكتوبة بأحرف كبيرة، ولكن هذا ليس إلزاميًا. الاستعلامات عادةً ما تنتهي بفاصلة منقوطة (;).
- SELECT: يستخدم لاسترجاع البيانات من جدول أو عدة جداول.
- INSERT: يستخدم لإضافة بيانات جديدة إلى جدول.
- UPDATE: يستخدم لتعديل البيانات الموجودة في جدول.
- DELETE: يستخدم لحذف البيانات من جدول.
أنواع البيانات
T-SQL تدعم مجموعة واسعة من أنواع البيانات، بما في ذلك:
النوع | الوصف | مثال |
int | عدد صحيح | 123 |
bigint | عدد صحيح كبير | 1234567890 |
smallint | عدد صحيح صغير | -100 |
tinyint | عدد صحيح صغير جدًا | 0 |
decimal(p, s) | رقم عشري بدقة (p) ومقياس (s) | 123.45 |
varchar(n) | سلسلة نصية بطول متغير (n) | 'Hello' |
nvarchar(n) | سلسلة نصية يونيكود بطول متغير (n) | 'مرحبا' |
char(n) | سلسلة نصية بطول ثابت (n) | 'A' |
nchar(n) | سلسلة نصية يونيكود بطول ثابت (n) | 'ب' |
date | تاريخ | '2023-10-27' |
datetime | تاريخ ووقت | '2023-10-27 10:30:00' |
bit | قيمة منطقية (0 أو 1) | 1 |
أوامر SELECT الأساسية
أمر `SELECT` هو أساس استرجاع البيانات.
مثال: استرجاع جميع الأعمدة من جدول `Customers`
Admin (talk)sql SELECT * FROM Customers; Admin (talk)
مثال: استرجاع عمودين فقط (`CustomerID` و `CustomerName`) من جدول `Customers`
Admin (talk)sql SELECT CustomerID, CustomerName FROM Customers; Admin (talk)
مثال: استخدام عبارة `WHERE` لتصفية النتائج. هنا، نسترجع العملاء الذين يعيشون في مدينة 'London'.
Admin (talk)sql SELECT * FROM Customers WHERE City = 'London'; Admin (talk)
مثال: استخدام عبارة `ORDER BY` لترتيب النتائج. هنا، نرتب العملاء حسب `CustomerName` تصاعديًا.
Admin (talk)sql SELECT * FROM Customers ORDER BY CustomerName ASC; Admin (talk)
مثال: استخدام `TOP` لاسترجاع عدد محدد من الصفوف. هنا، نسترجع أول 5 عملاء.
Admin (talk)sql SELECT TOP 5 * FROM Customers; Admin (talk)
أوامر INSERT, UPDATE, DELETE
- INSERT: لإضافة بيانات جديدة.
Admin (talk)sql INSERT INTO Customers (CustomerName, City) VALUES ('John Doe', 'New York'); Admin (talk)
- UPDATE: لتعديل البيانات الموجودة.
Admin (talk)sql UPDATE Customers SET City = 'Los Angeles' WHERE CustomerID = 1; Admin (talk)
- DELETE: لحذف البيانات.
Admin (talk)sql DELETE FROM Customers WHERE CustomerID = 1; Admin (talk)
المتغيرات (Variables)
تُستخدم المتغيرات لتخزين القيم وإعادة استخدامها. يتم تعريف المتغيرات باستخدام الكلمة المفتاحية `DECLARE`.
مثال:
Admin (talk)sql DECLARE @CustomerID INT; SET @CustomerID = 1;
SELECT * FROM Customers WHERE CustomerID = @CustomerID; Admin (talk)
التحكم في التدفق (Flow Control)
- IF...ELSE: لتنفيذ أوامر مختلفة بناءً على شرط.
Admin (talk)sql IF EXISTS (SELECT 1 FROM Customers WHERE City = 'London') BEGIN
PRINT 'Found customers in London';
END ELSE BEGIN
PRINT 'No customers found in London';
- WHILE: لتنفيذ أوامر بشكل متكرر طالما أن الشرط صحيح.
Admin (talk)sql DECLARE @Counter INT; SET @Counter = 1;
WHILE @Counter <= 5 BEGIN
PRINT @Counter; SET @Counter = @Counter + 1;
الإجراءات المخزنة (Stored Procedures)
الإجراءات المخزنة هي مجموعات من أوامر T-SQL التي يمكن استدعاؤها كوحدة واحدة. تُستخدم الإجراءات المخزنة لتحسين الأداء، وتعزيز الأمان، وتقليل تكرار التعليمات البرمجية.
مثال:
Admin (talk)sql CREATE PROCEDURE GetCustomersByCity (@CityName VARCHAR(50)) AS BEGIN
SELECT * FROM Customers WHERE City = @CityName;
END GO
-- استدعاء الإجراء المخزن EXEC GetCustomersByCity 'London'; Admin (talk)
الوظائف المعرفة من قبل المستخدم (User-Defined Functions)
الوظائف المعرفة من قبل المستخدم تسمح بإنشاء وظائف مخصصة لإجراء حسابات معينة.
مثال:
Admin (talk)sql CREATE FUNCTION CalculateDiscount (@Price DECIMAL(10, 2), @DiscountRate DECIMAL(5, 2)) RETURNS DECIMAL(10, 2) AS BEGIN
DECLARE @DiscountAmount DECIMAL(10, 2); SET @DiscountAmount = @Price * @DiscountRate; RETURN @Price - @DiscountAmount;
END GO
-- استخدام الدالة SELECT dbo.CalculateDiscount(100, 0.10); Admin (talk)
معالجة الأخطاء (Error Handling)
T-SQL توفر آليات للتعامل مع الأخطاء التي قد تحدث أثناء التنفيذ. يتم استخدام كتل `TRY...CATCH` لهذا الغرض.
مثال:
-- أوامر قد تسبب خطأ DELETE FROM Customers WHERE CustomerID = 999;
END TRY BEGIN CATCH
-- معالجة الخطأ PRINT ERROR_MESSAGE();
الربط بين الجداول (Joining Tables)
الربط بين الجداول يسمح بدمج البيانات من جداول متعددة بناءً على علاقة بينها.
- INNER JOIN: يسترجع الصفوف التي لها تطابق في كلا الجدولين.
- LEFT JOIN: يسترجع جميع الصفوف من الجدول الأيسر، بالإضافة إلى الصفوف المتطابقة من الجدول الأيمن.
- RIGHT JOIN: يسترجع جميع الصفوف من الجدول الأيمن، بالإضافة إلى الصفوف المتطابقة من الجدول الأيسر.
- FULL OUTER JOIN: يسترجع جميع الصفوف من كلا الجدولين.
مثال: استخدام `INNER JOIN` لدمج بيانات من جدول `Customers` وجدول `Orders`.
Admin (talk)sql SELECT Customers.CustomerName, Orders.OrderID FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID; Admin (talk)
التجميع (Aggregation)
تُستخدم وظائف التجميع لحساب القيم الملخصة من مجموعة من الصفوف.
- COUNT: لحساب عدد الصفوف.
- SUM: لحساب مجموع القيم.
- AVG: لحساب متوسط القيم.
- MIN: لإيجاد القيمة الصغرى.
- MAX: لإيجاد القيمة الكبرى.
مثال: حساب عدد العملاء.
Admin (talk)sql SELECT COUNT(*) FROM Customers; Admin (talk)
الميزات المتقدمة في T-SQL
هناك العديد من الميزات المتقدمة في T-SQL، بما في ذلك:
- المشغلات (Triggers): إجراءات يتم تنفيذها تلقائيًا استجابةً لأحداث معينة (مثل INSERT، UPDATE، DELETE).
- وجهات النظر (Views): استعلامات مخزنة يمكن استخدامها كجداول افتراضية.
- الفهارس (Indexes): هياكل بيانات لتحسين أداء الاستعلامات.
- التعامل مع XML: وظائف للعمل مع بيانات XML.
T-SQL والخيارات الثنائية
على الرغم من أن T-SQL لا تتعامل بشكل مباشر مع الخيارات الثنائية، إلا أنها ضرورية لإدارة البيانات المتعلقة بالخيارات الثنائية. على سبيل المثال، يمكن استخدام T-SQL لتخزين بيانات:
- سجل التداول (Trading History): تسجيل جميع الصفقات التي تم تنفيذها.
- بيانات المستخدم (User Data): تخزين معلومات المستخدمين وحساباتهم.
- تحليل البيانات (Data Analysis): إجراء تحليلات على بيانات التداول لتحديد الاتجاهات والاستراتيجيات الفعالة.
- استراتيجيات الخيارات الثنائية:**
- 60 Second Strategy
- Binary Options Scalping
- Bollinger Bands Strategy
- Moving Average Crossover
- Pin Bar Strategy
- Price Action Trading
- Trend Following
- Straddle Strategy
- Strangle Strategy
- Butterfly Spread
- التحليل الفني:**
- Fibonacci Retracement
- Ichimoku Cloud
- MACD (Moving Average Convergence Divergence)
- RSI (Relative Strength Index)
- Stochastic Oscillator
- تحليل حجم التداول:**
- المؤشرات:**
- الاتجاهات:**
- أسماء الاستراتيجيات:**
الخلاصة
T-SQL هي لغة قوية ومرنة لإدارة قواعد البيانات في SQL Server. فهم أساسيات T-SQL ضروري لأي شخص يعمل مع SQL Server، وخاصةً في سياق تطبيقات تتطلب معالجة بيانات معقدة، مثل أنظمة تداول الخيارات الثنائية. هذا المقال قدم مقدمة شاملة للمفاهيم الأساسية والأوامر المستخدمة بشكل شائع في T-SQL. لمزيد من التعمق، يوصى باستكشاف الوثائق الرسمية لـ Microsoft SQL Server. SQL Server SQL Database Management Data Modeling Query Optimization Index Tuning Stored Procedure Trigger View (Database) Data Types Transact-SQL Best Practices ```
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين