×

Syntax های SQLite

فصل چهارم :

Syntax های SQLite

SQLite از یکسری قوانین و دستور العمل ها پیروی میکند که یه آنها Syntax (سینتکس) میگوییم.
در این فصل به پاره ایی از این سینتکس ها می پردازیم

• Case Sensitivity (حساسیت به حروف بزرگ و کوچک)

نکته مهمی که درابتدا باید به آن توجه کنیم این است که اساسا SQLite به حروف بزرگ و کوچک حساس نیست (Case Insensitive است) . اما برخی از دستورات هستند که از این قاعده پیروی نمی کنند همانند GLOB و glob که معانی مختلفی برای SQLite دارند .

• Comments

کامنت ها در واقع توضیحات اضافی هستند که می توانید به یک کد SQLite اضافه کنید تا خوانایی دستورات را بالا ببرید و هنگامی که در آینده به کدتان مراجعه کردید به خاطر بیاورید که این کد چه کاری انجام میدهد . کامنت ها هر جایی می توانند بیایند و داخل آنها هر چه می خواهید می توانید بنویسید SQLite برای اجرای دستورات به آنها توجهی نمیکند.
کامنت ها با دو کاراکتر "-" (دو تا منها) شروع میشوند (ASCII 0x2d) . بنابراین هنگامی که SQLite جایی این دو کاراکتر را ببیند دیگر به محتویات پس از آن توجهی نمیکیند تا انتهای خط .
همچنین جهت کامنت کردن یک بلاک از کد میتوان همانند زبانهای مبتنی بر c از "/*" برای شروع یک بلاک کامنت و از "*/" برای مشخص کردن انتهای یک بلاک کامنت استفاده کرد. یکی از کاربرد های کامنت ها که شاید در کار خیلی برایتان مفید باشد این است که مثلا شما تعدادی دستور دارید و می خواهید ببینید با حذف یک خط و یا یک بلاک چه تاثیری در خروجی اعمال می شود . بجای اینکه ان قسمت کد را پاک کنید می توانید خیلی راحت آنرا کامنت کنید تا SQLite به محتویات آن کاری نداشته باشد .

sqlite>.help -- salam in khat comment shodeh ast

در کد بالا SQLite به آنچه بعد از دو کاراکتر "-" وجود دارد توجهی نمی کند

• SQLite Statements

تمامی دستورات SQLite با یکی از کلماتی نظیر SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, و غیره شروع شده و تمامی دستورات با سمی کالن ";" پایان می یابند .

پاره ایی از Statement های SQLite بشرح ذیل می باشند. حد اقل یکبار انها را بخوانید و نگران نباشید. کم کم با عملکرد ها و نحوه استفاده از انها آشنا خواهید شد.

SQLite ANALYZE Statement: ANALYZE;
or
ANALYZE database_name;
or
ANALYZE database_name.table_name;

SQLite AND/OR Clause: SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION-1 {AND|OR} CONDITION-2;

SQLite ALTER TABLE Statement: ALTER TABLE table_name ADD COLUMN column_def...;

SQLite ALTER TABLE Statement (Rename): ALTER TABLE table_name RENAME TO new_table_name;

SQLite ATTACH DATABASE Statement: ATTACH DATABASE 'DatabaseName' As 'Alias-Name';

SQLite BEGIN TRANSACTION Statement: BEGIN;
or
BEGIN EXCLUSIVE TRANSACTION;

SQLite BETWEEN Clause: SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;

SQLite COMMIT Statement: COMMIT;

SQLite CREATE INDEX Statement : CREATE INDEX index_name
ON table_name ( column_name COLLATE NOCASE );

SQLite CREATE UNIQUE INDEX Statement : CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);

SQLite CREATE TABLE Statement: CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);

SQLite CREATE TRIGGER Statement : CREATE TRIGGER database_name.trigger_name
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN
stmt1;
stmt2;
....
END;

SQLite CREATE VIEW Statement : CREATE VIEW database_name.view_name AS
SELECT statement....;

SQLite CREATE VIRTUAL TABLE Statement: CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log );
or
CREATE VIRTUAL TABLE database_name.table_name USING fts3( );

SQLite COMMIT TRANSACTION Statement: COMMIT;

SQLite COUNT Clause: SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;

SQLite DELETE Statement: DELETE FROM table_name WHERE {CONDITION};

SQLite DETACH DATABASE Statement: DETACH DATABASE 'Alias-Name';

SQLite DISTINCT Clause: SELECT DISTINCT column1, column2....columnN FROM table_name;

SQLite DROP INDEX Statement : DROP INDEX database_name.index_name;

SQLite DROP TABLE Statement: DROP TABLE database_name.table_name;

SQLite DROP VIEW Statement : DROP VIEW database_name.view_name;

SQLite DROP TRIGGER Statement : DROP INDEX database_name.trigger_name;

SQLite EXISTS Clause: SELECT column1, column2....columnN
FROM table_name
WHERE column_name EXISTS (SELECT * FROM table_name );

SQLite EXPLAIN Statement : EXPLAIN INSERT statement...;
or
EXPLAIN QUERY PLAN SELECT statement...;

SQLite GLOB Clause: SELECT column1, column2....columnN
FROM table_name
WHERE column_name GLOB { PATTERN };

SQLite GROUP BY Clause: SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;

SQLite HAVING Clause: SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);

SQLite INSERT INTO Statement: INSERT INTO table_name( column1, column2....columnN) VALUES ( value1, value2....valueN);

SQLite IN Clause: SELECT column1, column2....columnN
FROM table_name
WHERE column_name IN (val-1, val-2,...val-N);

SQLite Like Clause: SELECT column1, column2....columnN
FROM table_name
WHERE column_name LIKE { PATTERN };

SQLite NOT IN Clause: SELECT column1, column2....columnN
FROM table_name
WHERE column_name NOT IN (val-1, val-2,...val-N);

SQLite ORDER BY Clause: SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION
ORDER BY column_name {ASC|DESC};

SQLite PRAGMA Statement: For example:
PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);

SQLite RELEASE SAVEPOINT Statement: RELEASE savepoint_name;

SQLite REINDEX Statement: REINDEX collation_name;
REINDEX database_name.index_name;
REINDEX database_name.table_name;

SQLite ROLLBACK Statement: ROLLBACK;
or
ROLLBACK TO SAVEPOINT savepoint_name;

SQLite SAVEPOINT Statement: SAVEPOINT savepoint_name;

SQLite SELECT Statement: SELECT column1, column2....columnN
FROM table_name;

SQLite UPDATE Statement: UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE CONDITION ];

SQLite VACUUM Statement: VACUUM;

SQLite WHERE Clause: SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION;


مفاهیم و موضوعات این فصل عبارتند از :

  • Syntax های SQLite

vatantop
نظرات و سوالات درج سوال/ نظر