0 0 تومان
تبلیغات اینترنتی
آموزش طراحی سایت (HTML CSS Javascript) | آتریا
آموزش سی شارپ
آموزش فتوشاپ

آموزشsql

  • عملگر union در SQL

    عملگر UNION دو یا چند دستور SELECT را با یکدیگر ترکیب می کند.


    عملگر UNION

    Wiki

    عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.

    توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند. (Order By)

    فرم عملگر UNION:

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2

    نکته: عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از UNION ALL استفاده کنید.

    فرم عملگر UNION ALL:

    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2

    نام ستون ها در جدول نتایج همیشه برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.


    مثال:

    Wiki

    به جداول زیر نگاه کنید: 

    1- جدول کارمندان نروژی:

    E_ID E_Name
    01 Hansen, Ola
    02 Svendson, Tove
    03 Svendson, Stephen
    04 Pettersen, Kari

    2- جدول کارمندان آمریکایی:

    E_ID E_Name
    01 Turner, Sally
    02 Kent, Clark
    03 Svendson, Stephen
    04 Scott, Stephen

    می خواهیم لیست اسامی کارمندان امریکایی و نروژی را به صورت متمایز ( بدون تکرار) داشته باشیم.

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

    SELECT E_Name FROM Employees_Norway
    UNION
    SELECT E_Name FROM Employees_USA

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

    E_Name
    Hansen, Ola
    Svendson, Tove
    Svendson, Stephen
    Pettersen, Kari
    Turner, Sally
    Kent, Clark
    Scott, Stephen

    توجه:این دستور نمی تواند برای نمایش دادن اسامی تمام کارکنان امریکایی و نروژی استفاده شود. در مثال فوق دو کارمند با نام یکسان داریم و تنها بکی از آنها در جدول نتایج آمده است. دستور UNION تنها داده ها را به صورت متمایز (بدون تکرار) بر می گرداند.


    مثال:

    Wiki

    حال می خواهیم تمامی کارمندان آمریکایی و نروژی را لیست کنیم از دستور زیر استفاده می کنیم:

    SELECT E_Name FROM Employees_Norway
    UNION ALL
    SELECT E_Name FROM Employees_USA

    نتیجه:

    E_Name
    Hansen, Ola
    Svendson, Tove
    Svendson, Stephen
    Pettersen, Kari
    Turner, Sally
    Kent, Clark
    Svendson, Stephen
    Scott, Stephen
  • عملگرهای and و or در SQL

    عملگرهای 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
  • قرار دادن صفر در سمت چپ اعداد

    صفر در سمت چپ یک عدد

    جدول 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 کلیک کنید.

  • کاربرد View در SQL

    View یک جدول مجازی است.

    این فصل نشان می دهد که چگونه یک View را ایجاد، حذف و یا تغییر دهیم.


    دستور CREATE VIEW

    Wiki

    در SQL یک View یک جدول مجازی است که نتیجه حاصل از عبارات و دستورات SQL می باشد.

    یک view شامل سطر و ستونهایی دقیقا شبیه یک جدول واقعی است. فیلدها در یک View فیلدهایی هستند که از یک یا چند جدول واقعی در پایگاه داده گرفته شده اند.

    شما می توانید توابع موجود در SQL، عبارت WHERE و JOIN را به یک View اضافه کنید و داده های نتیجه را به همان صورت که داده ها در یک جدول آورده می شوند، نشان دهید.

    فرم CREATE VIEW:

    CREATE VIEW view_name AS
    SELECT column_name(s)
    FROM table_name
    WHERE condition

    توجه: یک View همیشه داده های به روز شده (up-to-date) را نشان می دهد! موتور یک پایگاه داده، داده های یک View را هر زمانی که View فرا خوانی می شود ، به روز می کند.


    مثال:

    Wiki

    اگر پایگاه داده Northwind را دارید شما می توانید چندین view را که به طور پیش فرض روی آن نصب شده است را ببینید.

    View با نام Current Product List، لیست محصولات جاری (محصولاتی که تولید آنها متوقف نشده است) را از جدول Products نشان می دهد. این view توسط دستور زیر ایجاد می شود.

    CREATE VIEW [Current Product List] AS
    SELECT ProductID,ProductName
    FROM Products
    WHERE Discontinued=No

    می توانیم View فوق را به صورت زیر فراخوانی کنیم:

    SELECT * FROM [Current Product List]

    مثال دیگری از View در پایگاه داده Northwind، تمام محصولاتی را که در جدول Products قیمت واحدشان بزرگتر از میانگین قیمت هاست را بر می گرداند:

    CREATE VIEW [Products Above Average Price] AS
    SELECT ProductName,UnitPrice
    FROM Products
    WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

    می توانیم view فوق را به صورت زیر فراخوانی کنیم:

    SELECT * FROM [Products Above Average Price]

    مثال دیگری از View در پایگاه داده Northwind، کل فروش را برای هر طبقه از محصولات در سال 1997 محاسبه می کند. توجه کنید که این view داده هایش را از view ی دیگری که Product Sales for 1997 نامیده می شود می گیرد.

    CREATE VIEW [Category Sales For 1997] AS
    SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
    FROM [Product Sales for 1997]
    GROUP BY CategoryName

    می توانیم view فوق را به صورت زیر اجرا کنیم:

    SELECT * FROM [Category Sales For 1997]

    همچنین می توان یک شرط روی Query فوق تعریف کرد. می خواهیم فروش کل محصولاتی که در گروه Beverages هستند را ببینیم.

    SELECT * FROM [Category Sales For 1997]
    WHERE CategoryName='Beverages'

    تغییر (به روز رسانی) یک View

    Wiki

    می توانیم یک View را به وسیله دستور زیر به روز رسانی کنیم:

    فرم دستور CREATE OR REPLACE VIEW:

    CREATE OR REPLACE VIEW view_name AS
    SELECT column_name(s)
    FROM table_name
    WHERE condition

    می خواهیم ستون Category را به Current Product List اضافه کنیم. به وسیله دستور زیر view را تغییر می دهیم:

    CREATE VIEW [Current Product List] AS
    SELECT ProductID,ProductName,Category
    FROM Products
    WHERE Discontinued=No

    حذف یک View

    Wiki

    می توانید یک view را به وسیله فرمان DROP VIEW حذف کنیم.

    فرم DROP VIEW:

    DROP VIEW view_name

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

  • مقادیر null در SQL

    مقدار NULL بیانگر داده ای است که مشخص نشده و فیلدی خالی است.

    به طور پیش فرض، یک ستون از جدول می تواند مقدار NULL را در خود نگه دارد.

    در این فصل می خواهیم، عملگرهای IS NULL  و IS NOT NULL را توضیح دهیم.


    مقدار NULL

    Wiki

    اگر وارد کردن مقدار در ستونی در یک جدول، اختیاری باشد، می توانیم در رکورد جدید یا رکورد موجود بدون اضافه کردن مقداری در این ستون، مقدار NULL را در این فیلد داشته باشیم.

    با مقدار NULL نسبت به مقادیر دیگر، رفتار متفاوتی می شود.

    در فیلدهای نامشخص یا نامعلوم که مقداری وارد نمی شود، مقدار NULL وجود دارد.

    توجه:NULL و صفر را نمی توان با هم یکی دانست، این دو معادل یکدیگر نیستند.


    کار با NULL

    Wiki

    به جدول Persons در زیر نگاه کنید:

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

    فرض کنید که وارد کردن مقدار در ستون Address اختیاری باشد. این بدان معناست که اگر رکوردی را بدون وارد کردن مقداری در ستون Address درج کنیم، ستون Address با مقدار NULL ذخیره می شود.

    چگونه می توانیم تست کنیم فیلدی مقدار NULL دارد؟

    با عملگر های مقایسه ای مثل (=, <, >) نمی توان مقدار NULL را تست کرد.

    بلکه باید از عملگرهای IS NULL و IS NOT NULL استفاده کنیم.


    IS NULL

    Wiki

    چگونه می توان رکوردهایی را که در ستون Address مقدار NULL دارند را انتخاب کرد؟

    باید از عملگر IS NULL برای این کار استفاده کرد:

    SELECT LastName,FirstName,Address FROM Persons
    WHERE Address IS NULL

    نتیجه چنین خواهد بود:

    LastName FirstName Address
    Hansen Ola  
    Pettersen Kari  

    نکته: همیشه از IS NULL برای مشاهده فیلدهای حاوی مقدار NULL استفاده کنید.


    IS NOT NULL

    Wiki

    چگونه رکوردهایی را که مقدارشان NULL نیست را از ستون Address انتخاب کنیم؟

    باید از عملگر IS NOT NULL استفاده کنیم:

    SELECT LastName,FirstName,Address FROM Persons
    WHERE Address IS NOT NULL

    نتیجه چنین خواهد شد:

    LastName FirstName Address
    Svendson Tove Borgvn 23

    در فصل بعد به توابع () ISNULL() ,NVL() ,IFNULL() ,COALESCE نظری خواهیم داشت.


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

  • مقدمه آموزش SQL

    آموزش SQL-مقدمه

    SQL یک زبان استاندارد برای دسترسی به پایگاه داده می باشد. در این آموزش، چگونگی دسترسی به داده ها و دستکاری آنها را با استفاده از SQL فراخواهید گرفت.(مثل فرامین SELECT, UPDATE, DELETE, INSERT, WHERE)

  • نام مستعار در SQL

    در SQL می توان یک نام مستعار (Alias) به جدول یا ستون داد.


    نام مستعار (Alias) در SQL

    Wiki

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

    یک نام مستعار می تواند هر چیزی باشد اما معمولا کوتاه می باشد.

    تخصیص یک نام مستعار برای جداول:

    SELECT column_name(s)
    FROM table_name AS alias_name

    تخصیص یک نام مستعار برای ستون ها:

    SELECT column_name AS alias_name
    FROM table_name

    مثال Alias:

    Wiki

    فرض کنید یک جدول با نام Persons و جدولی دیگر با نام Product_Orders داریم. می خواهیم نام های مستعار P و po را به آنها بدهیم.

    می خواهیم تمام سفارشاتی را که Ola Hansen مسئول آنها می باشد را لیست کنیم.

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

    SELECT po.OrderID, p.LastName, p.FirstName
    FROM Persons AS p,
    Product_Orders AS po
    WHERE p.LastName='Hansen' AND p.FirstName='Ola'

    نکته: جدا کننده بین اشیا در SQL علامت "," می باشد.

    دستور مشابه بدون استفاده از Alias:

    SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
    FROM Persons,
    Product_Orders
    WHERE Persons.LastName='Hansen' AND Persons.FirstName='Ola'

    همانطور که در دستور های بالا می بینید نام مستعار، یک query را هم برای نوشتن و هم به لحاظ خواندن آسان تر می کند.


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

صفحه2 از2