📜  SQLite插入查询(1)

📅  最后修改于: 2023-12-03 15:05:20.285000             🧑  作者: Mango

SQLite插入查询

SQLite是一种轻量级的关系型数据库,它可以嵌入到应用程序中使用,而不需要任何独立的数据库服务器。SQLite使用SQL语言进行数据操作,支持多种数据类型和查询语句。本文将介绍SQLite中的插入和查询操作。

插入操作

SQLite中插入操作使用INSERT INTO语句,例子如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

其中table_name为表名,column1column2等为所插入的列名(可以省略),value1value2等为所插入的值(与所插入的列一一对应)。

例如,插入一条记录到users表中,包含id、name、age三个字段,如下:

INSERT INTO users (id, name, age)
VALUES (1, 'John', 22);

执行成功后,将在users表中插入一条记录,id为1,name为John,age为22。

批量插入

在需要多条记录时,可以使用INSERT INTO语句的扩展语法,如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...),
       (value1, value2, value3, ...),
       (value1, value2, value3, ...),
       ...

每一行由逗号隔开,每一条记录之间使用逗号进行分隔。

例如,插入三条记录到users表中,如下:

INSERT INTO users (id, name, age)
VALUES (1, 'John', 22),
       (2, 'Tom', 25),
       (3, 'Lucy', 18);
插入默认值

如果某一列设置为默认值,则可以不指定该列的值,例如:

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER DEFAULT 18
);

INSERT INTO users (name) VALUES ('Jim');

执行成功后,将在users表中插入一条记录,id自动增长,name为Jim,age为默认值18。

查询操作

SQLite中查询操作使用SELECT语句,例子如下:

SELECT column1, column2, ...
FROM table_name;

其中column1column2等为所查询的列名(可以使用*代替查询所有列),table_name为表名。SELECT语句支持多种查询语句,如WHEREORDER BY等。

例如,查询users表中所有记录,如下:

SELECT * FROM users;
条件查询

可以使用WHERE子句指定查询条件,如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中condition为查询的条件(可以使用多个条件,如ANDOR等),例如:

SELECT * FROM users WHERE age > 20 AND name LIKE 'J%';

将查询users表中年龄大于20岁且名字以J开头的记录。

排序查询

可以使用ORDER BY子句指定查询结果排序方式,如下:

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name DESC;

其中column_name为要排序的列名,可以省略DESC,表示升序排列(默认为升序排列)。

例如,查询users表中所有记录,并按照年龄降序排列,如下:

SELECT * FROM users ORDER BY age DESC;
分组查询

可以使用GROUP BY子句对查询结果分组,如下:

SELECT column_name1, column_name2, ..., aggregate_function(column_name)
FROM table_name
GROUP BY column_name1, column_name2, ...;

其中aggregate_function为聚合函数,如COUNTSUMAVG等。

例如,查询users表中不同年龄有多少人,并按照年龄升序排列,如下:

SELECT age, COUNT(*) FROM users GROUP BY age ORDER BY age ASC;
连接查询

可以使用JOIN子句进行多表查询,如下:

SELECT column_name1, column_name2, ...
FROM table1
JOIN table2 ON condition;

其中table1table2为要查询的表名,condition为连接条件。JOIN子句还支持LEFT JOINRIGHT JOIN等。

例如,查询usersorders表中所有记录,按照用户id升序排列,如下:

SELECT * FROM users
JOIN orders ON users.id = orders.user_id
ORDER BY users.id ASC;
结论

本文介绍了SQLite中的插入和查询操作,包括插入单条记录、批量插入、插入默认值、条件查询、排序查询、分组查询和连接查询等。SQLite是一种轻量级的关系型数据库,可以满足开发者的需要。