SQLITE3(1) دستورات کاربر SQLITE3(1)

sqlite3 - واسط خط فرمان برای پایگاهداده رابطهای SQLite 3

sqlite3 [گزینه‌ها] [فایل_پایگاه‌داده] [SQL]

sqlite3 یک رابط مبتنی بر ترمینال برای کتابخانه SQLite است که می‌تواند پرس‌وجوها را به صورت تعاملی ارزیابی کرده و نتایج را در چندین قالب نمایش دهد. همچنین می‌توان از sqlite3 درون اسکریپت‌های شل و سایر برنامه‌ها برای ارائه قابلیت‌های پردازش دسته‌ای استفاده کرد.

دستور sqlite3 یک واسط تعاملی خط فرمان برای اجرای دستورات SQL و مدیریت پایگاههای داده SQLite نگارش ۳ است. برای شروع یک نشست تعاملی sqlite3، دستور sqlite3 را اجرا کرده و به دلخواه نام یک فایل پایگاه‌داده را وارد کنید. اگر فایل پایگاه‌داده وجود نداشته باشد، ایجاد خواهد شد. اگر فایل پایگاه‌داده موجود باشد، باز می‌شود.

به عنوان مثال، برای ایجاد یک فایل پایگاه‌داده جدید به نام "mydata.db"، ایجاد جدولی به نام "memos" و درج چند رکورد درون آن جدول:

$ sqlite3 mydata.db
SQLite version 3.8.8
Enter ".help" for instructions
sqlite> create table memos(text, priority INTEGER);
sqlite> insert into memos values('deliver project description', 10);
sqlite> insert into memos values('lunch with Christine', 100);
sqlite> select * from memos;
deliver project description|10
lunch with Christine|100
sqlite>

اگر نام پایگاه‌داده‌ای مشخص نشود، می‌توان از دستور SQL با عنوان ATTACH برای پیوستن به پایگاه‌های داده موجود یا ایجاد فایل‌های پایگاه‌داده جدید استفاده کرد. همچنین از ATTACH می‌توان برای پیوستن به چندین پایگاه‌داده در یک نشست تعاملی واحد استفاده نمود. این کار برای انتقال داده‌ها میان پایگاه‌های داده و احتمالاً تغییر طرحواره (اسکیما) در این مسیر مفید است.

به صورت اختیاری، یک دستور SQL یا مجموعه‌ای از دستورات SQL می‌توانند به عنوان یک تک آرگومان ارسال شوند. دستورات چندگانه باید با نقطه-ویرگول (;) از هم جدا شوند.

برای مثال:

$ sqlite3 -line mydata.db 'select * from memos where priority > 20;'
text = lunch with Christine
priority = 100

مفسر تعاملی مجموعه‌ای از دستورات ویژه (meta-commands) را ارائه می‌دهد که می‌توان برای کنترل قالب خروجی، بررسی فایل‌های پایگاه‌داده متصل‌شده یا انجام عملیات مدیریتی روی پایگاه‌های داده پیوست‌شده (مانند بازسازی شاخص‌ها) از آن‌ها استفاده کرد. این دستورات همواره با یک نقطه (.) آغاز می‌شوند.

فهرستی از دستورات ویژه موجود در هر زمان با اجرای دستور '.help' قابل مشاهده است. برای مثال:

sqlite> .help

.backup ?DB? FILE      پشتیبان‌گیری از DB (پیش‌فرض "main") در FILE
.bail on|off           توقف پس از برخورد به خطا. پیش‌فرض OFF
.clone NEWDB           کلون داده‌ها به NEWDB از پایگاه‌داده موجود
.databases             فهرست نام‌ها و فایل‌های پایگاه‌های داده پیوست‌شده
.dump ?TABLE? ...      تخلیه پایگاه‌داده در قالب متنی SQL
                         در صورت مشخص شدن TABLE، فقط جدول‌های منطبق
                         با الگوی LIKE تخلیه می‌شوند.
.echo on|off           روشن یا خاموش کردن پژواک دستورات
.eqp on|off            فعال یا غیرفعال کردن خودکار EXPLAIN QUERY PLAN
.exit                  خروج از این برنامه
.explain ?on|off?      روشن یا خاموش کردن حالت خروجی مناسب برای EXPLAIN.
                         بدون آرگومان، EXPLAIN را روشن می‌کند.
.fullschema            نمایش اسکیما و محتوای جدول‌های sqlite_stat
.headers on|off        روشن یا خاموش کردن نمایش سرآیندها
.help                  نمایش این پیام
.import FILE TABLE     وارد کردن داده از FILE به TABLE
.indices ?TABLE?       نمایش نام‌های همه شاخص‌ها
                         در صورت تعیین TABLE، فقط شاخص‌های جدول‌های
                         منطبق با الگوی LIKE نمایش داده می‌شوند.
.load FILE ?ENTRY?     بارگذاری یک کتابخانه افزونه
.log FILE|off          روشن یا خاموش کردن ثبت وقایع. FILE می‌تواند stderr/stdout باشد
.mode MODE ?TABLE?     تنظیم حالت خروجی که در آن MODE یکی از موارد زیر است:
                         csv      مقادیر جدا شده با کاما
                         column   ستون‌های چپ‌چین (به .width مراجعه کنید)
                         html     کد جدول HTML <table>
                         insert   دستورات درج SQL برای TABLE
                         line     یک مقدار در هر خط
                         list     مقادیر جدا شده با رشته .separator
                         tabs     مقادیر جدا شده با تب
                         tcl      عناصر فهرست TCL
.nullvalue STRING      استفاده از STRING به جای مقادیر NULL
.once FILENAME         ارسال خروجی فقط دستور SQL بعدی به FILENAME
.open ?FILENAME?       بستن پایگاه‌داده موجود و باز کردن مجدد FILENAME
.output ?FILENAME?     ارسال خروجی به FILENAME یا stdout
.print STRING...       چاپ مستقیم STRING
.prompt MAIN CONTINUE  جایگزینی اعلان‌های استاندارد ورودی
.quit                  خروج از این برنامه
.read FILENAME         اجرای SQL درون FILENAME
.restore ?DB? FILE     بازیابی محتوای DB (پیش‌فرض "main") از FILE
.save FILE             نوشتن پایگاه‌داده درون‌حافظه در FILE
.schema ?TABLE?        نمایش دستورات CREATE
                         در صورت تعیین TABLE، فقط جدول‌های منطبق
                         با الگوی LIKE نمایش داده می‌شوند.
.separator STRING ?NL? تغییر جداکننده مورد استفاده حالت خروجی و .import
                         شناسه NL نشانه پایان خط برای CSV است
.shell CMD ARGS...     اجرای CMD ARGS... در شل سیستم
.show                  نمایش مقادیر کنونی برای تنظیمات گوناگون
.stats on|off          روشن یا خاموش کردن آمار
.system CMD ARGS...    اجرای CMD ARGS... در شل سیستم
.tables ?TABLE?        فهرست کردن نام‌های جدول‌ها
                         در صورت تعیین TABLE، فقط جدول‌های منطبق
                         با الگوی LIKE فهرست می‌شوند.
.timeout MS            تلاش برای باز کردن جدول‌های قفل‌شده به مدت MS میلی‌ثانیه
.timer on|off          روشن یا خاموش کردن زمان‌سنج SQL
.trace FILE|off        نمایش هر دستور SQL هم‌زمان با اجرای آن
.vfsname ?AUX?         چاپ نام پشته VFS
.width NUM1 NUM2 ...   تنظیم عرض ستون‌ها برای حالت "column"
                         مقادیر منفی راست‌چین می‌کنند
sqlite>

sqlite3 دارای گزینه‌های زیر است:

توقف پس از برخورد با خطا.
اجبار به ورودی/خروجی دسته‌ای.
نتایج پرس‌وجو در قالبی شبیه به جدول نمایش داده می‌شوند و از نویسه‌های فاصله برای جداسازی ستون‌ها و تراز کردن خروجی استفاده می‌شود.
اجرای command پیش از خواندن ورودی استاندارد (stdin).
تنظیم حالت خروجی به CSV (مقادیر جدا شده با کاما).
چاپ دستورات پیش از اجرا.
خواندن و اجرای دستورات از file که می‌تواند شامل ترکیبی از دستورات SQL و متادستورها باشد.
-[no]header
روشن یا خاموش کردن سرآیندها.
نمایش راهنمای گزینه‌ها و خروج.
نتایج پرس‌وجو به صورت جدول‌های ساده HTML خروجی داده می‌شوند.
اجبار به ورودی/خروجی تعاملی.
نتایج پرس‌وجو با یک مقدار در هر خط نمایش می‌یابند و سطرها با یک خط خالی از هم جدا می‌شوند. طراحی‌شده برای تجزیه آسان توسط اسکریپت‌ها یا سایر برنامه‌ها.
نتایج پرس‌وجو با نویسه جداکننده (به طور پیش‌فرض |) میان هر مقدار فیلد نمایش داده می‌شوند. این حالت پیش‌فرض است.
تنظیم اندازه پیش‌فرض mmap به N.
تنظیم رشته مورد استفاده برای نمایش مقادیر NULL. پیش‌فرض '' (رشته خالی) است.
تنظیم جداکننده فیلدهای خروجی. پیش‌فرض '|' است.
چاپ آمار حافظه پیش از هر آزادسازی پایانی (finalize).
نمایش نگارش SQLite.
استفاده از name به عنوان سامانه فایل مجازی (VFS) پیش‌فرض.

sqlite3 یک فایل راه‌اندازی را برای اعمال پیکربندی محیط تعاملی می‌خواند. در طول مقداردهی اولیه، هر تنظیم قبلی می‌تواند بازنویسی شود. توالی مقداردهی اولیه به شرح زیر است:

o پیکربندی پیش‌فرض به صورت زیر برقرار می‌شود:

mode            = LIST
separator       = "|"
main prompt     = "sqlite> "
continue prompt = "   ...> "

o اگر فایل ~/.sqliterc در دایرکتوری خانگی کاربر موجود باشد، خوانده شده و پردازش می‌شود. این فایل معمولاً فقط باید حاوی متادستورها باشد.

o در صورت وجود گزینه -init، فایل مشخص‌شده پردازش می‌شود.

o تمام گزینه‌های دیگر خط فرمان پردازش می‌شوند.

http://www.sqlite.org/cli.html
بسته sqlite3-doc.

این صفحه راهنما در ابتدا توسط Andreas Rottmann <rotty@debian.org> برای سیستم گنو/لینوکس دبیان نوشته شد (اما ممکن است توسط دیگران نیز استفاده شود). متعاقباً توسط Bill Bumgarner <bbum@mac.com> بازبینی شد و بعداً توسط Laszlo Boszormenyi <gcs@debian.hu> به‌روزرسانی گردید.

مه ۲۰۲۵ sqlite