id字段自增
sql="CREATETABLEIFNOTEXISTS MusicList (id integerprimarykey AutoIncrement,name varchar(20),path varchar(20))";
<br>常用
Select
语句
desc <table>
select * from <table>
select , from table ;
select distinct , from table ;
insert into users(_id,username,password) select * from users;
select username from users where username like
'S%' ;
select username from users where username like
'__S%' ;
select * from users where _id
in (001,220,230);select * from user order by _id;
select * from user order by _id desc;
|
分页
当数据库数据量很大时,分页显示是个很简单且符合人们习惯的一种处理方法。
获取数据行总数:
最简单的方法是:SELECT所有的行,再调用curosr.getCount() ;取得行数,但这样效率会很低。 SQLite为我们提供了一个函数很容易查出总共有多少行。有个名为cet6_table的表格,我们想知道总共有多少行的word;可以使用如下 语句来完成:
SELECTcount(word) ASnumberFROM cet6_table;
count()函数为我们返回一个Int整形,代表有多少行数据。返回的列的名字叫count(word),为了方便阅读和处理用as number给这个列取个 别名number;
SELECT[word],[explanation]FROM cet6_table ORDERBY word LIMIT 100 OFFSET 200"
上语句,返回自第200行的最多100条数据。分页时我们只要修改offset 后面的数据即可取得对应页面的数据。
SQLite内建语法表
结构定义 |
CREATE TABLE |
创建新表。
语法:
sql-command ::= |
CREATE [TEMP
| TEMPORARY] TABLE
table-name
( column-def[,
column-def]*
[,
constraint]*
)
|
sql-command ::= |
CREATE [TEMP
| TEMPORARY] TABLE
[database-name.]table-name
AS select-statement
|
column-def ::= |
name[type][[CONSTRAINT
name]column-constraint]*
|
type ::= |
typename|typename
( number
) |typename
( number
, number
)
|
column-constraint ::= |
NOT NULL [conflict-clause]| PRIMARY KEY
[sort-order][conflict-clause]| UNIQUE
[conflict-clause]| CHECK
( expr
) [conflict-clause]| DEFAULT
value| COLLATE
collation-name
|
constraint ::= |
PRIMARY KEY
( column-list
) [conflict-clause]| UNIQUE
( column-list
) [conflict-clause]| CHECK
( expr
) [conflict-clause] |
conflict-clause ::= |
ON CONFLICT conflict-algorithm
|
|
CREATE VIEW |
创建一个视图(虚拟表),该表以另一种方式表示一个或多个表中的数据。
语法:
sql-command ::= |
CREATE [TEMP
| TEMPORARY] VIEW
[database-name.]view-name
AS select-statement
|
例子: CREATE VIEW master_view
AS SELECT * FROM sqlite_master
WHERE type='view'; 说明: 创建一个名为master_view的视图,其中包括sqlite_master这个表中的所有视图表。 |
CREATE TRIGGER |
创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。
语法:
sql-statement ::= |
CREATE [TEMP
| TEMPORARY] TRIGGER
trigger-name[ BEFORE
| AFTER
]database-event ON
[database-name
.]table-nametrigger-action
|
sql-statement ::= |
CREATE [TEMP
| TEMPORARY] TRIGGER
trigger-name INSTEAD OF
database-event ON
[database-name
.]view-nametrigger-action
|
database-event ::= |
DELETE | INSERT
| UPDATE
| UPDATE OF
column-list
|
trigger-action ::= |
[ FOR EACH ROW | FOR EACH STATEMENT
][ WHEN expression] BEGIN
trigger-step ;
[trigger-step ;
]* END
|
trigger-step ::= |
update-statement|insert-statement|delete-statement|select-statement
|
例子: CREATE TRIGGER update_customer_address UPDATE OF address ON customers BEGIN UPDATE orders SET address = new.address WHERE customer_name = old.name; END;
说明: 创建了一个名为update_customer_address的触发器,当用户更新customers表中的address字段时,将触发并更新orders表中的address字段为新的值。 比如执行如下一条语句: UPDATE customers SET address = '1 Main St.' WHERE name = 'Jack Jones'; 数据库将自动执行如下语句: UPDATE orders SET address = '1 Main St.' WHERE
customer_name = 'Jack Jones';
|
CREATE INDEX |
为给定表或视图创建索引。
语法:
sql-statement ::= |
CREATE [UNIQUE] INDEX
index-name ON
[database-name
.]table-name
( column-name[,
column-name]*
) [ ON CONFLICT
conflict-algorithm] |
column-name ::= |
name[ COLLATE
collation-name][ ASC
| DESC
] |
例子: CREATE INDEX idx_email
ON customers (email); 说明: 为customers表中的email创建一个名为idx_email的字段。
|
结构删除 |
DROP TABLE |
删除表定义及该表的所有索引。
语法:
sql-command ::= |
DROP TABLE [database-name.]table-name
|
例子: DROP TABLE customers; |
DROP VIEW |
删除一个视图。
语法:
sql-command ::= |
DROP VIEW view-name
|
例子: DROP VIEW master_view;
|
DROP TRIGGER |
删除一个触发器。
语法:
sql-statement ::= |
DROP TRIGGER [database-name
.]trigger-name
|
例子: DROP TRIGGER update_customer_address;
|
DROP INDEX |
删除一个索引。
语法:
sql-command ::= |
DROP INDEX [database-name
.]index-name
|
例子: DROP INDEX idx_email;
|
数据操作 |
INSERT |
将新行插入到表。
语法:
sql-statement ::= |
INSERT [OR
conflict-algorithm] INTO
[database-name
.]table-name[(column-list)]VALUES(value-list)
| INSERT
[OR conflict-algorithm] INTO
[database-name
.]table-name[(column-list)]select-statement
|
|
UPDATE |
更新表中的现有数据。
语法:
sql-statement ::= |
UPDATE [ OR
conflict-algorithm][database-name
.]table-name SET
assignment[,
assignment]*[WHERE
expr] |
assignment ::= |
column-name
= expr
|
|
DELETE |
从表中删除行。
语法:
sql-statement ::= |
DELETE FROM [database-name
.]table-name[WHERE
expr] |
|
SELECT |
从表中检索数据。
语法:
sql-statement ::= |
SELECT [ALL
| DISTINCT]result[FROM
table-list][WHERE
expr][GROUP BY
expr-list][HAVING
expr][compound-opselect]*[ORDER
BY sort-expr-list][LIMIT
integer[( OFFSET
|
, )integer]] |
result ::= |
result-column[,
result-column]*
|
result-column ::= |
*
|table-name
. *
|expr[[AS]string] |
table-list ::= |
table[join-optablejoin-args]*
|
table ::= |
table-name[AS
alias]|
( select
) [AS
alias] |
join-op ::= |
,
|[NATURAL][LEFT
| RIGHT
| FULL][OUTER
| INNER
| CROSS] JOIN
|
join-args ::= |
[ON expr][USING
( id-list
)] |
sort-expr-list ::= |
expr[sort-order][,
expr[sort-order]]*
|
sort-order ::= |
[ COLLATE collation-name][ ASC
| DESC
] |
compound_op ::= |
UNION | UNION ALL
| INTERSECT
| EXCEPT
|
|
REPLACE |
类似INSERT
语法:
sql-statement ::= |
REPLACE INTO [database-name
.]table-name[(
column-list
)] VALUES
( value-list
) | REPLACE INTO
[database-name
.]table-name[(
column-list
)]select-statement
|
|
事务处理 |
BEGIN TRANSACTION |
标记一个事务的起始点。
语法:
sql-statement ::= |
BEGIN [TRANSACTION
[name]] |
|
END TRANSACTION |
标记一个事务的终止。
语法:
sql-statement ::= |
END [TRANSACTION
[name]] |
|
COMMIT TRANSACTION |
标志一个事务的结束。
语法:
sql-statement ::= |
COMMIT [TRANSACTION
[name]] |
|
ROLLBACK TRANSACTION |
将事务回滚到事务的起点。
语法:
sql-statement ::= |
ROLLBACK [TRANSACTION
[name]] |
|
其他操作 |
COPY |
主要用于导入大量的数据。
语法:
sql-statement ::= |
COPY [ OR
conflict-algorithm][database-name
.]table-name FROM
filename[ USING DELIMITERS
delim] |
例子: COPY customers
FROM customers.csv; |
EXPLAIN |
语法:
sql-statement ::= |
EXPLAIN sql-statement
|
|
PRAGMA |
语法:
sql-statement ::= |
PRAGMA name[=
value]| PRAGMA
function(arg)
|
|
VACUUM |
语法:
sql-statement ::= |
VACUUM [index-or-table-name] |
|
ATTACH DATABASE |
附加一个数据库到当前的数据库连接。
语法:
sql-statement ::= |
ATTACH
[DATABASE]database-filename AS
database-name
|
|
DETTACH DATABASE |
从当前的数据库分离一个使用ATTACH DATABASE附加的数据库。
语法:
sql-command ::= |
DETACH [DATABASE]database-name
|
|
SQLite内建函数表
算术函数 |
abs(X) |
返回给定数字表达式的绝对值。 |
max(X,Y[,...]) |
返回表达式的最大值。 |
min(X,Y[,...]) |
返回表达式的最小值。 |
random(*) |
返回随机数。 |
round(X[,Y]) |
返回数字表达式并四舍五入为指定的长度或精度。 |
字符处理函数 |
length(X) |
返回给定字符串表达式的字符个数。 |
lower(X) |
将大写字符数据转换为小写字符数据后返回字符表达式。 |
upper(X) |
返回将小写字符数据转换为大写的字符表达式。 |
substr(X,Y,Z) |
返回表达式的一部分。 |
randstr() |
|
quote(A) |
|
like(A,B) |
确定给定的字符串是否与指定的模式匹配。 |
glob(A,B) |
|
条件判断函数 |
coalesce(X,Y[,...]) |
|
ifnull(X,Y) |
|
nullif(X,Y) |
|
集合函数 |
avg(X) |
返回组中值的平均值。 |
count(X) |
返回组中项目的数量。 |
max(X) |
返回组中值的最大值。 |
min(X) |
返回组中值的最小值。 |
sum(X) |
返回表达式中所有值的和。 |
其他函数 |
typeof(X) |
返回数据的类型。 |
last_insert_rowid() |
返回最后插入的数据的ID。 |
sqlite_version(*) |
返回SQLite的版本。 |
change_count() |
返回受上一语句影响的行数。 |
last_statement_change_count() |
|
---------------------------------------------------------------------
分享到:
相关推荐
sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法sqlite语法
sqlite语法规则, 使用方法,还是比较全的,可以拿来参考一下
SQLite数据库在嵌入式下载机中的应用研究,SQLite语法备忘录
SQLite语法详解 这个挺详细,希望对大家有帮助。
SQLite的SQL语法 chm文档 讲的比较基础,分享给大家,希望有用! 之前大家反映下载后浏览不了,我试了下!我的属于以下情况二。大家如法炮制即可! 另外添加一个HTML版的语法简介。大家笑纳 ~O(∩_∩)O~ 解决CHM...
sqlite语法大全htm版.zip
SQLite 语法 SQLite 是遵循一套独特的称为语法的规则和准则。本教程列出了所有基本的 SQLite 语法,向您提供了一个 SQLite 快速入门。 大小写敏感性 有个重要的点值得注意,SQLite 是不区分大小写的,但也有一些命令...
SQLite语法 表达式...........
本文比较全面的讲述了SQLite的语法。
sqlite手册,sqlite手册,sqlite语法手册
SQLite的SQL语法(中文).chm
提供一个详细的SQLite Sql语法手册,供各位使用.对于有兴趣使用嵌入式数据库的同仁来说谅是一个不错的参考书.
还不错的sqlite入门语法,适合入门学习,对象操作 数据操作 事务处理 内置函数等
支持 SQLite 语法的内存中纯 Java 数据库。 介绍 提供一个充当完整 SQL 数据库的类,可以使用 SQLite 语法对其进行写入和读取。 与数据库的交互是通过一种单一的查询方法进行的,因此非常易于使用。 目的 这个库的...
sqlite3语法大全中文版,含取sqlite所有表名,字段名,等。
just so so come on developer
SQLite SQL语法中文手册 SQLite是个轻便的数据库,不太适合网络环境,但是使用还是很方便的。
详细的讲解sqlite支持的语法且说明sqlite不支择的一些sql语句
中文版 (自己搜集整理然后转成CHM版了,用了免费的CHM转换软件所以里面有一页AD,就这一点缺憾,...详细讲解了SQLite3语法和编译指令(Pragma)的用法 修改SQLite库 查询数据库的schema 查询/更改版本信息 库Debug ...