با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. تاکنون با چگونگی درج داده ها در جداول دیتابیس های SQLite آشنا شدیم، حالا برای هر گونه جستجو و فیلتر کردن داده های درج شده در یک یا چند جدول، باید ابتدا داده های مورد نظر را از جدول استخراج کنیم، برای این گونه اقدامات باید با دستور SELECT در SQLite آشنایی داشته باشیم. علاوه بر این اقدامات دیگری از جمله ویرایش ، بروزرسانی و حذف داده ها نیز وجود دارد که برای آن ها دستورات جداگانه ای ارائه شده است، در ادامه ی این مباحث به چگونگی انتخاب رکوردهای خاص از یک جدول با استفاده از دستور SELECT در SQLite پرداخته ایم.
در ادامه ی این مبحث با چگونگی کار با دستور SELECT در SQLite و استخراج داده از جداول آشنا خواهید شد.
سینتکس اصلی دستور SELECT در SQLite به صورت زیر است :
1 | SELECT column1, column2, columnN FROM table_name; |
در کد فوق عبارات column1, column2 … ستون هایی هستند که قصد استخراج مقادیر آن ها را دارید.
و اگر می خواهید تمام ستون ها انتخاب شوند از سینتکس زیر استفاده کنید :
1 | SELECT * FROM table_name; |
مثال
جدول COMPANY را با رکوردهای زیر در نظر بگیرید :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 |
در زیر نمونه ای برای استخراج و نمایش همه این سوابق با استفاده از عبارت SELECT است.
در اینجا، برای تنظیم خروجی انتخاب شده در فرمت درست، از سه دستور استفاده شده است :
1 2 3 | sqlite>.header on sqlite>.mode column sqlite> SELECT * FROM COMPANY; |
سرانجام، شما می توانید نتیجه ی زیر را دریافت کنید :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 |
اگر می خواهید فقط داده های فیلدهای مورد نظر را از جدول COMPANY استخراج کنید، کد زیر را دنبال کنید :
1 | sqlite> SELECT ID, NAME, SALARY FROM COMPANY; |
query فوق نتیجه ی زیر را تولید خواهد کرد :
1 2 3 4 5 6 7 8 9 | ID NAME SALARY ---------- ---------- ---------- 1 Paul 20000.0 2 Allen 15000.0 3 Teddy 20000.0 4 Mark 65000.0 5 David 85000.0 6 Kim 45000.0 7 James 10000.0 |
گاهی اوقات، شما با مشکل کوتاه بودن عرض ستون ها در خروجی مواجه می شوید، که به دلیل عرض پیش فرض ستون است.
برای رفع این مشکل می توانید با استفاده از دستور .width num, num…. عرض ستون ها را در خروجی تعیین کنید :
1 2 | sqlite>.width 10, 20, 10 sqlite>SELECT * FROM COMPANY; |
دستور width. در کد فوق عرض ستون اول را در خروجی ۱۰ ، ستون دوم را ۲۰ و ستون سوم را ۱۰ تنظیم می کند.
سرانجام دستور SELECT فوق نتیجه ی زیر را تولید خواهد کرد :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- -------------------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 |
تمام دستورات موجود در dot command در خط فرمان SQLite در دسترس هستند، بنابراین هنگام برنامه نویسی با SQLite ، شما از دستور SELECT زیر با جدول sqlite_master برای لیست کردن تمام جداول ایجاد شده در دیتابیس استفاده خواهید کرد :
1 | sqlite> SELECT tbl_name FROM sqlite_master WHERE type = 'table'; |
اگر فرض را بر این بگیریم که ما جدول COMPANY را در دیتابیس testDB.db داریم در این صورت نتیجه ی زیر را خواهیم داشت :
1 2 3 | tbl_name ---------- COMPANY |
شما می توانید تمام اطلاعات را درباره ی جدول COMPANY با کد زیر لیست کنید :
1 | sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY'; |
اگر فرض را بر این بگیریم که ما جدول COMPANY را در دیتابیس testDB.db داریم در این صورت نتیجه ی زیر را خواهیم داشت :
1 2 3 4 5 6 7 | CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ) |
برای استخراج هر گونه داده از جداول دیتابیس و یا انتخاب انواع query یا کد sql در دیتابیس مورد نظر در محیط SQLite باید داده های مورد نظر را برای استخراج کردن انتخاب کنید، که تمام اقدامات فوق با دستور SELECT در SQLite انجام می شود.