سبد (0)

sql

  • دستور DELETE برای حذف رکوردها در یک جدول استفاده می شود.


    دستور DELETE 

    Wiki

    دستور DELETE برای حذف سطرها در یک جدول استفاده می شود.

    فرم دستور DELETE

    DELETE FROM table_name
    WHERE some_column=some_value

    توجه: به بند WHERE در فرم دستور DELETE توجه داشته باشید. بند WHERE مشخص می کند کدام رکورد یا رکوردها باید حذف شوند. اگر بند WHERE را پاک کنید تمام رکوردها حذف خواهند شد.


    مثال DELETE

    Wiki

    در جدول Persons

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger
    4 Nilsen Johan Bakken 2 Stavanger
    5 Tjessem Jakob Nissestien 67 Sandnes

    می خواهیم شخص "Tjessem, Jakob" را از جدول  Persons پاک کنیم.

    از عبارت SQLزیر استفاده می کنیم:

    DELETE FROM Persons
    WHERE LastName='Tjessem' AND FirstName='Jakob'

    جدول Persons به شکل زیر خواهد شد:

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger
    4 Nilsen Johan Bakken 2 Stavanger

    Delete کردن تمام سطرها

    Wiki

    می توان تمام رکوردهای یک جدول را بدون Delete کردن جدول پاک کرد. این بدان معناست که ساختار، ویژگی ها و index (شاخص های جدول) به قوت خود باقی می مانند.

    DELETE FROM table_name

    or

    DELETE * FROM table_name

    توجه: بسیار مواظب باشید اگر رکوردهایی را DELETE کردید دیگر نمی توانید آنها را برگردانید.

    READ MORE
  • کلمه کلیدی ORDER BY برای مرتب کردن نتیجه پرس و جو استفاده می شود.


    کلمه کلیدی ORDER BY

    Wiki

    دستور ORDER BY برای مرتب کردن نتیجه پرس و جو بر اساس ستون مشخص شده استفاده می شود.

    در دستور ORDER BY به صورت پیش فرض، رکوردها به صورت صعودی (از کوچک به بزرگ) مرتب می شوند.

    اگر می خواهید رکوردها را نزولی (از بزرگ به کوچک) مرتب کنید، باید از کلید واژه DESC استفاده کنید.

    فرم کلی ORDER BY:

    SELECT column_name(s)
    FROM table_name
    ORDER BY column_name(s) ASC|DESC


    مثال:

    Wiki

    در جدول "Persons"

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger
    4 Nilsen Tom Vingvn 23 Stavanger

    می خواهیم تمام افراد ازجدول بالا را انتخاب کنیم اما افراد بر اساس نام خانوادگی شان مرتب شده باشند.

    از عبارت SELECT زیر استفاده می کنیم:

    SELECT * FROM Persons
    ORDER BY LastName

    result-set به این صورت می شود:

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    4 Nilsen Tom Vingvn 23 Stavanger
    3 Pettersen Kari Storgt 20 Stavanger
    2 Svendson Tove Borgvn 23 Sandnes

    مثال ORDER در حالت DESC

    Wiki

    حالا می خواهیم تمام افراد جدول بالا را بر اساس ترتیب نزولی نام خانوادگی شان انتخاب کنیم.

    از عبارت SELECT زیر استفاده می کنیم:

    SELECT * FROM Persons
    ORDER BY LastName DESC

    result-set به صورت زیر خواهد بود:

    P_Id LastName FirstName Address City
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger
    4 Nilsen Tom Vingvn 23 Stavanger
    1 Hansen Ola Timoteivn 10 Sandnes
    READ MORE
  • عبارت WHERE برای فیلتر کردن رکوردها استفاده می شود.


    عبارت WHERE

    Wiki

    عبارت WHERE برای بیرون کشیدن رکوردهایی که در شرط خاصی صدق می کنند کاربرد دارد.

    فرم عبارت WHERE:

    SELECT column_name(s)
    FROM table_name
    WHERE column_name operator value


    مثال:

    Wiki

    در جدول Persons

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger

    می خواهیم اطلاعات افرادی که در شهر Sandnes زندگی می کنند را انتخاب کنیم.

    از دستور زیر استفاده می کنیم:

    SELECT * FROM Persons
    WHERE City='Sandnes'

    نتیجه به شکل زیر خواهد بود:

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes

    علامت کوتیشن در اطراف TEXT

    Wiki

    از کوتیشن در اطراف داده متنی (text) استفاده کنید (در اکثر پایگاه داده ها دابل کوتیشن " استفاده می شود.)

    اما داده های عددی نیازی به قرار گرفتن در داخل کوتیشن ندارند.

    برای داده های متنی:

    این عبارت صحیح است:
    SELECT * FROM Persons WHERE FirstName='Tove'

    این عبارت غلط است:
    SELECT * FROM Persons WHERE FirstName=Tove

    برای داده های عددی:

    این عبارت صحیح است:
    SELECT * FROM Persons WHERE Year=1965

    این عبارت غلط است:
    SELECT * FROM Persons WHERE Year='1965'


    عملگرهای مجاز در عبارت WHERE

    Wiki

    در عبارت WHERE مجاز به استفاده از این عملگرها هستیم:

    عملگر توضیحات
    = مساوی است با
    <> مخالف با
    < بزرگتر است از
    > کوچکتر است از
    >= بزرگتر مساوی است با
    <= کوچکتر مساوی است با
    BETWEEN بین یک محدوده
    LIKE به دنبال یک الگو بگرد
    IN

    برای جستجوی بر اساس چندین مقدار ممکن

    توجه: در بعضی از نسخه های SQLعملگر <> به شکل =! نوشته می شود.

    READ MORE
  • عملگرهای AND و OR برای فیلتر کردن رکوردها، براساس بیشتر از یک شرط استفاده می شوند.


    عملگرهای AND و OR

    Wiki

    عملگر AND رکوردی را نمایش می دهد که هم شرط اول و هم شرط دوم در آن صدق کند.

    عملگر OR رکوردی را نمایش می دهد که یا شرط اول و یا شرط دوم یا هر دو در آن صدق کند.


    مثالی از عملگر AND

    Wiki

    در جدول "Persons":

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger

    می خواهیم تنها افرادی را انتخاب کنیم که نام آنها مساوی "Tove" و نام خانوادگی آنها مساوی "Svendson" باشد.

    برای این منظور از دستور SELECT زیر استفاده می کنیم.

    SELECT * FROM Persons
    WHERE FirstName='Tove'
    AND LastName='Svendson'

    نتیجه به شکل زیر خواهد شد:

    P_Id LastName FirstName Address City
    2 Svendson Tove Borgvn 23 Sandnes

    مثالی از عملگر OR

    Wiki

    می خواهیم افرادی را که نام آنها Tove یا Ola می باشد را انتخاب کنیم:

    از دستور زیر استفاده می کنیم:

    SELECT * FROM Persons
    WHERE FirstName='Tove'
    OR FirstName='Ola'

    نتیجه به شکل زیر خواهد بود:

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes

    ترکیب AND و OR

    Wiki

    می توانید AND و OR را با هم ترکیب کنید. (از پرانتز برای ترکیب عبارات استفاده کنید)

    می خواهیم افرادی را انتخاب کنیم که نام خانوادگی آنها Svendson و نام آنها Tove یا Ola باشد.

    از دستور زیر استفاده می کنیم:

    SELECT * FROM Persons WHERE
    LastName='Svendson'
    AND (FirstName='Tove' OR FirstName='Ola')

    جدول نتیجه به شکل زیر خواهد بود:

    P_Id LastName FirstName Address City
    2 Svendson Tove Borgvn 23 Sandnes
    READ MORE
  • صفر در سمت چپ یک عدد

    جدول Products را در زیر داریم:

    Prod_Id ProductName Unit UnitPrice
    00001 Jarlsberg 1000 g 120000
    00002 Mascarpone 1000 g 9505000
    00003 Gorgonzola 1000 g 60200000

    می خواهیم هنگام درج کردن محصولات، کد محصول همیشه، شامل 5 کاراکتر باشد.

    از کوئری زیر استفاده می کنیم:

    declare @max_ID char(5)
    select @max_ID=right(
                         Replicate('0',5)+
                                           cast(
                                                isnull(
                                                       max(
                                                           cast(Prod_ID as int)
                                                           )
                                                       ,0
                                                       )
                                                       +1
                                                 as nvarchar
                                                )
                          ,5
                          )
    from Products
    Insert into Products (prod_ID,ProductName,Unit,UnitPrice)
                   Values(@max_ID,'Test','1000g',250000)
    

    توجه: استفاده ازنوع داده های رشته ای به عنوان اندیس یا  کلید اصلی، یک اشتباه در طراحی است.

    توضیح: نوع داده varchar و هر نوع داده کاراکتری یا رشته ای بدترین نوع انتخاب برای اندیس جدول است. این اشتباه زمانی بدتر خواهد شد که از این فیلد به عنوان کلید اصلی نیز استفاده کنید؛ و سرانجام اشتباه با استفاده از این کلید به عنوان کلید خارجی تکمیل خواهد شد!

    البته توجه داشته باشید که استفاده از فیلد اندیس کاراکتری در کنار کلید اصلی مشکل خاصی نخواهد داشت. فقط این مورد در صروت لزوم و زمانی که از آن فیلد به کرات برای جستجو استفاده می کنید مورد استفاده قرار دهید.

    علت اشتباه بودن این انتخاب در ساخت جدول اندیس و تعداد مقایسه های انجام شده بر می گردد. به عنوان یک مثال ساده مقایسه، دو نوع عددی می توانند به راحتی توسط دستور عمل های CPU با یکدیگر مقایسه شوند، در حالی که درنوع کارکتری باید تک تک کارکاتر ها با استفاده از شبیه سازی نرم افزاری مقایسه شوند. در رشته های یونیکد هم که حجم کاراکتر ها دو برابر می شوند.

    راه حل: راه حل بسیار ساده استفاده از انواع داده عددی مانند int یا bigint به عنوان کلید اصلی است. در عین حال می توانید در صورت نیاز از فیلد استفاده شده در مثال بالا نیز به عنوان یک فیلد اطلاعاتی نیز استفاده نمایید.

    بنابراین:

    Prod_ID Prod_Code ProductName Unit UnitPrice
    1 00001 Jarlsberg 1000 g 120000
    2 00002 Mascarpone 1000 g 9505000
    3 00003 Gorgonzola 1000 g 60200000

    برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.

    READ MORE
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه