1.SQL語句的特點: 1.1 不區分大小寫 1.2 每條語句以;結尾 2.SQL語句中常用關鍵字: select,insert,update,from,create,where,desc,order,by,group,table,alter,view,index等。 資料庫中不能出現與上述關鍵字重
1.SQL語句的特點:
1.1 不區分大小寫
1.2 每條語句以;結尾
2.SQL語句中常用關鍵字:
select,insert,update,from,create,where,desc,order,by,group,table,alter,view,index等。
資料庫中不能出現與上述關鍵字重名的表名和欄位。
3.SQL語言種類:
3.1
數據定義語句: Data Defination Language; (DDL)
包括create和drop等操作
包括創建表或者刪除表(create table 和 drop table)
3.2
數據操作語言: Data Manipulation Language (DML)
包括insert,update,delete等操作
上述三種操作分別作用於添加,修改,刪除表中數據
3.3
數據查詢語言:Data Query Language (DQL)
關鍵字select是DQL中用的最多的操作
其他常用的DQL中的關鍵字如 where,order by, group by 和 having.
4.SQL語句使用舉例
4.1 DDL (數據定義語言)
4.1.1 創建表格
creat table 表名(欄位名1 欄位類型1,欄位名2 欄位類型2)
例如 : CREATE table t_student(id integer PRIMARY key, name text);
實際上SQLite是無類型的,就是是申明為integer類型,一樣可以存儲字元串數據(主鍵除外)
4.1.2 刪除表格
drop table 表名
例如:DROP TABLE t_student;
4.2DML(數據操作語言)
4.2.1 插入數據
insert to 表名 (欄位1,欄位2)values(欄位1的值,欄位2的值)
例如:INSERT into t_student(id,name)VALUES(1,'zhengli');
4.2.2 修改數據
update 表名 set 欄位1 = 欄位1 新值
例如: update t_student set name = 'zhengli';(註意這樣寫會將表中的所有name的值更改)
4.2.3 刪除數據
delete from 表名
例如: delete from t_student ; (與上面的語句一樣,會刪除表中所有數據!但不會刪除表);
在上面的所有語句中,都可以加上條件語句,例如: update t_student set name = 'tangyi'where id = 1;
這樣就只會修改 id =1 的數據。同時可以用and表示C語言中的&& or表示||。
4.3 DQL語句 (數據查詢語句)
4.3.1 按照條件查詢
select 欄位1,欄位2,... from 表名
select *from 表名 (查詢表中所有欄位)
4.3.2 排序查詢
select * from 表名 oder by 欄位名(預設升序)
select * from 表名 order by 欄位名 desc (降序)
4.3.3 limit
select *from 表名 order by 欄位名 (升序) limit 數值1,數值2
表示從表中取數據並按升序排列,跳過前數值1個數據,取數值2個數據
如: select * from t_student order by id limit 0,5;
升序排序取出前五條數據。
select *from t_student order by age desc limit 2,3;
降序排序 跳過前2條數據 取之後的3條數據
4.3.4 約束
內鍵約束
建表時可以給特定的欄位設置一些約束條件,常見的約束有
1.not null 該欄位不能為空
2.unique 該欄位的值唯一,不能重覆
3. default 制定該欄位的預設值
例如: create table t_student (id integer primary key , name text not null unique,age integer not null default 1)
表名該表中的 name欄位不能為空且不能重覆,age不能為空且預設為1;
外鍵約束
利用外鍵約束,可以建立表與表之間的聯繫
外鍵約束的一般情況是,一張表的某個欄位,引用著另一張表的主鍵欄位
例如:
create table t_student(id integer primary key ,name text,class_id integer constraint fk_t_student_class_id_t_class_id foreign key (class_id) references t_class(id));