آموزش sql مقدماتی – دستور select

در این دستور بعد از کلمه کلیدی select ، ابتدا اسامی ستون یا ستون هایی از جدول که انتخاب شده اند مشخص می شوند و بعد از عبارت from نیز نام آن جدول تعیین می شود.

مثال:

به هر ترتیبی که نام ستون ها در دستور select آورده شود، نمایش اطلاعات نیز به همان ترتیب خواهد بود. در مثال قبلی ابتدا اطلاعات ستون department_id و سپس اطلاعات ستون location_id نمایش داده می شود.

در صورت استفاده از علامت * بعد از کلمه کلیدی select، تمام رکوردهای جدول در خروجی نمایش داده می شوند.

مثال:

نکات مهم در نوشتن عبارات SQL

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

2.می توان عبارات SQL را در یک یا چند خط مجزا نوشت البته به شرطی که کلمات کلیدی مثل select، from و … بین خطوط از هم جدا نشوند.

3.در ابزار SQL DEVELOPER بکارگیری علامت ; در انتهای دستورات، اختیاری می باشد مگر اینکه چندین عبارت SQL پشت سر هم نوشته شده باشند. ولی در ابزار SQL*PLUS باید در انتهای هر دستور SQL از علامت ; استفاده شود.

استفاده از عبارت های محاسباتی در دستورات SQL

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

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

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

+ از این عملگرها نمی توان در قسمت from عبارت select استفاده نمود.

+ اگر نوع DATA TYPE اطلاعات ستون های جدول از نوع DATE و یا timestamp باشد فقط عمل جمع یا تفریق امکان پذیر خواهد بود.

در مثال زیر در زمان اجرای دستور select به ستون حقوق کارکنان 300 واحد اضافه گردیده است. همانطور که مشخص است نام ستون نیز به مقدار جدید تغییر یافته است.

نکته: زمانی که در دستور select از این عملگرها استفاده می گردد قواعد ریاضی زیر در تعیین اولویت درنظرگرفته می شوند:

1.ضرب و تقسیم اولویت بالاتری نسبت به جمع وتفریق دارند.

2.اولویت بیشتر در ترتیب عملگرها از چپ به راست می باشد.

3.بکارگیری پرانتز سبب تعریف اولویت بالاتر می شود.

مثال:

تعریف مقدار NULL

NULL عبارت است از مقداری که یکی از شرایط زیر را دارد:

1.در دسترس نیست.

2.هنوز اختصاص نیافته است.

3.غیر مشخص است.

4.غیرقابل بکارگیری است.

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

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

+ می توان از ستون هایی که دارای مقدار NULL هستند در دستورات select استفاده نمود و یا حتی قسمتی از عبارات دارای عملگرهای ریاضی باشند. البته هرگونه عملیات ریاضی بر روی مقدار NULL  نتیجه ی NULL می دهد.

+ اگر در یک ستون از جدول از constraint های PRIMARY KEY و NOT NULL استفاده گردد از درج مقدار NULL در ستون ها جلوگیری می شود.

بکارگیری نام مستعار یا  Alias

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

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

SELECT first_name AS NAME FROM contacts;

بدون استفاده از کلمه AS:

SELECT first_name NAME FROM contacts;

اگر نام مستعار شامل فاصله باشد یا شامل کاراکترهای خاص( ! _ – و ….)  باشد از علامت “   “ باید استفاده شود:

SELECT first_name “NAME!= “ FROM contacts;

ترکیبی از روش های قبلی:

SELECT first_name AS “NAME” FROM contacts;

مثال: همانطور که مشخص است نام ستون در زمان نمایش اطلاعات تغییر یافته است:

+ از روش های بالا جهت تعریف نام مستعار برای ستون ها استفاده می گردد ولی جهت تعریف نام مستعار برای نام جداول نیز می توان از این روش ها استفاده نمود که در عملیات join و یا select های خاص پرکاربرد خواهد بود.

مثال:

SELECT p.product_id, p.product_name, categories.category_name
FROM products p
INNER JOIN categories
ON p.category_id = categories.category_idORDER BY p.product_name ASC, categories.category_name ASC;

عملگر الحاق یا concatenation

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

در مثال زیر با استفاده از عملگر الحاق، دو ستون last_name و  job_id به هم متصل شده و با نام مستعار EMPLOYEES نمایش داده شده اند.

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

رشته های LITERAL

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

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

 در مثال زیر همزمان از الحاق، نام مستعار و LITERAL استفاده گردیده است:

+ اگر داخل عبارت LITERAL علامت بکار رود به جهت اینکه این علامت با شروع یا پایان آن عبارت اشتباه گرفته نشود بجای LITERAL از یک روش دیگر به نام ALTERNATE QUOTE استفاده می گردد.

عبارت ALTERNATE QUOTE با علامت q’ تعریف می گردد. همچنین می توان بجای علامت[ ]  از < > ، ( ) یا { } استفاده نمود. مثال:

سطرهای تکراری (عبارت DISTINCT)

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

مثال: از جدول زیر(persons) فقط نام تمام شهرها به صورت غیر تکراری را می خواهیم:

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

SELECT DISTINCT City FROM Persons;

بنابراین مقدار زیر نمایش داده می شود:

+ می توان از عبارت DISTINCT برای مجموعه ای از ستون ها استفاده کرد که در این حالت فقط سطرهایی که به صورت غیر تکراری ترکیبی از آن ستون ها را دارند نمایش داده می شوند.

مثال:

SELECT DISTINCT product_id,  quantity FROM   ORDER_ITEMS;

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

مشاهده ساختار یک جدول

از دستور DESCRIBE یا DESC جهت نمایش ساختار جدول ها استفاده می گردد. این دستور نام تمام ستون های جدول، نوع DATA TYPE آنها و امکان قرارگیری مقدار NULL در هر ستون را نمایش می دهد.

مثال:

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

+ دستور DESC فقط  در ابزار SQL*PLUS اجرا می شود و در ابزارهای دیگر باید از نمایش گرافیکی درختی ستون ها استفاده نمود.

 

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد.