`
810364804
  • 浏览: 782694 次
文章分类
社区版块
存档分类
最新评论

SQLite语法

 
阅读更多

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%' ;//非重名字首字母为大写S的用户
select username from users where username like '__S%' ;//非重名字第三个字母为大写S的用户
select * from users where _id in(001,220,230);select * from user order by _id;//以id的顺序排列
select * from user order by _id desc;//以id反的顺序排

分页

当数据库数据量很大时,分页显示是个很简单且符合人们习惯的一种处理方法。

获取数据行总数:

最简单的方法是: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语法规则, 使用方法,还是比较全的,可以拿来参考一下

    SQLITE资料(SQLite3.0,SQLite语法,SQLite参考手册)

    SQLite数据库在嵌入式下载机中的应用研究,SQLite语法备忘录

    SQLite语法(HTML版)

    SQLite语法详解 这个挺详细,希望对大家有帮助。

    SQLite语法手册

    SQLite的SQL语法 chm文档 讲的比较基础,分享给大家,希望有用! 之前大家反映下载后浏览不了,我试了下!我的属于以下情况二。大家如法炮制即可! 另外添加一个HTML版的语法简介。大家笑纳 ~O(∩_∩)O~ 解决CHM...

    sqlite语法大全htm版.zip

    sqlite语法大全htm版.zip

    SQLite 语法

    SQLite 语法 SQLite 是遵循一套独特的称为语法的规则和准则。本教程列出了所有基本的 SQLite 语法,向您提供了一个 SQLite 快速入门。 大小写敏感性 有个重要的点值得注意,SQLite 是不区分大小写的,但也有一些命令...

    SQLite语法 表达式

    SQLite语法 表达式...........

    sqlite 语法

    本文比较全面的讲述了SQLite的语法。

    sqlite语法手册

    sqlite手册,sqlite手册,sqlite语法手册

    SQLite的SQL语法(中文)

    SQLite的SQL语法(中文).chm

    SQLite Sql语法参考手册

    提供一个详细的SQLite Sql语法手册,供各位使用.对于有兴趣使用嵌入式数据库的同仁来说谅是一个不错的参考书.

    SQLite入门语法

    还不错的sqlite入门语法,适合入门学习,对象操作 数据操作 事务处理 内置函数等

    prequel:支持 SQLite 语法的内存中纯 Java 数据库

    支持 SQLite 语法的内存中纯 Java 数据库。 介绍 提供一个充当完整 SQL 数据库的类,可以使用 SQLite 语法对其进行写入和读取。 与数据库的交互是通过一种单一的查询方法进行的,因此非常易于使用。 目的 这个库的...

    sqlite3语法大全

    sqlite3语法大全中文版,含取sqlite所有表名,字段名,等。

    sqlite 语法详解

    just so so come on developer

    SQLite SQL语法中文手册

    SQLite SQL语法中文手册 SQLite是个轻便的数据库,不太适合网络环境,但是使用还是很方便的。

    sqlite 支持的 sql 语法详解

    详细的讲解sqlite支持的语法且说明sqlite不支择的一些sql语句

    SQLite3 语法大全 中文版

    中文版 (自己搜集整理然后转成CHM版了,用了免费的CHM转换软件所以里面有一页AD,就这一点缺憾,...详细讲解了SQLite3语法和编译指令(Pragma)的用法 修改SQLite库 查询数据库的schema 查询/更改版本信息 库Debug ...

Global site tag (gtag.js) - Google Analytics