کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

- Queries SQLساختار دستوری Select

Queries SQLساختار دستوری Select

دستور Select برای انتخاب و واکشی اطلاعات مورد نظر از يک يا چند جدول و سپس مشاهده نتايج در يک جدول موقت استفاده می شود.
برای بازیابی داده از یک یا چند جدول، جدول اشیا (object table)، نمایه ها (views)، object views (یک جدول شی مجازی) و materialized view (یک شی پایگاه داده که دربردارنده ی نتایج یک query می باشد) از subquery (یک کوئری که در دل کوئری دیگر گنجانده شده باشد) یا دستور SELECT استفاده کنید.
به عنوان مثال، به منظور بازیابی تمامی سطرها از جدول emp، باید از دستور زیر استفاده کنید:


SQL> select  empno،‎ ename،‎ sal  from emp;‎

یا (اگر می خواهید مقادیر تمامی ستون ها را مشاهده کنید از عملگر * استفاده کنید که تمامی ستون ها را برمی گرداند)


SQL> select * from emp;‎

فرض بگیرید، می خواهید تنها اسم کارکنان و درآمد آن ها را مشاهده کنید. برای این منظور دستور زیر را وارد می کنیم.


SQL> select name،‎ sal from emp;‎

فیلتر کردن اطلاعات با استفاده از شرط (ساختار دستوری) Where

دستور Where برای افزودن شرط جهت محدود کردن نتايج جستجو و واکشی نتايج دقيق تر بکار می رود. از این دستور بايد پس از دستور Select و تعيين ستون ها از جدول مورد نظر استفاده شود. با استفاده از عملگرهای AND ، OR و پرانتز می توان چندين شرط را با هم ادغام کرد. برنامه فقط سطرهایی از جدول را که با شرط های ارائه شده مطابقت دارند را نمايش خواهد داد.
فرض بگیرید می خواهید تنها آن دسته از کارکنانی را مشاهده کنید که درآمدی بالغ بر 5000 دارند. برای این منظور query زیر را با شرط where وارد کنید.


SQL>select * from emp where sal > 5000;‎

برای مشاهده کارکنانی که درآمد آن ها پایین تر از 5000، query ای که بکار می بریم به صورت زیر خواهد بود.


SQL> select * from emp where sal < 5000;‎

شرط های منطقی

شرط های منطقی نتایج حاصل از دو شرط (component condition) را با هم ترکیب می کند تا نتیجه ای واحد بر اساس آن ها ارائه داده یا نتیجه ی یک شرط را وارونه کند. جدول زیر تمامی شرط های منطقی را فهرست می کند.


مثال
عملیات
شرط
SELECT * FROM emp ;WHERE NOT (sal IS NULL)
SELECT * FROM emp WHERE NOT (salary BETWEEN 1000 AND 2000);
اگر شرطی که به دنبال می آید (شرط دوم) FASLE باشد، TRUE بازمی گرداند. چنانچه شرط دومی TRUE باشد،FALSE برمی گرداند. در صورتی که UNKNOWN بود، UNKNOWN باقی می ماند.
NOT
SELECT * FROM employees WHERE ename ='SAMI' ;AND sal=3000
در صورتی که هر دو شرط صحیح (TRUE) بودند، TRUE بازمی گرداند. چنانچه یکی از آن ها غلط باشد، FALSE باز می گرداند. در غیر این صورت UNKNOWN بازایابی می کند.
AND
SELECT * FROM emp WHERE ename = 'SAMI' ;OR sal >= 1000
چنانچه یکی از دو شرط صحیح باشد، TRUE برمی گرداند. اگر هر دو شرط غلط باشند، FALSE برمی گرداند. در غیر این صورت UNKNOWN بازگردانی می نماید.
OR

شرط های رابطه ای (membership condition)

عملگر IN یا NOT IN به شما این امکان را می دهد که چندین مقدار را در عبارت WHERE مشخص کنید.
شرط های رابطه ای یک لیست یا subquery را تست کرده و بررسی می کند آیا شرط های رابطه ای در یک لیست بکار رفته یا خیر.


مثال
عملیات
شرط
SELECT * FROM emp WHERE deptno IN ;(10،20)
SELECT * FROM emp WHERE deptno IN (SELECT deptno FROM dept WHERE city=’HYD’)
معادل "= ANY" می باشد.
IN
SELECT * FROM emp ;WHERE ename NOT IN ('SCOTT'، 'SMITH')
معادل "!=ALL" می باشد. چنانچه یکی از اعضای مجموعه NULL باشد، به FALSE ارزیابی می شود.
NOT IN

شرط های null

این شرط یک لیست یا subquery را برای پیدا کردن مقدار null تست می کند.
Null چیست؟
مقدار null نشانگر داده ای است که مشخص نشده یا فیلدی است که تهی می باشد. به عبارت دیگر چنانچه یک ستون خالی باشد یا مقداری داخل آن وارد یا درج نشده باشد، null خوانده می شود. به یاد داشته باشید که 0 و رشته خالی ‘ ’ هیچ یک null محسوب نمی شوند.
جدول زیر شرط های null را فهرست کرده


مثال
عملیات
شرط
SELECT ename FROM emp WHERE deptno ;IS NULL
;SELECT * FROM emp WHERE ename IS NOT NULL
یک لیست را برای یافتن مقدار null بررسی می کند. این تنها شرطی که باید برای یافتن مقدار null از آن استفاده کنید.
IS [NOT] NULL

شرط Exist (وجود)

شرط Exists یک subquery را تست کرده و مشخص می کند آیا سطر یا سطرهای مورد نظر وجود دارند (یافت می شوند) یا خیر.


مثال
عملیات
شرط
SELECT deptno FROM dept d WHERE EXISTS
(SELECT * FROM emp e WHERE d.deptno ;= e.deptno)
اگر subquery حداقل یک سطر برگرداند، TRUE برمی گرداند.
EXISTS

شرط Like

عملگر LIKE در عبارت WHERE برای پیدا کردن یک الگوی خاص در یک ستون استفاده می شود (با استفاده از این عملگر می توان یک تست تعریف کرد که pattern matching (تطبیق الگو) یکی از آن ها می باشد). در حالیکه عملگر تساوی ("=")، مقدار یک کاراکتر را به مقدار کاراکتر دیگر دقیقا match می کند، عملگر LIKE تنها بخشی از مقدار یک کاراکتر را با مقدار کاراکتر دیگر match می کند. عملگر مزبور این کار را با سرچ کردن مقدار اول برای الگویی که توسط دوم انتخاب شده، انجام می دهد.
این عملگر رشته ها را با کاراکترهایی که توسط مجموعه کاراکتر ورودی تعریف شده اند، بررسی می کند.
به عنوان مثال، می خواهیم تمامی کارکنانی که نام آن ها با کاراکتر S آغاز می شود، را مشاهده کنیم. برای این منظور یک شرط Like، به ترتیب زیر می نویسیم.


SQL> select * from emp where ename like ‘S%’ ;‎

به همین ترتیب می توان تمامی اسامی که به “d” ختم می شوند را پیدا کنید.


SQL>select * from emp where ename like ‘%d’;‎

حال می خواهیم اسامی که با کاراکتر ‘A’ آغاز شده و به ‘d’ ختم می شوند را مشاهده کنیم، مانند ‘Abid’، ’Adward’، ’Arnold’.


SQL>select * from emp where ename like ‘A%d’;‎

فرض بگیرید می خواهیم اسامی را واکشی و مشاهده کنیم که دارای کاراکتر ‘a’ هستند، صرف نظر از مکان قرار گیری آن در رشته ی مورد نظر (اول رشته یا وسط و یا انتهای آن).


SQL> select * from emp where ename like ‘%a%’;‎

برای یافتن اسم آن دسته از کارکنانی که حرف ‘a’ در مکان یکی مانده به آخری قرار می گیرد.


SQL>select * from emp where ename like ‘%a_’;‎

به منظور مشاهده ی آن دسته از کارکنانی که اسم آن ها دارای علامت ‘%’ می باشد، به ترتیب زیر عمل می کنیم (اینجا از % به عنوان یک کاراکتر جایگزین (wild char) استفاده نمی کنیم).


SQL> select * from emp where ename like ‘%\%%’ escape ‘\’;‎
1394/07/27 6491 1628
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...