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

دانلود جزوهای درسی مهندسی+کتاب+برق+شیمی+ریاضی+کامپیمتر

آموزش SQL Server
نویسنده : - ساعت ۸:٠۳ ‎ب.ظ روز ۱۳٩٠/۱٢/۸
• دستکاری جدول های بانک اطلاعاتی SQL
• آموزش SQL server - دستور MINUS
• آموزش SQL server - دستور INTERSECT
• آموزش SQL server - دستور UNION ALL
• آموزش SQL server - دستور UNION
• آموزش SQL server - دستور OUTER JOIN
• آموزش SQL server - دستور JOIN
• آموزش SQL server - دستور ALIAS
• آموزش SQL server - دستور HAVING
• آموزش SQL server - دستور GROUP BY
• آموزش SQL server - دستور COUNT
• آموزش SQL server - دستور FUNCTIONS
• آموزش SQL server - دستور ORDER BY
• آموزش SQL server - دستور LIKE
• آموزش SQL server - دستور BETWEEN
• آموزش SQL server - دستور IN
• آموزش SQL server - دستور AND OR
• آموزش SQL server - دستور SELECT و Where
• آموزش SQL SERVER

آموزش رو در ادامه مطلب ببینید


 دستکاری جدول های بانک اطلاعاتی SQL

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

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

مثال : مثلا کارنامه مدارس را در نظر بگیرید .مثلا 3 ستون دروس ، نمره و تاریخ دارد و سطر های آن هر کدام شامل سه بخش هستند طبق دسته بندی ستون هایش .

سطر اول : ریاضی – 12 - 12/3/1384

سطر دوم : فیزیک – 14 - 16/3/1384

و بهمین ترتیب .پس هر سطر جدول را یک رکورد می نامیم . هر ستون جدول (فیلد) دارای یک نوع داده است .  در مثال فوق ستون دروس از نوع string و ستون نمرات از نوع integer و ستون تاریخ از نوع date است . هنگام ساخت جدول که فیلد هایش را مشخص میکنید باید نوع داده ای فیلد ها نیز مشخص گردد. کد ساخت جدول بصورت زیر میباشد :

CREATE TABLE "table_name"
("column 1" "data_type_for_column_1",
"column 2" "data_type_for_column_2",
... )

کد ساخت یک جدول نمونه :

CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)

 

 

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

DROP TABLE "table_name"

مثال :

DROP TABLE customer.

 

 

TRUBCATE  TABLE : گاهی ما میخواهیم که اطلاعات داخل یک جدول رو پاک کنیم . اما نمیخواهیم خود جدول پاک شود. برای اینکار ازین دستور کمک میگیریم

TRUNCATE TABLE "table_name"

مثال :

TRUNCATE TABLE customer.

 

 

INSERT INTO : برای ورود اطلاعات داخل یک جدول دو راه وجود دارد. یکی اینکه رکورد ها را تک تک وارد کنیم (سطر به سطر) و یکی اینکه یکدفعه چندین سطر را وارد جدول کنیم . برای وارد کردن اطلاعات بصورت سطر به سطر با کد زیر عمل میکنیم .

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

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

Table Store_Information

نام ستون ها

نوع داده ستون

store_name

char(50)

Sales

float

Date

datetime

و حالا ما میخواهیم یک رکورد(سطر) اطلاعات وارد جدول فروش کنیم . با مشخصات ذیل : لوس آنجلس – 10 ژانویه 1999 و فروش 900$ . بنابرین کد زیر را استفاده میکنیم.

INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, 'Jan-10-1999')

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

INSERT INTO "table_name" ("column1", "column2", ...)
SELECT "column1", "column2", ...
FROM "table1"

توجه کنید که کد بالا ساده ترین حالت ممکن بود .جمله select شما می تواند دارای کلمات  where , Group by , Having باشد .

بطور مثال اگر ما جدولی داشته باشیم که بخواهیم  اطلاعات فروش سال 1998 را بگیرد و هم اکنون جدول دیگری دارید که اطلاعات تمام سال های 1995 تا 2000 را شامل میشود و اگر ساختار دو جدول یکسان باشد باید تایپ کنید :

 

INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
WHERE Year(Date) = 1998

 

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

WHERE to_char(date,'yyyy')=1998

 

 

UPDATE : گاهی ما در یک جدول اطلاعاتی داریم و میخواهیم مقداری را در جدول تغییر دهیم .برای اینکار از دستور UPDATE استفاده می کنیم .

UPDATE "table_name"
SET "column_1" = [new value]
WHERE {condition}

مثال : ما جدول زیر را داریم .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

مثلا ما متوجه میشویم که مقدار فروش فروشگاه لوس آنجلس در تاریخ 01/08/1999 در اصل 500$ بوده و باید این مقدار را در جدول تصحیح کنیم . برای اینکار از کد زیر استفاده میکنیم.

UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "Jan-08-1999"

بعد از اجرای کد بالا مقادیر جدول بصورت زیر در میاید .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$500

Jan-08-1999

Boston

$700

Jan-08-1999

در جدول مذکور فقط یک رکورد بود که تاریخش Jan-08-1999 و نام فروشگاهش Los Angeles باشد . اگر لچند رکورد با این مشخصات وجود داشت نیز تمام آنها مقدارشان تغییر میکرد . در مثال فوق فوق یک رکورد وجود داشت با مشخصاتی که ما دادیم و فقط هم یک فیلدش را تغییر دادیم .

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

UPDATE TABLE "table_name"
SET ("column_1", "column_2") = ([new value 1], [new value 2])
WHERE {condition}

 

 

UPDATE : برای پاک کردن یک رکورد از جدول ازین کد استفاده میکنیم .

DELETE FROM "table_name"
WHERE {condition}

مثال : جدول زیر را داریم .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

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

DELETE FROM Store_Information
WHERE store_name = "Los Angeles"

نتیجه:

Table Store_Information

store_name

Sales

Date

San Diego

$250

Jan-07-1999

Boston

$700

Jan-08-1999

 آموزش SQL server - دستور MINUS

این دستور نیز با دو جمله SQL کار میکند. در ابتدا تمام نتایج query اول را میگیرد و سپس از میان نتایج ، آنهایی را که در query دوم هستند حذف میکند .

قالب دستوری :

[SQL Statement 1]
MINUS
[SQL Statement 2]

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

Table Internet Sales

Date

Sales

Jan-07-1999

$250

Jan-10-1999

$535

Jan-11-1999

$320

Jan-12-1999

$750

SELECT Date FROM Store_Information
MINUS
SELECT Date FROM Internet_Sales

نتیجه :

Date

Jan-05-1999

Jan-08-1999

 آموزش SQL server - دستور INTERSECT

مانند دستور union  این دستور نیز با دو جمله SQL کار میکند . اما تفاوت اینجاست که دستور union  در اصل مانند یک OR  کار میکند و تمام رکوردهای غیر تکراری را بر میدارد . اما این دستور مانند AND کار میکند و رکورد های مشترک را بر میدارد .

قالب دستوری :

[SQL Statement 1]
INTERSECT
[SQL Statement 2]

مثال : جداول زیر را در نظر بگیرید . ما میخواهیم تمام تاریخ هایی را که در آن معامله ای انجام شده است استخراج کنیم . بنابرین از کد زیر استفاده میکنیم . تفاوت را با union مقایشه کنید .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

Table Internet Sales

Date

Sales

Jan-07-1999

$250

Jan-10-1999

$535

Jan-11-1999

$320

Jan-12-1999

$750

SELECT Date FROM Store_Information
INTERSECT
SELECT Date FROM Internet_Sales

نتیجه :

Date

Jan-07-1999

 آموزش SQL server - دستور UNION ALL

هدف دستور  Union all نیز ترکیب کردن نتایج حاصل از دو query  با یکدیگر میباشد . اما فرقی که با union دارد این است که هنگام استفاده از union فقط مقادیر متمایز نشان داده میشود ، اما با union all تمام مقادیر برگردانده میشود.

قالب دستوری :

[SQL Statement 1]
UNION ALL
[SQL Statement 2]

مثال : جداول زیر را در نظر بگیرید . ما میخواهیم تمام تاریخ هایی را که در آن معامله ای انجام شده است استخراج کنیم . بنابرین از کد زیر استفاده میکنیم . تفاوت را با union مقایشه کنید .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

Table Internet Sales

Date

Sales

Jan-07-1999

$250

Jan-10-1999

$535

Jan-11-1999

$320

Jan-12-1999

$750

SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales

نتیجه :

Date

Jan-05-1999

Jan-07-1999

Jan-08-1999

Jan-08-1999

Jan-07-1999

Jan-10-1999

Jan-11-1999

Jan-12-1999

آموزش SQL server - دستور UNION

هدف دستور Union ترکیب کردن نتایج حاصل از دو query  با یکدیگر میباشد. در این رابطه میتوان گفت که union چیزی شبیه به join میباشد . چون هر دوی آنها برای ایجاد رابطه بین اطلاعات جداول مختلف استفاده میشوند . یکی از محدودیت های union این است که این ستون های متناظر با هم باید از یک نوع داده اطلاعات باشند. همچنین هنگام استفاده ار union فقط مقدار های متمایز انتخاب میشوند .(مانند select Distinct ) .

قالب دستوری :

[SQL Statement 1]
UNION
[SQL Statement 2]

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

Table Internet Sales

Date

Sales

Jan-07-1999

$250

Jan-10-1999

$535

Jan-11-1999

$320

Jan-12-1999

$750

SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales

نتیجه :

Date

Jan-05-1999

Jan-07-1999

Jan-08-1999

Jan-10-1999

Jan-11-1999

Jan-12-1999

توجه کنید که اگر ما از SELECT DISTINCT Date استفاده کنیم ، برای یکی یا هر دو عبارت، ما نتایج یکسانی را بدست خواهیم آورد.

 

آموزش SQL server - دستور OUTER JOIN

قبلا دیدیم که چطور اطلاعات را با ایجاد اتصال بین دو جدول استخراج کردیم . در این حالت می خواهیم اطلاعات را از جدولی انتخاب کنیم صرفنظر ازینکه آنها در جدول دیگر ارائه شده اند یا خیر . برای اینکار باید از outer join استفاده کنیم .

این دستور در دیتابیس ها ، وابسته به نوع دیتابیس است . بطور مثال در اوراکل ما باید یک علامت "(+)" در کلمه  where قرار دهیم .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

 

Table Geography

region_name

store_name

East

Boston

East

New York

West

Los Angeles

West

San Diego

جداول بالا موجود است و ما میخواهیم فروش تمام فروشگاه ها را که در جدول Geography آمده بدست آوریم . اگر مااز حالت join معمولی استفاده کنیم اطلاعات درستی بدست نمی آوریم ، چون مقدار New York را در جدول دوم به ما نشان نخواهد داد . چرا ؟ چون این مقدار در جدول اولی موجود نیست .

SELECT A1.store_name, SUM(A2.Sales) SALES
FROM Georgraphy A1, Store_Information A2
WHERE A1.store_name = A2.store_name (+)
GROUP BY A1.store_name

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

نتیجه :

store_name

SALES

Boston

$700

New York

 

Los Angeles

$1800

San Diego

$250

نکته : وقتی که رکوردی در جدول دوم همتایش موجود نباشد NULL برگردانده میشود . در این حالت New York در جدول Store_Information موجود نمی باشد.

• آموزش SQL server - دستور JOIN

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

 

Table Geography

region_name

store_name

East

Boston

East

New York

West

Los Angeles

West

San Diego

چیزی که ما نیاز داریم اینه که میخواهیم فروش را در هر منطقه جغرافیایی بدست بیاریم . می بینیم که جدول Geography اطلاعات مناطق جغرافیایی را در بر دارد و جدول Store_Information اطلاعات فروش شهر ها را . برای بدست آوردن فروش در هر منطقه ، ما باید اطلاعات بدست آمده از هر منطقه را در هم ترکیب کنیم . با نگاهی به دو جدول می فهمیم که یک فیلد مشترک در هر دو موجود است و آن store_name میباشد که با یک کاما بهم وصل میشوند .

کد زیر را ببینید تا توضیحات را شرح دهیم .

SELECT A1.region_name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name

نتیجه :

REGION

SALES

East

$700

West

$2050

دو خط اول کد به sql میگوید که دو فیلد را انتخاب کند . اولین خط فیلد region_name است از جدول Geography که نام مستعار REGION گرفته است . و دومین خط حاصل فیلد sales از جدول Store_Information که نام مستعار sales گرفته است . دقت کنید که چگونه مستعار های جدول در اینجا بکار گرفته شده . Geography بعنوان A1 مستعار شده و Store_information بنام A2  . بدون استفاده از مستعار ها خط اول بصورت زیر در میاید .

SELECT Geography.region_name REGION, SUM(Store_Information.Sales) SALES

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

حال بخط سوم کد اصلی توجه کنید ،یعنی کلمه where  . اینجا جائیست که join کارش معلوم میشود . در این حالت ما میخواهیم مطمئن شویم که محتوای "store_name"  در جدول Geography با مقادیر آن در جدول Store_Information نظیر میشود و راهش اینه که آنها را برابر هم قرار دهیم . کلمه where لازمه که مطمئن شویم که اطلاعات درست بدست میاید . بدون یک کلمه where درست ، یک نتیجه join دکارتی بدست میاید . نتیحه دکارتی در اصل ترکیبی از تمام حالات بوجود آمده از دو جدول را ارائه میکند . یعنی نتیجه برابر میشه با  4 x 4 = 16

آموزش SQL server - دستور ALIAS

دو نوع نام مستعار وجود دارند که اکثرا استفاده میشود . یکی نام مستعار ستون و یکی نام مستعار جدول .

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

نوع دوم نام مستعار جداول است : با نوشتن نام مستعار درست بعد از نام جدول بعد از From انجام میشود. راحتی استفاده از این کلمه کلیدی در هنگام استفاده از دو جدول در استخراج جداول است که اطلاعات توسط کلمه join  متحد و سپس استخراج می گردد .قبل از اینکه به Join برسیم بیایید نگاهی به alias بیندازیم .

SELECT "table_alias"."column_name1" "column_alias"
FROM "table_name" "table_alias"

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

مثال: جدول زیر را در نظر بگیرید .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT A1.store_name Store, SUM(A1.Sales) "Total Sales" FROM Store_Information A1 GROUP BY A1.store_name

نتیجه

Store

Total Sales

Los Angeles

$1800

San Diego

$250

Boston

$700

 

آموزش SQL server - دستور HAVING

 

یکی دیگر از چیزهایی که ممکنه در استخراج اطلاعات نیاز داشته باشیم گزیدن اطلاعات بر اساس یک مقیاس است . بطور مثال ممکنه بخواهیم فروشگاه هایی که بیش از 1500 دلار فروش دارند را استخراج کنیم . بجای استفاده از where ما باید از HAVING استفاده کنیم که برای فانکشن های جمعی استفاده میشه . Having معمولا در انتهای جمله query شما استفاده میشود . جمله ای که having دارد میتواند group by هم داشته باشد .

SELECT "column_name1", SUM("column_name2")
FROM "table_name"
GROUP BY "column_name1"
HAVING (arithematic function condition)

مثال: جدول زیر را در نظر بگیرید .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sales) > 1500

نتیجه

 

store_name

SUM(Sales)

Los Angeles

$1800

 آموزش SQL server - دستور GROUP BY

حالا ما بسوی فانکشن های جمع بندی میریم . یادتون هست که از فانکشن SUM برای محاسبه کل فروش استفاده کردیم ؟ حالا اگر بخواهیم کل فروش فروشگاه های هر شهر را بدست آوریم چه باید بکنیم ؟ اینجا 2 چیز لازم است. اول باید نام فروشگاه ها را مانند کل فروش جمع ببندیم و سپس باید مطمئن شویم که تمام فروش ها طبق نام فروشگاه ها باید دسته بندی شود .

SELECT "column_name1", SUM("column_name2") FROM "table_name" GROUP BY "column_name1"

مثال: جدول زیر را در نظر بگیرید .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name

نتیجه

store_name

SUM(Sales)

Los Angeles

$1800

San Diego

$250

Boston

$700

کلمه کلیدی Group By وقتی استفاده میشود که ما در حال انتخاب چند ستون هستیم و حداقل یک عملگر محاسباتی در عبارت select داریم . در این زمان ما باید تمام ستونهای دیگر را گروه کنیم.

 

آموزش SQL server - دستورCOUNT

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

SELECT COUNT("column_name") FROM table_name

مثال: شمردن سطر های جدول فروش :

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT COUNT(store_name) FROM Store_Information

نتیجه

count(store_name)

4

COUNT و DISTINCT را میتوان برای بدست آوردن مقادیر خاص جدول، با هم در یک عبارت نوشت . مثلا اگر ما بخواهیم تعداد فروش های ویژه جدول را بشماریم باید تایپ کنیم :

SELECT COUNT(DISTINCT store_name) FROM Store_Information

نتیجه:

Count(DISTINCT store_name)

3

آموزش SQL server - دستور FUNCTIONS

از وقتی ما در حال کار با اعداد هستیم سوالی که در مرحله دوم برای ما پیش میاید اینه که آیا میشه اعمال حسابی روی این اعداد انجام داد ؟ مثلا میانگین اعداد رو بگیریم .جواب مثبته .SQL چندین عملگر ریاضی داره از جمله SUM  و AVG .

SELECT function type(column_name") FROM table_name

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT SUM(Sales) FROM Store_Information

نتیجه

SUM  : Sales

$2750

آموزش SQL server - دستور ORDER BY

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

SELECT "column_name"

FROM "table_name"

WHERE "condition"

ORDER BY "column_name" [ASC, DESC]

علامات []در اطراف where بدین معناست که میتوانید where را بکار نبرید. اما اگر بکار بردید حتما باید قبل از order باشد . ASC به معنای صعودی بودن (a to z)و DESC به معنای نزولی بودن است (z to a).پیش فرضش ACS است.

همچنین این نیز امکان پذیرست که مرتب سازی را بر مبنای بیش از یک ستون انجام دهید .برای این منظور بخش مرتب سازی کد بالا بصورت زیر در میاید :

ORDER BY "column_name1" [ASC, DESC], "column_name2" [ASC, DESC

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT * FROM Store_Information ORDER BY Sales DESC
نتیجه

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

Boston

$700

Jan-08-1999

San Francisco

$300

Jan-08-1999

San Diego

$250

Jan-07-1999

                         
آموزش SQL server - دستورLIKE 

این کلمه نیز با کلمه where بکار میرود . اساسا like به شما اجازه میدهد که جستجویی را بر مبنای یک پیش زمینه ای که دارید انجام دهید . (مثلا انتخاب رکوردهایی که یکی از فیلدهایش با کلمه خاصی شروع میشود .)

SELECT "column_name"
FROM "table_name"
WHERE "column_name" LIKE {PATTERN}

روش ساخت پترن بکمک مثال:

'ABC%' : تمام کلماتی که با ABC شروع میشوند.

'%XYZ' : تمام کلماتی که به XYZ خاتمه می یابند.

'%AN%' : تمام کلماتی که شامل عبارت AN هستند .

 

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT * FROM Store_Information WHERE store_name LIKE '%AN%'

نتیجه

  • store_name

Sales

Date

LOS ANGELES

$1500

Jan-05-1999

SAN FRANCISCO

$300

Jan-08-1999

SAN DIEGO

$250

Jan-07-1999

آموزش SQL server - دستور BETWEEN 

همانطور که کلمه IN به ما کمک میکند تا محدوده انتخاب را به یک یا چند مقدار محدود کنیم ، کلمه BETWEEN  کمک میکند تا محدوده را یک بازه تعریف کنیم . در این حال تمام مقادیری که بین value1 و value2 باشند انتخاب میشوند .

SELECT "column_name"
FROM "table_name"
WHERE "column_name" BETWEEN 'value1' AND 'value2'

مثال :فرض کنید جدولی مانند زیر داریم .رکوردهایی که تاریخ آنها بین January 6, 1999  و January 10, 1999 است را میخواهیم .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT * FROM Store_Information WHERE Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999'

نتیجه

store_name

Sales

Date

San Diego

$250

Jan-07-1999

San Francisco

$300

Jan-08-1999

Boston

$700

Jan-08-199

آموزش SQL server - دستور IN

در SQL دو استفاده از کلمه کلیدی IN میشود . این بخش قسمت اول آنرا که در ارتباط با کلمه کلیدی where است توضیح می دهد . ما ازین کلمه کلیدی وقتی استفاده می کنیم که مقدار یکی از فیلد ها را دقیقا تعیین کنیم . شما میتوانید بیش از یک مقدار را برای فیلد ها تعیین کنید و بین هر مقدار یک کاما بگذارید . مقادیر می توانند کاراکتر و عددی باشیند . اگر فقط یک مقدار میگذارید نیازی به پرانتز نیست .

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

مثال :فرض کنید جدولی مانند زیر داریم .رکوردهایی که مربوط به لوس آنجلس و سان دیگو  است را میخواهیم انتخاب کنیم .

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT *
FROM Store_Information
WHERE store_name IN ('Los Angeles', 'San Diego')


نتیجه

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

آموزش SQL server - دستور AND OR

در فرمان where دیدید که چگونه اطلاعات را بر حسب یه شرط فیلتر کردیم . حال اگر چند شرط داشته باشیم میتوانیم بکمک AND   یا OR آنها را بهم وصل کنیم تا در فرمان where از آن استفاده کنیم .

SELECT "column_name"
FROM "table_name"
WHERE "simple condition"
{[AND|OR] "simple condition"}+

علامات {}+ بدین معنی است که اطلاعات داخل براکت ممکن است یک یا چند بار تکرار شود . ما میتوانیم از پرانتز ها نیز برای جدا کردن اولویت عمل کردن AND و OR  استفاده کنیم.

مثال :فرض کنید جدولی مانند زیر داریم . جاهایی که فروش بیش از هزار دلار است یا بین 275 و 500 است را می خواهیم:

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT store_name
FROM Store_Information
WHERE Sales > 1000
OR (Sales < 500 AND Sales > 275)


نتیجه

store_name

Los Angeles

San Francisco

آموزش SQL server - دستور SELECT و  Where

اولین نیاز ما انتخاب اطلاعات از یک جدول است . در دستور زیر یک ستون از یک جدول را انتخاب میکنیم .

قالب دستور :   SELECT "column_name" FROM "table_name"

مثال :فرض کنید جدولی مانند زیر داریم :

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT store_name FROM Store_Information

 

نتیحه

Los Angeles

San Diego

Los Angeles

Boston

 

 

دستور WHERE :

ممکن است گاهی بخواهیم اطلاعات را طبق پارامتر خاصی استخراج کنیم :

SELECT "column_name"
FROM "table_name"
WHERE "condition"

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

Table Store_Information

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

SELECT store_name
FROM Store_Information
WHERE Sales > 1000


نتیجه

store_name

Los Angeles

آموزش SQL SERVER

برای کار با  اطلاعات در بانک های اطلاعاتی زبانی مخصوص همان بانک وجود دارد که از آن زبان برای دستکاری اطلاعات و مرتب کردن آنها در بانک استفاده میشود.بانک اطلاعاتی Sql server و همچنین Access و نیز Oracle (البته تا حدودی) از یک زبان واحد برای اینکار استفاده میکنند . در این سری مقالات دستورات ساده SQL را خواهید آموخت . تعدادی ازین دستورات به قرار زیر است که زیر هر کدام از آنها قالب دستوری شان نیز نوشته شده که بزودی بصورت کامل شرح داده خواهند شد . یادگیری هر یک از این دستورات پیش نیاز بعدی میباشد . پس با ما همراه باشید .

Select

SELECT "column_name" FROM "table_name"

Distinct

SELECT DISTINCT "column_name"

FROM "table_name"

Where

SELECT "column_name"

FROM "table_name"

WHERE "condition"

And/Or

SELECT "column_name"

FROM "table_name"

WHERE "simple condition"

{[AND|OR] "simple condition"}+

In

SELECT "column_name"

FROM "table_name"

WHERE "column_name" IN ('value1', 'value2', ...)

Between

SELECT "column_name"

FROM "table_name"

WHERE "column_name" BETWEEN 'value1' AND 'value2'

Like

SELECT "column_name"

FROM "table_name"

WHERE "column_name" LIKE {PATTERN}

Order By

SELECT "column_name"

FROM "table_name"

[WHERE "condition"]

ORDER BY "column_name" [ASC, DESC]

Count

SELECT COUNT("column_name")

FROM "table_name"

Group By

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

Having

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

HAVING (arithematic function condition)

Create Table

CREATE TABLE "table_name"

("column 1" "data_type_for_column_1",

"column 2" "data_type_for_column_2",

... )

Drop Table

DROP TABLE "table_name"

Truncate Table

TRUNCATE TABLE "table_name"

Insert Into

INSERT INTO "table_name" ("column1", "column2", ...)

VALUES ("value1", "value2", ...)

Update

UPDATE "table_name"

SET "column_1" = [new value]

WHERE {condition}

Delete From

DELETE FROM "table_name"

WHERE {condition}

تعریف های اولیه :

Query : به معنای درخواست است و در sql به کد جستجویی می گویند که شما برای بدست آوردن نتیجه ای آن را مینویسید و اجرا می کنید .

Resault set : نتیجه بدست آمده از یک Query را میگویند.

Database : پایگاه داده را دیتابیس میگویند که میتواند شامل جداول و ماژول های ما باشد


comment نظرات ()