1>SQLite語句的關(guān)鍵字: select insert update delete from create where desc order by group table alter view index...
2>SQLite數(shù)據(jù)存儲(chǔ)的類型integer :整型值real :浮點(diǎn)值text :文本字符串blob :二進(jìn)制數(shù)據(jù) ( 比如文件 )
3>創(chuàng)表(CREAT)
直接創(chuàng)建 ?CREAT TABLE 表名?(字段名1 字段類型1,字段名2 字段類型2,...);
判斷表是否存在,不存在時(shí)再創(chuàng)建 CREAT TABLE IF NOT EXISTS 表名(字段1 字段類型1,字段名2 ?字段類型2...);
示例:CREAT TABLE t_stdent ( id integer,name text,age inetger,score real);
4>刪表(DROP)
直接刪除 DROP TABLE 表名;
判斷是否存在,存在直接刪除 DROP TABLE IF EXISTS 表名;
示例:DROP TABLE t_student;
5>插入數(shù)據(jù)(INSERT INTO)
INSERT INTO 表名(字段1,字段2,...)VALUES (字段1的值,字段2的值,...);
示例:INSERT INTO t_student(name,age)VALUES(‘ZY’,18);
注意:數(shù)據(jù)庫的字符用單引號(hào)’?‘;
6>更新數(shù)據(jù)(UPDATE)
UPDATE 表名 SET 字段1 = 字段1的值,字段2 = 字段2的值,...;
示例:UPDATE t_student SET name =‘jack’,age = 20;
注意:上行示例代碼執(zhí)行完畢之后,會(huì)將表中的name值UPDATE為 jack age 的值 20.
7>刪除數(shù)據(jù)(DELETE)
DELETE FROM 表名;
示例:DELETE FROM t_student;
注意:上行示例代碼會(huì)將t_student表中所以記錄都刪掉.
8>條件語句,用于只是要修改或刪除某些記錄的限制語句
常見格式:
WHERE 字段 = 某個(gè)值; //切記不是兩個(gè) =
WHERE 字段 IS 某個(gè)值; // IS 相當(dāng)于 =
WHERE 字段 != 某個(gè)值;
WHERE 字段 IS NOT 某個(gè)值; // IS NOT 相當(dāng)于 !=
WHERE 字段1 = 某個(gè)值;
WHERE 字段1 = 某個(gè)值 AND 字段2 > 某個(gè)值; // AND相當(dāng)于C語言中的&&
WHERE 字段1 ?= 某個(gè)值 OR 字段2 = 某個(gè)值; // OR相當(dāng)于C語言中的|
示例:
將t_student表中年齡大于10并且姓名不等于 jack 的記錄的年齡都改成 5
UPDATE t_student SET age = 5 WHERE age > 10 AND name != ‘jack’;
刪除t_student表中年齡小于等于10或者年齡大于30的記錄
DELETE FROM t_student WHERE age <= 10 OR age > 30;
將表中的某個(gè)字段的值就行修改(必須在特定的條件上)
UPDATE t_student SET score = age WHERE name = ‘jack'
將t_student表中名字等于jack的記錄的score字段在的值都改為age字段的值
9>DQL語句
格式:
SELECT 字段1,字段2,...FROM 表名;
SELECT * FROM 表名; // 查詢所以字段
示例:
SELECT name ,age FROM t_student;
SELECT *FROM t_student;
SELECT *FROM t_student WHERE age > 10;
10>起別名
格式:(字段和表都可以起別名)
SELECT 字段1 別名, 字段2 別名,...FROM 表名 別名;
SELECT 字段1 別名, 字段2 AS 別名,..FROM 表名 AS 別名;
SELECT 別名.字段1 ,別名.字段2,...FROM 表名 別名;
示例:
SELECT name myname, age myage FROM t_student;
給name起個(gè)叫做 myname 的別名,給age起個(gè)叫做myage 的別名;
SELECT s.name , s.age FROM t_student s;
給t_student表起個(gè)別名叫做s ,利用s來引用表中的字段
11>計(jì)算記錄的數(shù)量
格式:
SELECT count (字段) FROM 表名;
SELECT count ( * ) FROM 表名;
示例:
SELECT count (age) FROM t_student;
SELECT count ( * ) FROM t_student WHERE score >= 60;
12>排序
查詢出來的結(jié)果可以使用OEDER BY 進(jìn)行排序
SELECT * FROM t_student ORDER BY 字段;
SELECT * FROM t_student ORDER BY age;
默認(rèn)是按照升序排序 (由小到大) ,也可以變?yōu)榻敌?(由大到小)
SELECT * FROM t_student ORDER BY age DESC; // 降序
SELECT * FROM t_student ORDER BY age ASC; //升序 (默認(rèn))
也可以用多個(gè)字段進(jìn)行排序
SELECT * FROM t_student ORDER BY age, height DESC;
13>LIMIT
使用LIMIT可以精確的控制查詢結(jié)果的數(shù)量,比如每次只查詢10條數(shù)據(jù)
格式:SELECT * FROM 表名 LIMIT 數(shù)值1,數(shù)值2;
示例:SELECT * FROM t_student LIMIT 4,8;
上行代碼執(zhí)行完查詢的結(jié)果是:跳過最前面的4條記錄,然后取8條記錄
注意:LIMIT后面的數(shù)值1不寫的話,默認(rèn)是第一個(gè)記錄
LIMIT 常做為分頁查詢,比如每頁固定顯示5條數(shù)據(jù),那么應(yīng)該這樣取數(shù)據(jù)
第一頁:LIMIT 0 , 5;
第二頁:LIMIT 5 , 5;
第三頁:LIMIT 10 , 5;
第 n 頁:LIMIT: 5* (n - 1) , 5;
SELECT *FROM t_student LIMIT 7; ?相當(dāng)于 SE;ECT * FROM t_student LIMIT 0 , 7;
表示取最前面的7條記錄
14>簡單的約束
建表時(shí)可以指定特定的約束條件,常見的約束:
NOT NULL :規(guī)定字段的值不能為NULL
UNIQUE : 指定字段的值必須唯一
DEFAULT : 指定字段的默認(rèn)值
注意:盡量給字段設(shè)定嚴(yán)格的約束,以保證數(shù)據(jù)的規(guī)范性
示例:
CREATE TABLE t_student ( id integer , name text NOT NULL UNUQUE ,age integer NOT NULL DEFAULT 1); ?name 字段不能為NULL ,并且唯一 ?age 字段不能為NULL ,并且默認(rèn)為1
15>主鍵
主鍵: Primary Key 簡稱PK 用來唯一地標(biāo)示某一條記錄
例如t_student可以增加一個(gè)id 字段作為主鍵,相當(dāng)于人的身份證
主鍵可以是一個(gè)字段或多個(gè)字段
主鍵的設(shè)計(jì)原則:
1.主鍵應(yīng)是對(duì)用戶沒有意義的 2.永遠(yuǎn)不要更新主鍵 3.主鍵不應(yīng)包含動(dòng)態(tài)變化的數(shù)據(jù) 4.主鍵應(yīng)由計(jì)算機(jī)自動(dòng)生成
在創(chuàng)表的時(shí)候用PRIMARY KEY 聲明一個(gè)主鍵
CREAT TABLE IF NOT EXISTS t_student ( id integer PRIMARY KEY , name text NOT NULL ,age integer NOT NULL DEFAULT 1.0 ); integer 類型作為t_student表的主鍵
主鍵字段
只要聲明為PRIMARY KEY ,就說明是一個(gè)主鍵字段
主鍵字段默認(rèn)就包含了NOT NULL 和 UNIQUE這兩個(gè)約束
如果想要讓主鍵自動(dòng)增長 ( 必須是 integer 類型 ) ,增加AUTOINCREMENT 約束
示例: CREATE TABLE IF NOT EXISTS t_student ( id integer PRIMARY KEY AUTOINCREMENT , name text NOT NULL ,age integer NOT NULL DEFAULT 1.0);
16>外鍵約束
利用外鍵約束可以用來建立與表之間的聯(lián)系
外鍵的一般情況是:一張表的某個(gè)字段,引用著另一張表的主鍵字段
新建一個(gè)外鍵
CREATE TABLE IF NOT EXISTS t_student ( id integer PRIMARY KEY AUTOINCREMENT , name text ,age integer ,class_id integer ,CONSTRAINT fk_student_class FOREIGN KEY ( class_id ) REFERENCES t_class ( id ) );
t_student 表中有一個(gè)叫做fk_t_student_class_id_t_class_id的外鍵
這個(gè)外鍵的作用是用 t_student 表中的 class_id 字段引用t_class表的 id 字段
17>表連接查詢
什么是表連接查詢
需要聯(lián)合多張表才能查到想要的數(shù)據(jù)
表連接的類型
內(nèi)連接 : INNER JOIN 或者JOIN 顯示的是左右表都有完整字段的記錄
左外連接: LEFT OUTER JOIN 保證左表數(shù)據(jù)的完整性
示例:查詢20130901班的所有學(xué)生
SELECT s.name , s.age FROM t_student s ,t_class c WHERE s.class_id = c.id AND c.name = ‘10230901’;