聲明:以下命令我沒有全部使用過, 僅用於收藏, 歡迎大家指出其中的錯誤
'SELECT count(*) FROM sqlite_master WHERE type="table" AND name = "table_name"
//從sqlite_master這個系統表中查找名字為"table_name"的表的數量,沒錯,
是數量,所以,如果結果大於0,說明這個表存'SELECT
name, sql FROM sqlite_master WHERE type="table" AND name = "table_name" //這個語句據說可以返回創建"table_name"的語句,沒錯,是語句,當然包含了"table_name"的每個字段名
select
* from "table_name", [rs columnNameForIndex:i] //rs是返回的結果集,
該語句返回index == i的字段名, 沒錯, 是字段名CREATE
TABLE "table_name" (first_col integer) //創建數據表;
CREATE TABLE "table_name"
(first_col integer DEFAULT 0,
second_col varchar DEFAULT 'hello')//創建數據表,
first_col字段有缺省值;1)ATTACH
DATABASE 'd:/mydb.db' AS mydb
//當前鏈接為"d:/mydb.db"數據庫,之後的操作都會在該數據庫下是生效 2).exit //退出當前數據庫;
CREATE
TABLE IF NOT EXISTS "table_name" (first_col integer) //如果創建的"table_name"已經存在, 會產生沖突, 導致語句執行失敗,IF
NOT EXISTS可以避免這種錯誤;
CREATE TABLE "table_name2" AS
SELECT * FROM "table_name1";
//該語句將按照table_name1的模式創建table_name2, 不包含主鍵約束和缺省值; 使用 .schema "table_name2"可以返回創建數據表的語句;
CREATE
TABLE "table_name" (first_col integer PRIMARY
KEY ASC); //創建數據表, 包含逐漸約束;
CREATE
TABLE "table_name"
(first_col integer UNIQUE);
//創建表, 包含字段值唯一性約束;
CREATE
TABLE "table_name" (first_col
integer NOT NULL);
//創建表, 包含字段值禁止為NULL的約束;
CREATE
TABLE "table_name"
(first_col integer CHECK (first_col
< 5)); //創建表, 包含字段值范圍約束;
ALTER
TABLE "table_name1" RENAME
TO "table_name2"; //修改表"table_name1"的名字為"table_name2"
ALTER
TABLE "table_name" ADD
COLUMN second_col integer; //為數據表"table_name"增加字段second_col
DROP
TABLE "table_name"; //刪除數據表"table_name"
DROP
TABLE IF EXISTS "table_name"; //刪除不存在的數據表會產生錯誤, 所以用IF EXISTS來避免錯誤;
CREATE
VIEW "table_name" AS SELECT
* FROM "table_name" WHERE first_col > 100; //創建視圖
DROP
VIEW IF EXISTS "view_name"; //刪除視圖