قائمة طعام
مجاني
التسجيل
الصفحة الرئيسية  /  الوسائط المتعددة/ وظائف سلسلة SQL. الجمع بين وظائف السلسلة في عمليات سلسلة Transact-SQL في معاملة sql

وظائف سلسلة SQL. الجمع بين وظائف السلسلة في عمليات سلسلة Transact-SQL في معاملة sql

من الكتاب سجل ويندوز المؤلف كليموف أ

إنجاز سريع عمل ويندوز(Windows NT / 2000 / XP) سمحت الإصدارات 3.1 و 3.5 من Windows NT بإغلاق جميع العمليات في 20 ثانية. في Windows NT 3.51 والإصدارات الأحدث ، من الممكن تحديد الفاصل الزمني الذي يجب أن يتم خلاله إيقاف تشغيل النظام. للقيام بذلك ، تحتاج إلى إصلاح المفتاح

من كتاب معالجة قاعدة البيانات باستخدام Visual Basic® .NET المؤلف مكمانوس جيفري ب

الفصل 3 تقديم SQL Server 2000 في الماضي ، بدأ العديد من المبرمجين في بناء تطبيقات قواعد البيانات باستخدام Visual Basic وقاعدة بيانات Microsoft Access Jet. بمجرد أن نمت قاعدة البيانات إلى عدة آلاف من السجلات أو أكثر

من كتاب Windows Script Host لنظام التشغيل Windows 2000 / XP المؤلف بوبوف أندري فلاديميروفيتش

متطلبات تثبيت SQL Server 2000 يتطلب تثبيت SQL Server 2000 جهاز كمبيوتر مزودًا بمعالج Pentium (أو متوافق) بتردد لا يقل عن 166 ميجاهرتز ومساحة على القرص الثابت تتراوح من 95 إلى 270 ميجابايت (270 ميجابايت للتثبيت النموذجي و 44 ميجابايت للحصول على Desktop Engine) ، محرك الأقراص المرنة

من كتاب ما لا يكتبون عنه في كتب دلفي المؤلف Grigoriev A.B.

تثبيت SQL Server 2000 بعد تحديد الكمبيوتر بالتكوين المطلوب ، يمكنك متابعة التثبيت. بشكل عام ، عملية التثبيت لـ SQL Server 2000 بسيطة للغاية ، باستثناء ما يلي: تستغرق وقتًا طويلاً ؛ أثناء عملية التثبيت ، يتم تعيين الكثير لأول مرة

من كتاب PHP Author's Reference

أساسيات SQL Server 2000 بعد تثبيت SQL Server وبدء تشغيله ، يجب إكمال الخطوات التالية قبل البدء في استرداد البيانات أو حفظها: إنشاء قاعدة بيانات واحدة أو أكثر. إنشاء جداول في قاعدة البيانات ؛ خلق وجهات النظر وتخزينها

من كتاب XSLT المؤلف هولزنر ستيفن

وظائف للعمل مع المصفوفات يوضح A2.17 الوظائف التي يمكنك من خلالها إنشاء مصفوفات جديدة والحصول على معلومات حول الموجود منها جدول A2.17. دالات للعمل مع المصفوفات دالة وصف الصفيف (arglist) ترجع متغيرًا

من كتاب Linux: الدليل الكامل المؤلف Kolisnichenko دينيس نيكولايفيتش

3.3 التفاصيل الدقيقة للعمل مع السلاسل في هذا القسم سنلقي نظرة على بعض التفاصيل الدقيقة للعمل مع السلاسل ، والتي تسمح لك بفهم أفضل للكود الذي يولده المترجم لبعض الإجراءات التي تبدو أولية. ليست كل الأمثلة الواردة هنا تعمل بشكل مختلف عن

من كتاب فن البرمجة بلغة البرمجة الصدفية بواسطة كوبر مندل

من كتاب لغة سي - دليل المبتدئين بواسطة براتا ستيفن

وظائف XPath للعمل مع السلاسل تتوفر وظائف XPath التالية للعمل مع السلاسل في XSLT: concat (سلسلة سلسلة 1 ، سلسلة سلسلة 2 ، ...). تُرجع سلسلة (اتحاد) جميع السلاسل التي تم تمريرها إليها ؛ يحتوي على (سلسلة سلسلة 1 ، سلسلة سلسلة 2). إرجاع صحيح إذا كان السطر الأول يحتوي على (يحتوي) على الثاني

من كتاب Linux و UNIX: Shell Programming. دليل المطور. بواسطة تينسلي ديفيد

23.2.2. وظائف الذاكرة تقوم وظائف الذاكرة في مكتبة Glib بنفس وظائف C.

من كتاب وصف لغة PascalABCNET المؤلف فريق RuBoard

من كتاب المؤلف

13. سلاسل الأحرف والوظائف على السلاسل تهيئة الأحرف من سلاسل الأحرف

من كتاب المؤلف

الوظائف التي تعمل مع LINE تحتوي معظم مكتبات لغة C على وظائف تعمل مع السلاسل. دعنا نلقي نظرة على أربعة من أكثرها فائدة وشائعة: strlen () و strcat () و strcmp () و strcpy (). لقد استخدمنا بالفعل الدالة strlen () ، التي تحدد طول سلسلة نصية.

من كتاب المؤلف

من كتاب المؤلف

إجراءات العمل مع الأحرف والسلاسل تعمل Chr (a: byte): char؛ تحويل التعليمات البرمجية إلى Windows وظيفة الأحرف المشفرة ChrUnicode (a: word): char؛ تحويل التعليمات البرمجية إلى دالة أحرف Unicode OrdUnicode (a: char): word؛ يحول حرفًا إلى وظيفة رمز Unicode UpperCase (ch: char): char؛

من كتاب المؤلف

وظائف للعمل مع اللون نوع اللون اللون مرادف لـ System.Drawing.Color. وظيفة RGB (r ، g ، b: بايت): اللون ؛ إرجاع لون يحتوي على مكونات حمراء (r) ، وأخضر (g) ، وأزرق (b) (تقع r و g و b في النطاق من 0 إلى 255) الدالة ARGB (a ، r ، g ، b: byte): اللون؛ إرجاع اللون الذي يحتوي على

فيما يلي قائمة كاملة بوظائف السلسلة مأخوذة من BOL:

النتيجة - 11. لمعرفة ما هي الأحرف ، يمكننا استخدام وظيفة CHAR ، التي تُرجع حرفًا باستخدام رمز ASCII معروف (من 0 إلى 255):

وإليك كيف ، على سبيل المثال ، يمكنك الحصول على جدول رموز لجميع الأحرف الأبجدية:

حدد CHAR (ASCII ("a") + num-1) letter ، ASCII ("a") + num - 1 FROM (SELECT 5 * 5 * (a-1) + 5 * (b-1) + c AS num من (SELECT 1 a UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5) x CROSS JOIN (SELECT 1 b UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5) y CROSS JOIN ( حدد 1 c UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5) z) x حيث ASCII ("a") + num -1 بين ASCII ("a") و ASCII ("z")

بالنسبة لأولئك الذين لم يعرفوا بعد إنشاء تسلسل رقمي ، أشير إلى المقالة المقابلة.

كما تعلم ، تختلف رموز الأحرف الصغيرة والكبيرة. لذلك ، للحصول على مجموعة كاملة دون إعادة كتابة الاستعلام ، ما عليك سوى إضافة مجموعة مماثلة إلى الكود أعلاه:

أفترض أنه لن يكون من الصعب إضافة هذه الرسالة إلى الجدول إذا لزم الأمر.

ضع في اعتبارك الآن مشكلة إيجاد السلسلة الفرعية المطلوبة في تعبير سلسلة. هناك نوعان من الوظائف التي يمكن استخدامها لهذا - شارينديكسو باتينديكس... كلاهما يعيد موضع البداية (موضع الحرف الأول من السلسلة الفرعية) للسلسلة الفرعية في السلسلة. تحتوي الدالة CHARINDEX على النحو التالي:

شاريندكس ( lookup_expression, سلسلة_تعبير[, يبدأ فى مكان])

ها هي معلمة عدد صحيح اختياري يبدأ فى مكانيحدد الموضع في تعبير السلسلة الذي يتم من خلاله إجراء البحث lookup_expression... إذا تم حذف هذه المعلمة ، يتم إجراء البحث من البداية سلسلة_تعبير... على سبيل المثال ، الطلب

وتجدر الإشارة إلى أنه إذا كانت السلسلة الفرعية المطلوبة أو تعبير السلسلة هو NULL ، فستكون نتيجة الوظيفة أيضًا NULL.

يحدد المثال التالي مواضع التكرار الأول والثاني للحرف "أ" في اسم السفينة "كاليفورنيا"

وهنا ، على سبيل المثال ، كيف يمكنك العثور على أسماء السفن التي تحتوي على تسلسل من ثلاثة أحرف ، الأول والأخير هو "e":

غرفة البخار اليساروظيفة حقإرجاع العدد المحدد من الأحرف إلى يمين تعبير السلسلة:

حق (<تعبير السلسلة>,<عدد الأحرف>)

على سبيل المثال ، إليك كيفية تحديد أسماء السفن التي تبدأ وتنتهي بالحرف نفسه:

هنا نفصل بين اسم الفئة واسم السفينة بمسافة. بالإضافة إلى ذلك ، من أجل عدم تكرار البناء بأكمله كوسيطة لدالة ، فإننا نستخدم استعلامًا فرعيًا. ستبدو النتيجة كما يلي:

للقضاء على هذه الحالة ، يمكنك استخدام وظيفة أخرى مفيدة لين (<تعبير السلسلة>) التي تُرجع عدد الأحرف في السلسلة. دعنا نقصر أنفسنا على الحالة التي يكون فيها عدد الأحرف أكثر من واحد:

وظيفة استنساخحشو الثابت "abcde" بخمس مسافات على اليمين ، والتي لا تأخذها الوظيفة في الاعتبار لين، - في كلتا الحالتين نحصل على 5.
وظيفة طول البياناتيُرجع عدد البايت في تمثيل متغير ويظهر لنا الفرق بين CHAR و VARCHAR. طول البياناتسيعطينا 12 مقابل CHAR و 10 مقابل VARCHAR.
كما هو متوقع، طول البياناتإرجاع الطول الفعلي للمتغير لمتغير VARCHAR. ولكن لماذا تكون النتيجة مساوية لـ 12 لمتغير من النوع CHAR؟ النقطة هي أن CHAR هو نوع طول ثابت... إذا كانت قيمة المتغير أقل من طوله ، وأعلننا أن الطول هو CHAR (12) ، فسيتم "محاذاة" قيمة المتغير مع الطول المطلوب عن طريق إضافة مسافات لاحقة.

توجد مهام على الموقع تحتاج فيها إلى ترتيب (العثور على الحد الأقصى ، وما إلى ذلك) بترتيب رقمي للقيم المعروضة في تنسيق النص... على سبيل المثال ، رقم مقعد الطائرة ("2d") أو سرعة القرص المضغوط ("24x"). المشكلة هي أن النص مرتب على هذا النحو (تصاعدي)

إذا كان مطلوبًا ترتيب الأماكن بترتيب تصاعدي للصفوف ، فيجب أن يكون الترتيب على النحو التالي

إذا قصرنا أنفسنا على هذا فقط ، فإننا نحصل عليه

يبقى الفرز

نستمر في تعلم اللغة استعلامات SQLواليوم سنتحدث عنه وظائف سلسلة SQL... سنغطي وظائف السلسلة الأساسية والمستخدمة بشكل شائع مثل: أقل ، LTRIM ، استبدالوغيرهم ، سننظر في كل شيء ، بالطبع ، من خلال الأمثلة.

حدد اسم || اللقب AS FIO من الجدول

أو للفصل بمسافة ، أدخل

حدد اسم || "" || اللقب AS FIO من الجدول

أولئك. يجمع شريطان عموديان بين عمودين في عمود واحد ، وللفصل بينهما بمسافة ، أضع مسافة بينهما ( يمكنك استخدام أي حرف ، مثل شرطة أو نقطتين) في الفواصل العليا وأيضًا مع شريطين عموديين ( يستخدم Transact-SQL + بدلاً من شريطين عموديين).

دالة INITCAP

علاوة على ذلك هناك أيضا جدا وظيفة مفيدة, INITCAP- التي تُرجع القيمة في سلسلة تبدأ فيها كل كلمة بحرف كبير وتستمر بأحرف صغيرة. يعد هذا ضروريًا إذا لم تتبع قواعد الملء في عمود معين ولعرض كل شيء فيه شكل جميليمكنك استخدام هذه الوظيفة ، على سبيل المثال ، لديك النموذج التالي في عمود الاسم في الجدول: IVAN ivanov أو petr petrov ، يمكنك استخدام هذه الوظيفة.

حدد INITCAP (الاسم) كـ FIO من الجدول

وسوف تحصل عليه هكذا.

الدالة UPPER

وظيفة مماثلة ، تقوم فقط بإرجاع جميع الأحرف الكبيرة ، وهذا هو أعلى.

حدد UPPER (الاسم) AS FIO من الجدول

  • الاسم - اسم العمود ؛
  • 20 - عدد الشخصيات ( طول المجال);
  • "-" هي حرف يتم تبطينه بعدد الأحرف المطلوب.

وظيفة RPAD

لنفكر في الدالة العكسية على الفور. RPAD- الإجراء وبناء الجملة هو نفسه بالنسبة إلى LPAD ، فقط الأحرف الموجودة على اليمين مبطنة ( في LPAD على اليسار).

حدد RPAD (الاسم ، 20 ، "-") كاسم من الجدول

إيفان —————-
سيرجي -----

وظيفة LTRIM

التالي أيضًا وظيفة مفيدة في بعض الحالات ، LTRIM- تزيل هذه الوظيفة الأحرف الموجودة في أقصى اليسار التي تحددها. على سبيل المثال ، لديك عمود "مدينة" في قاعدة البيانات الخاصة بك ، حيث يشار إلى المدينة باسم "موسكو" ، وهناك أيضًا مدن يشار إليها ببساطة باسم "موسكو". لكنك تحتاج إلى عرض التقرير فقط في شكل "موسكو" بدون "ز". أنت فقط تحدد نوعًا من النمط "g". وإذا كانت الأحرف الموجودة في أقصى اليسار تبدأ بحرف "g" ، فلن يتم عرض هذه الأحرف ببساطة.

حدد LTRIM (المدينة ، "المدينة") كغورود من الجدول

تقوم هذه الوظيفة بمسح الأحرف الموجودة على اليسار ، إذا لم تكن هناك أحرف في النمط في بداية السطر ، فإنها تقوم بإرجاع القيمة الأصلية للخلية ، وإذا كانت موجودة ، فإنها تحذفها.

وظيفة RTRIM

لنلقِ نظرة أيضًا على الدالة العكسية على الفور. RTRIM- مثل LTRIM ، يتم البحث عن الأحرف فقط على اليمين.

ملحوظة! في Transact-SQL ، تقوم الدالتان RTRIM و LTRIM بإزالة المسافات من اليمين واليسار ، على التوالي.

استبدال وظيفة

الآن فكر في هذا وظيفة مثيرة للاهتمامكيف يحل محل- تقوم بإرجاع سلسلة يتم فيها استبدال جميع تطابقات الأحرف بالأحرف التي تحددها. لما يمكن استخدامه ، على سبيل المثال ، لديك أعمدة في قاعدة البيانات الخاصة بك ، حيث توجد بعض الرموز الفاصلة ، على سبيل المثال "/". على سبيل المثال ، Ivan / Ivanov ، وتريد عرض Ivan-Ivanov ، ثم اكتب

حدد استبدال (الاسم ، "/" ، "-") من الجدول

وسيكون لديك بديل للرموز.

تستبدل هذه الوظيفة فقط مطابقة كاملة للأحرف ، إذا حددت على سبيل المثال "-" أي سيبحث عن ثلاث شرطات فقط ، ولن يحل محل كل شرطة على حدة ، على عكس الوظيفة التالية.

وظيفة الترجمة

ترجمة- دالة سلسلة تستبدل جميع الأحرف في السلسلة بالأحرف التي تحددها. استنادًا إلى اسم الوظيفة ، قد تخمن أن هذه خلاصة سطر كامل. الفرق بين هذه الوظيفة و REPLACE هو أنها تحل محل كل حرف تحدده ، أي لديك ثلاثة أحرف ، دعنا نقول abc وبمساعدة TRANSLATE يمكنك استبدالها بـ abc بحيث يكون لديك a = a و b = b و c = c ووفقًا لهذا المبدأ ، سيتم استبدال جميع الأحرف المتطابقة. وإذا استبدلت بـ REPLACE ، فأنت تبحث فقط عن تطابق كامل لرموز abc الموجودة في صف واحد.

دالة SUBSTR

سوبسترهذه الوظيفة، تُرجع فقط نطاق الأحرف الذي تحدده. بمعنى آخر ، دعنا نقول سلسلة من 10 أحرف ، ولست بحاجة إلى كل عشرة أحرف ، ولكن لنفترض أنك تحتاج فقط إلى 3-8 ( من الثالث إلى الثامن). باستخدام هذه الوظيفة ، يمكنك القيام بذلك بسهولة. على سبيل المثال ، لديك معرف في قاعدة البيانات بطول ثابت (مثل AA-BB-55-66-CC) وكل مجموعة من الأحرف تعني شيئًا ما. وفي إحدى اللحظات الجميلة ، طُلب منك عرض مجموعتين و 3 مجموعات فقط من الأحرف ، لذلك تكتب استعلامًا من النموذج التالي.

حدد SUBSTR (ident، "4"، "8") من الجدول

أولئك. نقوم بطباعة جميع الأحرف ، بدءًا من 4 وتنتهي بالرقم 8 ، وبعد هذا الاستعلام ستحصل على هذا:

دالة LENGTH - طول السلسلة

يمكن أن تكون الوظيفة التالية مفيدة أيضًا الطول- والتي تحسب فقط عدد الأحرف في السطر. على سبيل المثال ، تحتاج إلى معرفة عدد الأحرف الموجودة في كل خلية في عمود ، دعنا نقول "الاسم" ، جدول مثل هذا.

حدد الطول (الاسم) من الجدول

بعد هذا الطلب سوف تتلقى هذا.

4
6
7

نحن هنا معك ونفحص وظائف سلسلة SQL الأساسية. سنواصل استكشافنا لـ SQL في المقالات المستقبلية.

يمكن أن تكون وظائف Transact-SQL مجمّعة أو عددية. تمت مناقشة هذه الأنواع من الوظائف في هذه المقالة.

وظائف مجمعة

تقوم الدالات التجميعية بإجراء عمليات حسابية على مجموعة من قيم الأعمدة وإرجاع قيمة واحدة دائمًا من هذه الحسابات. يدعم Transact-SQL العديد من الوظائف التجميعية الشائعة:

AVG

تحسب المتوسط ​​الحسابي للبيانات في عمود. يجب أن تكون القيم التي يتم حسابها رقمية.

MIN و MAX

تحديد الحد الأقصى والحد الأدنى لجميع قيم البيانات الموجودة في العمود. يمكن أن تكون القيم رقمية أو سلسلة أو وقت (التاريخ / الوقت).

مجموع

تحسب إجمالي القيم في عمود. يجب أن تكون القيم التي يتم حسابها رقمية.

عدد

تحسب عدد القيم غير الخالية في عمود. الدالة count (*) هي الوظيفة التجميعية الوحيدة التي لا تقوم بإجراء عمليات حسابية على الأعمدة. ترجع هذه الدالة عدد الصفوف (بغض النظر عما إذا كانت الأعمدة الفردية تحتوي على قيم خالية).

COUNT_BIG

على غرار وظيفة العد ، مع اختلاف أنها ترجع قيمة بيانات BIGINT.

سيتم تناول استخدام الدوال التجميعية المنتظمة في عبارة SELECT في مقالة مقبلة.

الوظائف العددية

تُستخدم الدوال العددية Transact-SQL في إنشاء التعبيرات العددية. (تقوم الدالة العددية بإجراء عمليات حسابية على قيمة واحدة أو قائمة من القيم ، بينما تقوم دالة التجميع بإجراء عمليات حسابية على مجموعة من القيم من صفوف متعددة.) يمكن تصنيف الوظائف القياسية على النحو التالي:

    وظائف رقمية

    وظائف التاريخ

    وظائف السلسلة

    وظائف النظام

    وظائف البيانات الوصفية.

تتم مناقشة هذه الأنواع من الوظائف في الأقسام التالية.

وظائف رقمية

الدالات الرقمية Transact-SQL هي وظائف رياضية لتعديل القيم الرقمية. ترد قائمة بالوظائف الرقمية ووصفها المختصر في الجدول أدناه:

وظائف رقمية للعمليات SQL
وظيفة بناء الجملة وصف مثال على الاستخدام
عضلات المعدة ABS (اسم)

إرجاع القيمة المطلقة (أي ، يتم إرجاع القيم السالبة على أنها موجبة) للتعبير الرقمي n.

تحديد ABS (-5.320) - إرجاع 5.320 تحديد ABS (8.90) - إرجاع 8.90

ACOS ، ASIN ، ATAN ، ATN2 ACOS (n) ، ASIN (n) ، ATAN (n) ، ATN2 (n ، m)

الدوال المثلثية العكسية التي تحسب جيب التمام العكسي وجيب الجيب المعكوس وظل الزاوية لقيمة n (بالنسبة إلى ATN2 ، يتم حساب قوس ظل n / m). القيم الأصلية n و m والنتيجة هي من نوع بيانات FLOAT.

COS ، SIN ، TAN ، COT COS (n) ، SIN (n) ، TAN (n) ، COT (n)

الدوال المثلثية التي تحسب جيب التمام ، الجيب ، الظل ، ظل التمام لقيمة n. والنتيجة هي نوع البيانات FLOAT.

درجات ، راديان DEGREES (ن) ، راديان (ن)

تقوم الدالة DEGREES بتحويل الراديان إلى درجات ، RADIANS ، على التوالي ، والعكس صحيح.

حدد الدرجات (PI () / 4) - إرجاع 45 حدد COS (RADIANS (60.0)) - إرجاع 0.5

السقف السقف (ن)

لتقريب رقم إلى قيمة عدد صحيح أكبر.

SELECT CEILING (-5.320) - الإرجاع -5 SELECT CEILING (8.90) - إرجاع 9

مستدير ROUND (n، p، [t])

تقريب n إلى أقرب p. عندما يكون p رقمًا موجبًا ، يتم تقريب الجزء الكسري من n ، وعندما يكون سالبًا ، يتم تقريب الجزء الصحيح. عند استخدام الوسيطة الاختيارية t ، لا يتم تقريب الرقم n ، ولكن يتم اقتطاعه (على سبيل المثال ، تقريبه إلى أسفل).

تحديد الجولة (5.3208، 3) - إرجاع 5.3210 تحديد الجولة (125.384، -1) - إرجاع 130.000 جولة التحديد (125.384، -1، 1) - إرجاع 120.000

أرضية FLOOR (اسم)

تقريب للأسفل إلى أصغر قيمة عدد صحيح.

SELECT FLOOR (5.88) - إرجاع 5

EXP EXP (اسم)

تحسب قيمة e n.

LOG ، LOG10 LOG (n) ، LOG10 (n)

LOG (n) - يحسب اللوغاريتم الطبيعي (أي القاعدة e) لـ n ، LOG10 (n) - يحسب اللوغاريتم العشري (الأساس 10) لـ n.

بي PI ()

إرجاع π (3.1415)

قوة الطاقة (س ، ص)

تحسب قيمة x y.

راند راند ()

تُرجع عددًا عشوائيًا من النوع FLOAT في نطاق القيم بين 0 و 1.

ROWCOUNT_BIG ROWCOUNT_BIG ()

لعرض عدد صفوف الجدول التي تمت معالجتها بواسطة جملة Transact-SQL الأخيرة التي تم تنفيذها بواسطة النظام. قيمة الإرجاع من النوع BIGINT.

لافتة التوقيع (ن)

تُرجع علامة القيمة n كرقم: +1 إذا كانت موجبة ، -1 إذا كانت سالبة.

SQRT ، مربع SQRT (ن) ، مربع (اسم)

SQRT (n) - حساب الجذر التربيعي لـ n ، SQUARE (n) - إرجاع مربع الوسيطة n.

وظائف التاريخ

تقوم دالات التاريخ بتقييم الأجزاء المقابلة من التاريخ أو الوقت للتعبير ، أو إرجاع قيمة الفاصل الزمني. يتم عرض وظائف التاريخ المدعومة Transact-SQL وأوصافها المختصرة في الجدول أدناه:

وظائف تاريخ SQL للعمليات
وظيفة بناء الجملة وصف مثال على الاستخدام
الحصول على الحصول على ()

إرجاع تاريخ النظام الحالي والوقت.

حدد الحصول على ()

قسم البيانات DATEPART (العنصر ، التاريخ)

إرجاع جزء التاريخ المحدد في معلمة العنصر كعدد صحيح.

العوائد 1 (يناير) حدد DATEPART (الشهر ، "01/01/2012") - إرجاع 4 (الأربعاء) حدد DATEPART (أيام الأسبوع ، "01/02/2012")

DATENAME DATENAME (العنصر ، التاريخ)

إرجاع جزء التاريخ المحدد في معلمة العنصر كسلسلة أحرف.

إرجاع يناير SELECT DATENAME (الشهر ، "01/01/2012") - إرجاع الأربعاء SELECT DATENAME (أيام الأسبوع ، "01/02/2012")

DATEDIFF DATEDIFF (item، dat1، dat2)

لحساب الفرق بين جزأي التاريخين dat1 و dat2 وإرجاع نتيجة عدد صحيح في الوحدات المحددة في وسيطة العنصر.

إرجاع 19 (فاصل 19 عامًا بين التواريخ) حدد DATEDIFF (السنة ، "01/01/1990" ، "01/01/2010") - إرجاع 7305 (فاصل 7305 يومًا بين التواريخ) حدد DATEDIFF (اليوم ، 01/01 / 1990 "،" 01/01 .2010 ")

تاريخ DATEADD (عنصر ، ن ، تاريخ)

يضيف رقم الالوحدات المحددة في وسيطة العنصر بتاريخ التاريخ المحدد. (يمكن أن تكون قيمة n سالبة أيضًا.)

أضف 3 أيام إلى التاريخ الحالي SELECT DATEADD (يوم ، 3 ، GETDATE ())

وظائف السلسلة

تعالج دالات السلسلة قيم الأعمدة ، والتي تكون عادةً من نوع بيانات الحرف. يتم عرض وظائف السلسلة المدعومة في Transact-SQL ووصفها المختصر في الجدول أدناه:

وظائف سلسلة Transact-SQL
وظيفة بناء الجملة وصف مثال على الاستخدام
ASCII ، UNICODE ASCII (حرف) ، UNICODE (حرف)

تحويل الحرف المحدد إلى عدد صحيح ASCII المقابل.

حدد ASCII ("W") - 87 حدد UNICODE ("u") - 1102

شار ، نشار CHAR (int) ، NCHAR (int)

يحول رمز ASCII (أو Unicode إذا كان NCHAR) إلى الحرف المقابل.

حدد CHAR (87) - "W" SELECT NCHAR (1102) - "u"

شارينديكس شاريندكس (str1، str2)

تُرجع موضع البداية لحدوث السلسلة الفرعية str1 في السلسلة str2. إذا كانت السلسلة str2 لا تحتوي على سلسلة فرعية str1 ، فإن القيمة المعادة هي 0

إرجاع 5 SELECT CHARINDEX ("التحويل" ، "تعدد الأشكال")

فرق الفرق (str1، str2)

تُرجع عددًا صحيحًا من 0 إلى 4 ، وهو الفرق بين قيم SOUNDEX للسلسلتين str1 و str2. تقوم طريقة SOUNDEX بإرجاع رقم يميز صوت السلسلة. باستخدام هذه الطريقة ، يمكنك تحديد الأوتار المتشابهة. يعمل مع أحرف ASCII فقط.

إرجاع 2 SELECT DIFFERENCE ("إملاء" ، "قول")

يسار يمين يسار (طول ، طويل) ، يمين (طويل ، طويل)

إرجاع عدد الأحرف الأولى من سلسلة str ، معطى بواسطة المعلمة length بالنسبة إلى LEFT وأحرف الطول الأخيرة من str للدالة RIGHT.

DECLAREstr nvarchar (30) = "التزامن" ؛ - إرجاع "Synx" SELECT LEFT (str، 4) - إرجاع "zats" SELECT RIGHT (str، 5)

لين لين (شارع)

لعرض عدد الأحرف (وليس عدد البايتات) في str المحدد في الوسيطة ، بما في ذلك المسافات اللاحقة.

أعلى ، أقل LOWER (str) ، أعلى (str)

تعمل الدالة LOWER على تحويل جميع الأحرف الكبيرة من str1 إلى أحرف صغيرة. لا تتأثر الأحرف الصغيرة والأحرف الأخرى المضمنة في السلسلة. تعمل الدالة UPPER على تحويل جميع الأحرف الصغيرة من str إلى أحرف كبيرة.

DECLAREstr nvarchar (30) = "التزامن" ؛ - إرجاع "SYNCHRONIZATION" SELECT UPPER (str) - إرجاع "التزامن" SELECT LOWER (str)

LTRIM ، RTRIM LTRIM (str) ، RTRIM (str)

تزيل الدالة LTRIM المسافات البادئة في سلسلة السلسلة ، بينما تزيل RTRIM المسافات الموجودة في نهاية السلسلة وفقًا لذلك.

QUOTENAME QUOTENAME (char_string)

إرجاع سلسلة Unicode محددة لتحويل سلسلة الإدخال إلى معرف محدد صالح.

DECLAREstr nvarchar (30) = "التزامن" ؛ - إرجاع "[Sync]" SELECT QUOTENAME (str)

باتينديكس PATINDEX (٪ p٪ ، expr)

تُرجع موضع البداية للتواجد الأول للنمط p في expr المحدد ، أو الصفر إذا لم يتم العثور على النمط المحدد.

إرجاع 4 SELECT PATINDEX ("٪ chro٪"، "التزامن")

يحل محل استبدال (str1، str2، str3)

يستبدل جميع تكرارات str2 في str1 بـ str3.

إرجاع "عدم التزامن" SELECT REPLACE ("Synchronization" ، "Synchronization" ، "Desynchronization")

استنساخ تكرار (str، i)

يكرر السلسلة str i مرات.

إرجاع "aBaBaBaBaB" SELECT REPLICATE ("aB"، 5)

يعكس عكس (شارع)

مخرجات سلسلة str بترتيب عكسي.

إرجاع "yicazinorkhnis" SELECT REVERSE ("التزامن")

الصوت SOUNDEX (str)

تُرجع أداة Soundex المكونة من أربعة أحرف والمستخدمة لتحديد تشابه سلسلتين. يعمل مع أحرف ASCII فقط.

فضاء SPACE (الطول)

تُرجع سلسلة من المسافات بالطول المحدد في معلمة الطول. تناظرية من REPLICATE ("" ، الطول).

STR STR (f [، len [، d]])

يحول تعبير الفاصلة العائمة المحدد f إلى سلسلة ، حيث يمثل len طول السلسلة ، بما في ذلك الفاصلة العشرية والعلامة والأرقام والمسافات (الافتراضي هو 10) ، و d هو عدد المنازل العشرية المراد إرجاعها.

إرجاع "3.14" SELECT STR (3.1415، 4، 2)

أمور STUFF (str1، a، length، str2)

يزيل أحرف الطول من السلسلة str1 ، بدءًا من الموضع a ، ويُدرج السلسلة str2 في مكانها.

ملاحظة في كتاب SELECT STUFF ("Notebook"، 5، 0، "in a") - Handbook SELECT STUFF ("Notebook"، 1، 4، "Hand")

التضمين SUBSTRING (str1، a، length)

يسترجع من السلسلة str ، بدءًا من الموضع a ، سلسلة فرعية بطول الطول.

وظائف النظام

وظائف النظامتوفر لغات Transact-SQL معلومات شاملة حول كائنات قاعدة البيانات. تستخدم معظم وظائف النظام معرفًا رقميًا داخليًا (ID) يتم تعيينه لكل كائن قاعدة بيانات عند إنشائه. من خلال هذا المعرف ، يمكن للنظام تحديد كل كائن في قاعدة البيانات بشكل فريد.

يسرد الجدول التالي بعضًا من أهم وظائف النظام بالإضافة إلى وصف مختصر:

وظائف نظام SQL للعمليات
وظيفة بناء الجملة وصف مثال على الاستخدام
يقذف CAST (نوع w AS [(الطول)]

يحول التعبير w إلى نوع البيانات المحدد ، إن أمكن. يمكن أن تكون الوسيطة w أي تعبير صالح.

سيتم إرجاع 3 SELECT CAST (3.1258 AS INT)

تحالف COALESCE (a1، a2)

تُرجع أول قيمة تعبير غير فارغة من قائمة التعبيرات a1 ، a2 ، ....

COL_LENGTH COL_LENGTH (كائن ، عمود)

تُرجع طول عمود العمود الخاص بكائن قاعدة البيانات (جدول أو طريقة عرض).

تُرجع 4 SELECT COL_LENGTH ("الموظف" ، "المعرّف")

يتحول CONVERT (النوع [(الطول)] ، w)

مكافئ لدالة CAST ، لكن يتم تحديد الوسيطات بشكل مختلف. يمكن استخدامه مع أي نوع بيانات.

حالة الزمن حاليا حالة الزمن حاليا

إرجاع التاريخ والوقت الحاليين.

المستخدم الحالي المستخدم الحالي

ترجع اسم المستخدم الحالي.

طول البيانات DATALENGTH (ض)

تُرجع عدد البايتات التي يشغلها التعبير z.

يُرجع هذا الاستعلام طول كل حقل حدد التاريخ (الاسم الأول) من الموظف

جيتينول GETANSINULL ("dbname")

تُرجع 1 إذا كان استخدام القيم الخالية في قاعدة بيانات dbname يفي بمعيار ANSI SQL.

باطل ISNULL (expr ، القيمة)

ترجع قيمة expr إذا لم تكن فارغة ؛ وإلا ، يتم إرجاع القيمة.

رقمي ISNUMERIC (expr)

تحديد ما إذا كان expr نوعًا رقميًا صالحًا.

NEWID NEWID ()

ينشئ سلسلة ثنائية فريدة من 16 بايت لتخزين قيم نوع بيانات UNIQUEIDENTIFIER.

NEWSEQUENTIALID NEWSEQUENTIALID ()

يقوم بإنشاء GUID أكبر من أي GUID آخر تم إنشاؤه مسبقًا بواسطة هذه الوظيفة على الكمبيوتر المحدد. (لا يمكن استخدام هذه الوظيفة إلا كوظيفة افتراضية للعمود.)

ناليف NULLIF (expr1 ، expr2)

تُرجع فارغة إذا كانت قيم كل من expr1 و expr2 متطابقة.

يقوم الاستعلام بإرجاع NULL للمشروع - الذي يحتوي على Number = "p1" SELECT NULLIF (Number، "p1") من المشروع

خاصية الخادم SERVERPROPERTY (اسم الخاصية)

يحصل على معلومات حول خصائص خادم قاعدة البيانات.

SYSTEM_USER SYSTEM_USER

إرجاع معرف المستخدم الحالي.

معرف المستخدم معرف المستخدم ()

إرجاع اسم مستخدم معرف المستخدم. إذا لم يتم تحديد مستخدم ، فسيتم إرجاع معرف المستخدم الحالي.

اسم االمستخدم اسم االمستخدم ()

إرجاع اسم المستخدم بالمعرف المحدد. إذا لم يتم تحديد معرف ، يتم إرجاع اسم المستخدم الحالي.

وظائف البيانات الوصفية

بشكل أساسي ، تُعيد وظائف البيانات الوصفية معلومات حول قاعدة بيانات محددة وكائنات قاعدة بيانات. يلخص الجدول أدناه بعضًا من أهم وظائف البيانات الوصفية ، جنبًا إلى جنب مع وصف موجز:

وظائف بيانات تعريف Transact-SQL
وظيفة بناء الجملة وصف مثال على الاستخدام
COL_NAME COL_NAME (tab_id ، col_id)

إرجاع اسم العمود مع col_id المحدد للجدول مع tab_id.

إرجاع اسم العمود "LastName" SELECT COL_NAME (OBJECT_ID ("الموظف") ، 3)

ملكية العمود COLUMNPROPERTY (المعرف ، العمود ، الخاصية)

إرجاع معلومات حول العمود المحدد.

تُرجع قيمة الخاصية PRECISION - لعمود المعرّف لجدول الموظف ، حدد COLUMNPROPERTY (OBJECT_ID ("الموظف") ، "المعرّف" ، "الدقة")

خصائص البيانات DATABASEPROPERTY (قاعدة بيانات ، خاصية)

تُرجع قيمة خاصية خاصية قاعدة البيانات.

إرجاع قيمة الخاصية IsNullConcat - لقاعدة بيانات SampleDb SELECT DATABASEPROPERTY ("SampleDb" ، "IsNullConcat")

DB_ID DB_ID ()

إرجاع معرف قاعدة البيانات db_name. إذا لم يتم تحديد اسم قاعدة البيانات ، فسيتم إرجاع معرف قاعدة البيانات الحالية.

DB_NAME DB_NAME ()

إرجاع اسم قاعدة البيانات مع db_id. إذا لم يتم تحديد معرف ، فسيتم إرجاع اسم قاعدة البيانات الحالية.

INDEX_COL INDEX_COL (جدول ، أنا ، لا)

ترجع اسم العمود المفهرس لجدول الجدول. يُشار إلى العمود بمعرف الفهرس i والموضع رقم العمود في ذلك الفهرس.

الفهرسة INDEXPROPERTY (obj_id ، index_name ، الخاصية)

تُرجع خصائص الفهرس المسمى أو الإحصائيات لرقم تعريف الجدول المحدد ، واسم الفهرس أو الإحصائيات ، واسم الخاصية.

اسم الكائن OBJECT_NAME (obj_id)

إرجاع اسم كائن قاعدة البيانات مع المعرف obj_id.

حدد OBJECT_NAME (245575913) ،

معرف الكائن OBJECT_ID (obj_name)

إرجاع معرّف الكائن obj_name لقاعدة البيانات.

العوائد 245575913 - معرف جدول الموظف SELECT OBJECT_ID ("الموظف")

OBJECTPROPERTY OBJECTPROPERTY (obj_id ، خاصية)

إرجاع معلومات حول الكائنات من قاعدة البيانات الحالية.

توفر وظائف ومشغلات السلسلة الأساسية مجموعة متنوعة من الخيارات وتعيد قيمة سلسلة كنتيجة. بعض دوال السلسلة هي دوال ذات عنصرين ، مما يعني أنها يمكن أن تعمل على سلسلتين في نفس الوقت. يدعم معيار SQL 2003 وظائف السلسلة.

مشغل سلسلة

يعرّف SQL 2003 عامل التشغيل التسلسلي (||) الذي يربط اثنين خطوط منفصلةفي قيمة سلسلة واحدة.

منصة DB2

تدعم منصة DB2 مشغل سلسلة SQL 2003 ومرادفه ، وظيفة CONCAT.

منصة MySQL

تدعم منصة MySQL وظيفة CONCATQ ، وهي مرادف لمشغل سلسلة SQL 2003.

Oracle و PostgreSQL

تدعم الأنظمة الأساسية PostgreSQL و Oracle مشغل تسلسل الشريط العمودي المزدوج SQL 2003.

منصة SQL Server

تستخدم منصة SQL Server علامة الجمع (+) كمرادف لمشغل سلسلة SQL 2003. يتضمن SQL Server معلمة النظام CONCAT_NULL_YIELDS_NULL ، التي تتحكم في سلوك النظام إذا تمت مصادفة قيم فارغة عند ربط قيم السلسلة.

/ * بناء جملة SQL 2003 * /

سلسلة || سلسلة 2 || سلسلة 3

سلسلة 1string2string3

/ * بالنسبة إلى MySQL * /

CONCAT ("stringl"، "string2")

إذا كانت أي من القيم المتسلسلة فارغة ، فسيتم إرجاع سلسلة فارغة. بالإضافة إلى ذلك ، إذا كانت هناك قيمة رقمية متضمنة في التسلسل ، فسيتم تحويلها ضمنيًا إلى سلسلة.

حدد CONCAT ("My" ، "bologna" ، "has" ، "a" ، "first" ، "name ...") ؛

بولونيا بلدي له الاسم الأول

حدد CONCAT ("My"، NULL، "has"، "first"، "name ...") ؛

التحويل والترجمة

تعمل الدالة CONVERT على تغيير عرض سلسلة الأحرف ضمن مجموعة الأحرف والترتيب. على سبيل المثال ، يمكن استخدام دالة CONVERT لتغيير عدد وحدات البت لكل حرف.

تترجم الدالة TRANSLATE قيمة سلسلة من مجموعة أحرف إلى أخرى. على سبيل المثال ، يمكن استخدام الدالة TRANSLATE لتحويل قيمة من مجموعة الأحرف الإنجليزية إلى مجموعة أحرف Kanji (اليابانية) أو السيريلية (الروسية). يجب أن تكون الترجمة نفسها موجودة بالفعل - إما الترجمة الافتراضية أو التي تم إنشاؤها باستخدام الأمر CREATE TRANSLATION.

بناء جملة SQL 2003

CONVERT (char_value USING conversion_name)

TRANSLATE (char_value USING translation_name)

تقوم الدالة CONVERT بتحويل قيمة الحرف إلى مجموعة الأحرف بالاسم المحدد في معلمة character_conversion_name. تقوم الدالة TRANSLATE بتحويل قيمة الحرف إلى مجموعة الأحرف المحددة في اسم_الترجمة.

من بين الأنظمة الأساسية قيد الدراسة ، تدعم Oracle فقط وظائف CONVERT و TRANSLATE على النحو المحدد في معيار SQL 2003. إن تنفيذ Oracle لوظيفة TRANSLATE يشبه إلى حد بعيد SQL 2003 ، ولكنه ليس مطابقًا له. في هذا التنفيذ ، تأخذ الوظيفة وسيطتين فقط وتترجم فقط بين مجموعة أحرف قاعدة البيانات ومجموعة أحرف دعم اللغة الوطنية.

يؤدي تطبيق MySQL لوظيفة CONV إلى ترجمة الأرقام من قاعدة إلى أخرى. ولكن في SQL Server ، يكون تنفيذ وظيفة CONVERT غنيًا بالميزات ويغير نوع البيانات للتعبير ، ولكنه يختلف في جميع جوانبه الأخرى عن وظيفة CONVERT لمعيار SQL 2003. لا تدعم منصة PostgreSQL CONVERT ، ويقوم تنفيذ الدالة TRANSLATE بتحويل كافة تكرارات سلسلة الأحرف إلى أي سلسلة أحرف أخرى.

DB2

لا تدعم منصة DB2 وظيفة CONVERT ، ولا يتوافق دعم وظيفة الترجمة مع ANSI. تُستخدم الدالة TRANSLATE لتحويل السلاسل الفرعية وهي مرادف تاريخيًا للدالة UPPER لأن الدالة UPPER تمت إضافتها مؤخرًا إلى DB2. إذا تم استخدام الدالة TRANSLATE في DB2 مع وسيطة تعبير ذات حرف واحد ، فإن النتيجة هي نفس السلسلة المحولة إلى أحرف كبيرة. إذا تم استخدام الوظيفة مع عدة وسيطات ، على سبيل المثال TRANSLATE (ucmo4HUK ، استبدال ، تطابق) ، فإن الوظيفة تحول جميع الأحرف الموجودة في المصدر الموجودة أيضًا في معلمة المطابقة. سيتم استبدال كل حرف في المصدر في نفس موضع معلمة المطابقة بالحرف من معلمة الاستبدال. يوجد أدناه مثال.

ترجمة ("مرحبًا ، أيها العالم!") "مرحبًا ، العالم!"

ترجمة ("Hello، World1"، "wZ"، "1W") "Hewwo، Zorwd1

MySQL

لا تدعم منصة MySQL وظيفتي TRANSLATE و CONVERT.

وحي

تدعم منصة Oracle البنية التالية لوظائف CONVERT و TRANSLATE.

في تطبيق Oracle ، ترجع الدالة CONVERT نص قيمة الحرف ، محولة إلى مجموعة الأحرف الهدف. Char_value هي السلسلة المراد تحويلها ، و target_character_set هو اسم مجموعة الأحرف لتحويل السلسلة إليها ، و source_character set هي مجموعة الأحرف التي تم تخزين قيمة السلسلة فيها في الأصل.

تتبع وظيفة TRANSLATE في Oracle بناء جملة ANSI ، ولكن يمكنك فقط اختيار واحدة من مجموعتي أحرف: مجموعة أحرف قاعدة البيانات (CHARJCS) ومجموعة الأحرف الوطنية التي تدرك اللغة (NCHARJZS).

تدعم Oracle أيضًا وظيفة أخرى ، تسمى أيضًا TRANSLATE (بدون استخدام كلمة رئيسيةاستخدام). لا علاقة لوظيفة الترجمة هذه بتحويل مجموعة الأحرف.

يمكن تمرير أسماء مجموعات الأحرف الهدف والمصدر إما كثوابت سلسلة أو كمرجع إلى عمود جدول. لاحظ أنه عند تحويل سلسلة إلى مجموعة أحرف لا تعرض جميع الأحرف المراد تحويلها ، يمكنك استبدال أحرف البدل.

تدعم Oracle العديد من مجموعات الأحرف الشائعة ، والتي تتضمن مجموعات US7ASCII و WE8DECDEC. WE8HP ، F7DEC ، WE8EBCDIC500 ، WE8PC850u WE8ISO8859PI. على سبيل المثال:

حدد CONVERT ("Gro2"، "US7ASCII"، "WE8HP") من DUAL ؛

PostgreSQL

تدعم منصة PostgreSQL بيان ANSI CONVERT ، ويمكن هنا تحديد التحويلات باستخدام الأمر CREATE CONVERSION. يوفر تطبيق PostgreSQL لوظيفة TRANSLATE مجموعة موسعة من الوظائف التي تسمح لك بتحويل أي نص إلى نص آخر ضمن سلسلة محددة.

TRANSLATE (سلسلة الأحرف ، from_text ، to_text)

وهنا بعض الأمثلة:

حدد الترجمة ("12345abcde"، "5a"، "XX") ؛ "1234XXbcde" حدد الترجمة (العنوان ، "الكمبيوتر" ، "الكمبيوتر") من العناوين WHERE type = "Personal_computer" SELECT CONVERT ("PostgreSQL" باستخدام iso_8859_1_to_utf_8) "PostgreSQL"

خادم قاعدة البيانات

لا يدعم SQL Server الدالة TRANSLATE. لا يتوافق تنفيذ وظيفة CONVERT في SQL Server مع معيار SQL 2003. هذه الوظيفة في SQL Server تكافئ وظيفة CAST.

CONVERT (نوع البيانات [(الطول) | (الدقة ، المقياس)] ، التعبير ، النمط])

يتم استخدام عبارة النمط لتحديد تنسيق تحويل التاريخ. لكل معلومة اضافيةالرجوع إلى وثائق SQL Server. يوجد أدناه مثال.

حدد العنوان ، CONVERT (char (7) ، ytd_sales) من العناوين ORDER BY title GO