پرسوجوهای پایه SQL - SELECT، ستونها و WHERE
2 - پرسوجوهای پایه
- انتخاب همه ستونها و سطرها
- انتخاب ستونهای مشخص
- انتخاب سطرهای مشخص
- مرتبسازی سطرها
- حذف سطرهای تکراری
صفحه PDF 9 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب همه ستونها و سطرها
سادهترین نوع پرسوجو همه ستونها و همه سطرهای یک جدول را نمایش میدهد. در Clause SELECT یک ستاره وارد میشود تا مشخص شود همه ستونها باید در نتیجه باشند و نام جدول در Clause FROM تعیین میشود.
SELECT *
FROM JOBS;
SELECT *
FROM RELIGIONS;
- همه پرسوجوها Clauseهای
SELECT و FROM دارند. - Clause
FROM پس از SELECT میآید. - ستاره (
*) یعنی «همه ستونها». - نام جدول در Clause
FROM مشخص میشود. - ستونها و سطرها ممکن است به ترتیب دلخواه ظاهر شوند.
صفحه PDF 10 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب همه ستونها و سطرها - ادامه
نحو عمومی یک دستور SELECT در SQL در ادامه آمده است. کلیدواژهها و مثالها با حروف بزرگ و پارامترها با حروف کوچک نشان داده میشوند.
تمرینها
- از مدرس بخواهید آموزش کوتاهی درباره استفاده از پایگاه داده کلاس ارائه کند.
- همه ستونها و همه سطرهای جدول
PERSONS را انتخاب کنید. - جدول
COUNTRIES را با یک دستور SELECT بررسی کنید. - جدول
ERRORS را مشاهده کنید. - جدول
ARMIES را بررسی کنید.
امتیاز اضافه
- بیشتر پایگاههای داده جدی جدولی با نام
SYSCOLUMNS دارند. نگاهی به آن بیندازید. - یکی از جدولهای دیگری را که در
SYSCOLUMNS آمده انتخاب و نمایش دهید.
صفحه PDF 11 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب ستونهای مشخص
برای انتخاب ستونهای مشخص، بهجای ستاره فهرستی از نام ستونها را در دستور SELECT وارد میکنیم. هر نام ستون با ویرگول و فاصله اختیاری از بقیه جدا میشود. ستونها به همان ترتیبی نمایش داده میشوند که در فهرست نوشته شدهاند.
SELECT TITLE
FROM JOBS;
SELECT TITLE, JOB
FROM JOBS;
SELECT *, JOB
FROM JOBS;
- نام ستونها در Clause
SELECT فهرست میشود. - نام ستونها با ویرگول از هم جدا میشود.
- ستونها به ترتیب فهرست ظاهر میشوند.
- سطرها ممکن است به ترتیب دلخواه ظاهر شوند.
صفحه PDF 12 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب ستونهای مشخص - ادامه
نحو بازبینیشده دستور SELECT در ادامه آمده است. پارامتر فهرست ستونها به Clause SELECT افزوده شده است.
SELECT collist
FROM table
-- Example
SELECT LANGUAGE, COUNTRY
FROM COUNTRIES;
تمرینها
- فقط ستون
JOB را از جدول JOBS انتخاب کنید. - ستونهای
NAME و BDATE را از جدول PERSONS نمایش دهید. - جدول
RELIGIONS سه ستون COUNTRY، RELIGION و PERCENT دارد. همه را نمایش دهید، اما ترتیب ستونها را معکوس کنید.
امتیاز اضافه
- همه ستونهای جدول
COUNTRIES را نمایش دهید، اما ستون COUNTRY را در هر دو انتهای خروجی قرار دهید. ابتدا بدون ستاره و سپس با استفاده از ستاره این کار را انجام دهید.
صفحه PDF 13 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب سطرهای مشخص
سطرهای یک جدول با مقادیری که در خود دارند شناسایی میشوند. بنابراین باید دستههای مختلف مقادیری را که SQL پشتیبانی میکند و نحو مناسب واردکردن هر نوع مقدار در دستورهای پرسوجو بشناسیم.
خلاصه انواع مقدار| دسته | توضیح | مثال |
|---|
| عددی | مقادیر مثبت | 3, +12 |
| مقادیر منفی | -7, -1024000 |
| مقادیر اعشاری | 3.141519, -.96 |
| غیرعددی | تکواژه | 'Chamberlin', 'SELECT' |
| چندواژه | 'We love SQL', 'The LORD is good to me' |
| دارای کوتیشن منفرد | '10 O''Clock', 'I don''t know' |
| تاریخ | قالب yyyy-mm-dd | '1996-01-01', '1996-12-31' |
مقادیر عددی به شکل عادی وارد میشوند
مقادیر عددی در پرسوجوها با یک یا چند نویسه از مجموعه +-0123456789. مشخص میشوند. علامت اختیاری است، اما اگر وجود داشته باشد باید در ابتدا بیاید. فقط یک نقطه اعشاری مجاز است. ویرگول، علامت دلار و علامت درصد در مقادیر عددی مجاز نیستند.
مقادیر غیرعددی داخل کوتیشن قرار میگیرند
مقادیر غیرعددی که String نامیده میشوند، داخل کوتیشن منفرد نوشته میشوند. برای نمایش یک کوتیشن منفرد درون String، دو کوتیشن منفرد متوالی وارد کنید.
تاریخها با قالب yyyy-mm-dd وارد میشوند
اگرچه استاندارد SQL نمایش یکنواختی برای تاریخ تعریف نکرده است، قالب نشاندادهشده در بیشتر گویشهای SQL پشتیبانی میشود. تاریخها باید داخل کوتیشن منفرد قرار گیرند.
صفحه PDF 14 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب سطرهای مشخص - ادامه
مقایسه (Comparison) عبارتی است که از نام ستون، یک عملگر مقایسه و یک مقدار تشکیل میشود. نتیجه هر مقایسه یا درست است یا نادرست. مقایسهها تعیین میکنند کدام سطرهای جدول در نتیجه پرسوجو قرار گیرند.
عملگرهای مقایسه| عملگر | معنی | مثال |
|---|
= | برابر با | NAME = 'EINSTEIN' |
<> | نابرابر با | BDATE <> '1944-05-02' |
< | کمتر از | POP < 100000 |
<= | کمتر از یا برابر | NAME <= 'O''Grady' |
> | بزرگتر از | AREA > 999 |
>= | بزرگتر از یا برابر | BDATE >= '1962-06-19' |
نام ستون در سمت چپ قرار میگیرد
نام ستون را میتوان با حروف بزرگ، کوچک یا ترکیبی وارد کرد. در این متن نام ستونها با حروف بزرگ نشان داده میشوند. با اینکه نام ستونها غیرعددیاند، داخل کوتیشن قرار نمیگیرند.
مقدار در سمت راست قرار میگیرد
مقدار باید متناسب با نوع خود وارد شود: عدد به شکل عادی، String در کوتیشن منفرد و تاریخ در قالب yyyy-mm-dd. نوع مقدار باید با نوع ستونی که با آن مقایسه میشود یکسان باشد.
عملگر در میانه قرار میگیرد
عملگرهای مقایسه بین نام ستون و مقدار قرار میگیرند. فاصله در دو طرف عملگر مجاز است اما اجباری نیست. با این حال بین نمادهای عملگرهای چندنمادی مانند <>، <= و >= نباید فاصله قرار گیرد.
صفحه PDF 15 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب سطرهای مشخص - ادامه
مقایسهها در Clause WHERE یک دستور SELECT مشخص میشوند. Clause WHERE باید بلافاصله پس از FROM بیاید. جدول نتیجه شامل همه سطرهای جدول مبدأ است که مقایسه برای آنها درست باشد.
SELECT COUNTRY, AREA
FROM COUNTRIES
WHERE AREA > 3000000;
SELECT NAME, COUNTRY
FROM PERSONS
WHERE COUNTRY = 'RUSSIA';
SELECT NAME, BDATE
FROM PERSONS
WHERE BDATE < '1300-01-01';
- Clause
WHERE پس از FROM میآید. - مقایسهها در Clause
WHERE نوشته میشوند. - سطرهایی که مقایسه برای آنها درست است نمایش داده میشوند.
صفحه PDF 16 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
انتخاب سطرهای مشخص - ادامه
نحو فعلی دستور SELECT در ادامه آمده است. Clause WHERE و خلاصه عملگرهای مقایسه به نحو قبلی اضافه شدهاند.
SELECT collist
FROM table
WHERE comparison
-- Example
SELECT LANGUAGE, COUNTRY
FROM COUNTRIES
WHERE AREA > 3000000;
تمرینها
- همه ستونها و سطرهای جدول
COUNTRIES را نمایش دهید. سپس فقط کشورهایی را نشان دهید که مساحتشان کمتر از 30 مایل مربع است. نتیجه باید 5 سطر داشته باشد. - نام و کشور همه افراد جدول
PERSONS را نشان دهید. سپس نتیجه را به افرادی محدود کنید که در کانادا متولد شدهاند. جدول نهایی 6 سطر دارد. - نام و تاریخ تولد افرادی را نشان دهید که بعد از
1964-01-01 متولد شدهاند. 9 سطر وجود دارد.
امتیاز اضافه
- تاریخ تولد شخصی با نام
O'Toole چیست؟
صفحه PDF 17 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده