با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. تاکنون با چگونگی نصب و دستورات سیستم مدیریت پایگاه داده ی SQLite آشنا شدیم، حالا زمان آن است تا با چگونگی درخواست query و اجرای کدهای SQL در SQLite نیز آشنا شویم. همانطور که اشاره کردیم SQLite در واقع یک سیستم مدیریت دیتابیس بر پایه ی زبان SQL می باشد، اما هر سیستم پایگاه داده ای ساختار کدنویسی و سینتکس خاص خود را نیز دارد که باید برای ذخیر، بازیابی و ویرایش داده ها در دیتابیس با آن آشنا شوید، در ادامه ی این مبحث برای آشنایی با سینتکس در SQLite با ما همراه باشید.
در این آموزش نمونه کدهایی از دستورات SQL در SQLite را برای آشنایی با سینتکس در SQLite ارائه کرده ایم.
سینتکس در SQLite در واقع مجموعه ای از قوانین و دستورات است که باید در قالب آن دیتابیس و اجزای آن را مدیریت کرد.
نکته مهم این است که SQLite حساس به حروف نیست، اما در برخی دستورات بلعکس می باشد.
به عنوان مثال دو عبارت GLOB و glob معنای متفاوتی در SQLite دارند.
توضیحات در SQLite نوشته های اضافی هستند که از آن ها برای افزایش خوانایی و رفع ابهام دستورات در SQLite استفاده می شود.
توضیحات را می توان در هر بخش از سینتکس و دستورات SQLite قرار داد.
توضیحات SQL با دو کاراکتر “-” متوالی (ASCII 0x2d) شروع می شوند.
شما همچنین می توانید از دستورات C-style استفاده کنید، که با کاراکتر “*/” شروع و با “/*” پایان می یابد.
در حالت C-style توضیحات بین دو کاراکتری که در خط بالا اشاره شد قرار می گیرند.
توضیحات C-style می تواند شامل خطوط چند گانه باشد.
1 | sqlite> .help -- This is a single line comment |
تمام دستورات SQLite با یکی از کلمات کلیدی SELECT, INSERT, UPDATE, DELETE, ALTER, DROP و… شروع می شوند.
همچنین تمام دستورات فوق با سمی کولون (;) پایان می یابند.
1 2 3 4 5 | ANALYZE; or ANALYZE database_name; or ANALYZE database_name.table_name; |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE CONDITION-1 {AND|OR} CONDITION-2; |
1 | ALTER TABLE table_name ADD COLUMN column_def...; |
1 | ALTER TABLE table_name RENAME TO new_table_name; |
1 | ATTACH DATABASE 'DatabaseName' As 'Alias-Name'; |
1 2 3 | BEGIN; or BEGIN EXCLUSIVE TRANSACTION; |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE column_name BETWEEN val-1 AND val-2; |
1 | COMMIT; |
1 2 | CREATE INDEX index_name ON table_name ( column_name COLLATE NOCASE ); |
1 2 | CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...columnN); |
1 2 3 4 5 6 7 8 | CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) ); |
1 2 3 4 5 6 7 | CREATE TRIGGER database_name.trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN stmt1; stmt2; .... END; |
1 2 | CREATE VIEW database_name.view_name AS SELECT statement....; |
1 2 3 | CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log ); or CREATE VIRTUAL TABLE database_name.table_name USING fts3( ); |
1 | COMMIT; |
1 2 3 | SELECT COUNT(column_name) FROM table_name WHERE CONDITION; |
1 2 | DELETE FROM table_name WHERE {CONDITION}; |
1 | DETACH DATABASE 'Alias-Name'; |
1 2 | SELECT DISTINCT column1, column2....columnN FROM table_name; |
1 | DROP INDEX database_name.index_name; |
1 | DROP TABLE |
1 | DROP INDEX database_name.view_name; |
1 | DROP INDEX database_name.trigger_name; |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE column_name EXISTS (SELECT * FROM table_name ); |
1 2 3 | EXPLAIN INSERT statement...; or EXPLAIN QUERY PLAN SELECT statement...; |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE column_name GLOB { PATTERN }; |
1 2 3 4 | SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name; |
1 2 3 4 5 | SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name HAVING (arithematic function condition); |
1 2 | INSERT INTO table_name( column1, column2....columnN) VALUES ( value1, value2....valueN); |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE column_name IN (val-1, val-2,...val-N); |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE column_name LIKE { PATTERN }; |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE column_name NOT IN (val-1, val-2,...val-N); |
1 2 3 4 | SELECT column1, column2....columnN FROM table_name WHERE CONDITION ORDER BY column_name {ASC|DESC}; |
1 2 3 4 5 6 7 | PRAGMA pragma_name; For example: PRAGMA page_size; PRAGMA cache_size = 1024; PRAGMA table_info(table_name); |
1 | RELEASE savepoint_name; |
1 2 3 | REINDEX collation_name; REINDEX database_name.index_name; REINDEX database_name.table_name; |
1 2 3 | ROLLBACK; or ROLLBACK TO SAVEPOINT savepoint_name; |
1 | SAVEPOINT savepoint_name; |
1 2 | SELECT column1, column2....columnN FROM table_name; |
1 2 3 | UPDATE table_name SET column1 = value1, column2 = value2....columnN=valueN [ WHERE CONDITION ]; |
1 | VACUUM; |
1 2 3 | SELECT column1, column2....columnN FROM table_name WHERE CONDITION; |
برای شروع کار با دیتابیس SQLite و ذخیره و مدیریت داده ها در آن، باید با چگونگی استفاده از پرس و جوهای SQL در SQLite و به عبارتی دیگر با سینتکس در SQLite در حد نیاز آشنایی داشته باشید، که در این خصوص مباحث فوق را برای آشنایی با سینتکس در SQLite و دستورات مهم SQL ارائه دادیم.