SQL Between

این عملگر برای انتخاب مجموعه مقادیری بین دو مقدار معلوم به کار می رود دو مقدار که قابل شمارش باشد یا نوشته شود ویا قابل تاریخ گذاردن باشد(دو مقدار مورد آزمایش). ضمنا این عملگر در عبارت WHERE که قبلا راجع با آن توضیح دادیم به کار می رود.

دستور BETWEEN

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

مثالی از عملگر BETWEEN
جدول “PERSON”

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

حالا ما میخواهیم از جدول بالا افرادی را با نام خانوادگی بین “Hansen” و “Pettersen” انتخاب کنیم .
از عبارت دستوری زیر استفاده میکنیم.

SELECT * FROM Persons
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'

نتیجه همانند جدول زیر خواهد بود

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes

نکته :

عملگر BETWEEN رفتار مختلفی بین پایگاه داده های مختلف دارد .
در برخی پایگاه داده ها افراد با نام خانوادگی ‘Hansen’و’Pettersen’ وارد جدول مورد نظرنخواهند شد زیرا عملگر BETWEEN فقط مقادیر بین دو نام بالا را در نظر میگیرد و دو مقدار اولیه و ابتدایی یعنی دو اسم مورد آزمایش را محاسبه نمی کند.
در برخی دیگر افراد با نام خانوادگی ‘Hansen’و’Pettersen’ وارد جدول مورد نظرخواهند شد زیرا عملگر BETWEENعلاوه بر مقادیر میانی دو نام مورد آزمایش را در نظر گرفته و وارد جدول نهایی می کند.
و در دیگر پایگاه داده ها افراد با نام خانوادگی ‘Hansen’ یعنی اسم اول مورد آزمایش وارد جدول شده و اسم دوم مورد آزمایش یعنی ‘Pettersen’ مانند مثال بالا وارد جدول نخواهد شد. زیرا عملگر BETWEEN فقط مقادیر میانی به علاوه مقدار اولیه مورد آزمایش را وارد جدول می کند.
بنا بر این :
هنگام استفاده از عملگر BETWEEN آن را آزمایش کنید و نحوه عملکرد آنرا بررسی کنید
مثال دوم :
برای نمایش افراد خارج از مقادیر مثال قبل یعنی دقیقا عکس مثال قبل از NOT BETWEEN استفاده میشود.

SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'

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

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

مترجم : علیرضا مسگری

SQL , استفاده از عملگر IN

این عملگر به شما اجازه میدهد که برای استفاده از عبارت WHERE از چند “VALUE” یا ارزش موجود در جدول بهره بگیرید

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

مثلا:

نام جدول “PERSON” میباشد.

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

حالا از جدول بالا مشخصات فردی را می یابیم که نام خانوادگی اش “Hansen” یا “Pettersen” باشد

و برای این کار ازدستور زیر بهره میگیریم.

SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen')

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

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

 

مترجم :علیرضا مسگری

SQL WILDCARDS

Wildcard ها به هنگام جستجو در میان داده های پایگاه داده مورد استفاده قرار می گیرند.

Wildcard ها با عملگر LIKE در SQL به کار می رود.

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

Wildcard Description
% جانشین هیچ یا چند کاراکتر می شود
_  جانشین یک کاراکتر می شود
[charlist] مجموعه یا محدوده ای از کاراکترها برای تطبیق
[^charlist]
or
[!charlist]
فقط یک کاراکتر که داخل کروشه ذکر نشده است را تطبیق می دهد

در مثال زیر تمامی مشتریانی که اسم شهرشان با ber شروع می شود انتخاب می شود:

SELECT * FROM Customers
WHERE City LIKE 'ber%';

و در این مثال تمامی مشتریانی که اسم شهرشان شامل es باشد برگردانده خواهد شد:

SELECT * FROM Customers
WHERE City LIKE '%es%';

در این مثال تمامی مشتریانی که اسم شهرشان با L شروع شده سپس شامل هر کاراکتری بعد از آن n بعد هر کاراکتری و با on پایان می یابد انتخاب خواهد شد:

SELECT * FROM Customers
WHERE City LIKE 'L_n_on';

در این مثال تمامی مشتریانی که اسم شهرشان با a , b یا c شروع می شود انتخاب خواهد شد:

SELECT * FROM Customers
WHERE City LIKE '[a-c]%';

و در آخرین مثال همه مشتریانی که نام شهرشان با b , s یا p آغاز نشود انتخاب می شوند:

SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';

or

SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';

عملگر LIKE در SQL

عملگر LIKE:

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

دستور LIKE:

 

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

مثالی برای عملگر LIKE:

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

حالا میخواهیم از جدول بالا مشخصات فردی را بیرون بکشیم که نام شهرمحل زندگی اش با حرف ‘s’ آغاز میشود.

به شکل زیر عمل میکنیم:

SELECT * FROM Persons
WHERE City LIKE 's%'

علامت % همانند یک WILDCARD( یعنی کاراکتر گمشده در الگوی مورد نظر) مورد استفاده قرار میگیرد،این کاراکتر میتواند قبل یا بعد از الگوی مورد نظر باشد.
راهنمایی : کسانی که با جستجو در WINDOWS آشنا باشند میدانند که برای جستجوی یک فایل گمشده با پسوند TEXT عبارت زیر را برای جستجو مینویسند:
*.TEXT
خب توجه کنید به نتجه مثال بالا:

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

و حالا میخواهیم این بار مشخصات فردی را از جدول “PERSON”پیدا کنیم که نام شهرمحل زندگی اش با حرف “S”پایان یابد.
برای اینکار به نحو زیر عمل میکنیم :

SELECT * FROM Persons
WHERE City LIKE '%s'

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

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

بعد از آن میخواهیم از جدول “PERSON” مشخصات فردی را بیابیم که نام شهر محل زندگی او دارای عبارت “TAV” باشد.

به دستور زیر دقت کنید:

SELECT * FROM Persons
WHERE City LIKE '%tav%'

و نتیجه نیز به فرم زیر است:

P_Id LastName FirstName Address City
3 Pettersen Kari Storgt 20 Stavanger

 

همچنین این قابلیت نیز وجود دارد که ما مشخصات فردی را بیابیم که شهر محل زندگی اش دارای عبارت “TAV” نباشد. این عمل با به کار گیری کلمه کلیدی NOT در ساختار عملگر LIKE ممکن میشود.

SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'

که نتیجه آن، چنین میباشد:

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

  مترجم: علیرضا مسگری

عبارت TOP در SQL

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

SQL Server Syntax

SELECT TOP number|percent column_name(s)
FROM table_name

یا معادل عبارت  SELECT TOP  در SQL  را در MYSQL  و ORACLE

MySQL Syntax

SELECT column_name(s)
FROM table_name
LIMIT number

مثال:

SELECT * 
FROM Persons
LIMIT 5

Oracle Syntax

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

مثال:

SELECT * 
FROM Persons
WHERE ROWNUM <=5

مثال های از عبارت TOP در SQL:

نام جدول PERSON

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 TOP 2 * FROM Persons

و نتیجه  به فرم زیر میباشد:

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

مثال برای عبارت TOP PERECENT در SQL:

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

حالا میخواهیم 50% اطلاعات بالا را از جدول بیرون بکشیم، به همین دلیل از عبارت TOP  به فرم زیر بهره میگیریم.

SELECT TOP 50 PERCENT * FROM Persons

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

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

مترجم: علیرضا مسگری

عبارت DELETE در SQL

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

DELETE FROM table_name
WHERE some_column=some_value

دستور بالا نحوه استفاده از عبارت DELETE  را نمایش میدهد.

نکته : به عبارت where در دستور DELETE دقت کنید . اگر شما از این عبارت استفاده نکنید تمام رکورد های جدول شما  DELETE میشود!

مثالی از دستور DELETE در SQL

جدول PERSON را در نظر بگیرید:

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 را از جدول پاک کنیم:

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

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

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

پاک کردن کل اطلاعات جدول

میتوان تمام اطاعات موجود در جدول را پاک نمود به نحوی که جدول ما پا برجا بماند این بدین معناست که شما جدول خود را در پایگاه داده ها حفظ میکنید اما اطلاعات آن را به طور کل حذف میکنید. البته توجه کنید که مراقب استفاده از دستور زیر باشید چرا که اطلاعات پاک شده قابل برگشت نخواهد بود.
توجه کنید که برای اینکار کافیست از عبارت WHERE  استفاده نکنیم!

DELETE FROM table_name

or

DELETE * FROM table_name

مترجم: علیرضا مسگری

عبارت UPDATE در SQL

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

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

نکته : به عبارت where در دستور update دقت کنید . اگر شما از این عبارت استفاده نکنید تمام رکورد های جدول شما  update میشود.

مثالی از دستور UPDATE:

نام جدول طبق معمول person  است!

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

حال ما اطلاعات  شخص Tjessem را در جدول بالا update  میکنیم.

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

UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'

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

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

هشدار مهم درباره دستور UPDATE!

همانطور که در ابتدای این بخش توضیح دادیم باید به لزوم استفاده از عبارت  where در دستور update دقت کنیم. برای مثال فرض کنید در نمونه قبل از WHERE استفاده نمی کردیم:

UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'

در عبارت بالا از where  استفاده نکردیم ، به نتیجه آن توجه کنید:

P_Id LastName FirstName Address City
1 Hansen Ola Nissestien 67 Sandnes
2 Svendson Tove Nissestien 67 Sandnes
3 Pettersen Kari Nissestien 67 Sandnes
4 Nilsen Johan Nissestien 67 Sandnes
5 Tjessem Jakob Nissestien 67 Sandnes

مترجم: علیرضا مسگری

دستور INSERT INTO

این عبارت جهت ورود اطلاعات یا درواقع اضافه کردن یک ردیف به جدول مورد نظر میباشد
این عمل به دو صورت انجام میشود :
حالت اول اینکه اطلاعات را بدون ذکر نام ستون مورد نظر وارد کنیم به فرض مثال:

INSERT INTO table_name
VALUES (value1, value2, value3,...)

حالت دوم هم اطلاعات را در جدول در محل مورد نظر با ذکر نام ستون  وارد کنیم:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

مثال:
نام جدول person  میباشد:

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

حال میخواهیم اطلاعات جدید را در جدول بالا وارد کنیم:
با استفاده از دستور زیر داریم:

INSERT INTO Persons
VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

نتیجه:

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

وارد کردن اطلاعات در یک ستون مشخص :

همانطور که بالا توضیح دادم شما میتوانید اطلاعات مورد نظر را در یک ستون خاص وارد کنید
مثال:
دستور sql  زیر اطلاعات جدید را در ردیف جدید وارد جدول میکند اما اطلاعات فقط در ستونهای  “P_Id”،”LastName”،”FirstName” وارد میشود

INSERT INTO Persons (P_Id, LastName, FirstName)
VALUES (5, 'Tjessem', 'Jakob')

نتیجه به شکل زیر میباشد

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

مترجم: علیرضا مسگری

واژه کلیدی ORDER BY

عبارت ORDER BY  رکورد های اطلاعاتی را بر اساس ستونی مشخص مرتب میکند
این عبارت به طور پیش فرض اطلاعات را صعودی مرتب میکند، اگر شما تمایل دارید اطلاعات خود را به طور نزولی مرتب کنید باید از عبارتDESC استفاده کنید .
دستور ORDER BY:

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

ASC(ascending order) مرتب کردن به صورت صعودی  و DESC(descending order) مرتب کردن به صورت نزولی میباشد.

مثال :

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 * FROM Persons
ORDER BY LastName

 

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 BY  به وسیله دستور DESC

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

SELECT * FROM Persons
ORDER BY LastName DESC
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

مترجم: علیرضا مسگری

عملگرهای AND و OR در SQL

عملگرهای AND  و OR

عملگر AND  رکورد اطلاعاتی را نمایش میدهد که هم شرط اول و هم شرط دوم برقرار باشد.
عملگر OR رکورد اطلاعاتی را نمایش میدهد که هریک از شروط اول یا دوم برقرار باشد.

مثالی برای  AND:

نام جدول PERSON  است:

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 و (AND) نام خانوادگیش Svendson باشد.
از دستور زیر استفاده میکنیم:

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

نتیجه به شکل زیر میباشد.

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

مثالی برای OR:

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

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 :

شما میتوانید دو عملگر AND  و OR  را با هم ترکیب کنید، فقط برای اینکار کافیست از پرانتز استفاده کنید.
حال میخواهیم شخصی را با نام خانوادگی Svendson و(AND) نام OLA  یا(OR)  TOVE  از جدول انتخاب کنیم.

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

با استفاده از دستوربالا  به نتیجه زیر میرسیم

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

مترجم: علیرضا مسگری