SQLite 入门教程(四)增删改查,有讲究
增删改查操作,其中增删改操作被称为数据操作语言 DML,相对来说简单一点。查操作相对来说复杂一点,涉及到很多子句,所以这篇先讲增删改操作,以例子为主,后面再讲查操作。 一、插入数据 INSERT INTO 表(列...) VALUES(值...)根据前面几篇的内容,我们可以很轻送的创建一个数据表,并向其中插入一些数据,不多说,看例子: myqiao@ubuntu:~/My Documents/db$ sqlite3test.db -- Loading resources from/home/myqiao/.sqliterc SQLite version 3.7.4 sqlite>.tables sqlite> sqlite> CREATE TABLETeachers( ...> Id integer PRIMARYKEY, ...> Name text NOTNULL, ...> Age integerCHECK(Age>22), ...> Country text DEFAULT'USA'); sqlite> .tables Teachers sqlite> sqlite> INSERT INTOTeachersVALUES(1,'Alice',25,'CHN'); sqlite> INSERT INTOTeachersVALUES(2,'Bob','BRA'); sqlite> INSERT INTOTeachers(Id,Name,Age,Country)VALUES(3,'Charls',33,'USA'); sqlite> INSERT INTOTeachers(Name,Age)VALUES('Jhon',43); sqlite> SELECT * FROMTeachers; Id Name AgeCountry sqlite> 很简单,创建了一个 Teachers表并向其中添加了四条数据,设定了一些约束,其中有自动增加的主键、默认值等等。 二、修改数据 UPDATE 表 SET 列 = '新值' 【WHERE 条件语句】UPDATE 语句用来更新表中的某个列,如果不设定条件,则所有记录的这一列都被更新;如果设定了条件,则符合条件的记录的这一列被更新, WHERE子句被用来设定条件,如下例: sqlite> sqlite>SELECT * FROMTeachers; Id Name Age Country 1 Alice 25 CHN sqlite> sqlite> sqlite>UPDATE Teachers SETCountry='China'; sqlite>SELECT * FROMTeachers; Id Name AgeCountry sqlite> sqlite> sqlite>UPDATE Teachers SET Country='America' WHEREId=3; sqlite>SELECT * FROM Teachers; Id Name AgeCountry 1 Alice 25 China sqlite> sqlite> sqlite>UPDATE Teachers SET Country='India' WHEREAge<30; sqlite>SELECT * FROMTeachers; Id Name AgeCountry 1 Alice 25India sqlite> 三、删除数据 DELETE FROM 表 【WHERE 条件语句】如果设定 WHERE 条件子句,则删除符合条件的数据记录;如果没有设定条件语句,则删除所有记录 sqlite> sqlite> SELECT * FROMTeachers; Id Name Age Country sqlite> sqlite> sqlite> DELETE FROM TeachersWHERE Age>30; sqlite> SELECT * FROMTeachers; Id Name Age Country 1 Alice 25 India 2 Bob 25 India sqlite> sqlite> sqlite> DELETE FROMTeachers; sqlite> SELECT * FROMTeachers; sqlite> 四、查找数据 SELECT 列... FROM 表为了后面的练习,需要一些样本数据。 首先将下面的 SQL 语句保存到 data.sql 文件中 BEGIN TRANSACTION; CREATE TABLE Cars(Id integer PRIMARY KEY,Name text,Costinteger); INSERT INTO Cars VALUES(1,'Audi',52642); INSERT INTO Cars VALUES(2,'Mercedes',57127); INSERT INTO Cars VALUES(3,'Skoda',9000); INSERT INTO Cars VALUES(4,'Volvo',29000); INSERT INTO Cars VALUES(5,'Bentley',350000); INSERT INTO Cars VALUES(6,'Citroen',21000); INSERT INTO Cars VALUES(7,'Hummer',41400); INSERT INTO Cars VALUES(8,'Volkswagen',21600); COMMIT;
BEGIN TRANSACTION; CREATE TABLE Orders(Id integer PRIMARY KEY,OrderPrice integerCHECK(OrderPrice>0), INSERT INTO Orders(OrderPrice,Customer) VALUES(1200,"Williamson"); INSERT INTO Orders(OrderPrice,Customer) VALUES(200,"Robertson"); INSERT INTO Orders(OrderPrice,Customer) VALUES(40,Customer) VALUES(1640,"Smith"); INSERT INTO Orders(OrderPrice,Customer) VALUES(100,Customer) VALUES(50,Customer) VALUES(150,Customer) VALUES(250,Customer) VALUES(840,"Brown"); INSERT INTO Orders(OrderPrice,Customer) VALUES(440,"Black"); INSERT INTO Orders(OrderPrice,Customer) VALUES(20,"Brown"); COMMIT; 然后在在终端执行命令 .read data.sql,将数据导入到数据库中 sqlite> sqlite> .tables Friends sqlite> .read data.sql sqlite> .tables CarsOrders sqlite> 可以看到,Cars 表和 Orders表已经导入到数据库中,现在可以查询了 sqlite>
sqlite> SELECT * FROM Cars; Id Name Cost
Id OrderPrice Customer
五、 限制返回数量 SELECT 列... FROM 表 LIMIT 数量 OFFSET 位置有时候数据库中的数据太多,全部返回可不行,可以限制返回的数量,还可以设定返回的起始位置,如下: sqlite>
sqlite> SELECT * FROM Cars LIMIT 4; Id Name Cost
sqlite>SELECT * FROM Cars LIMIT 4 OFFSET 2; Id Name Cost
六、 别名 SELECT 列 AS 别名,列 AS 别名FROM我们可以给返回数据集中的某些列起一个比较直观的名字,比如把 Cost 改为"Price Of Car" sqlite>
sqlite> SELECT Name,Cost AS 'Price Of Car' FROM Cars; Name Price Of Car
Audi 52642
七、 条件查询 SELECT 列 FROM 表 【WHERE条件语句】一般的条件语句都是大于、小于、等于之类的,这里有几个特别的条件语句 LIKE
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |