Sqlite   发布时间:2022-05-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Sqlite语法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

源地址:http://www.cnblogs.com/Helloandroid/articles/2150272.html

ID字段自增

sql="CREATE table IF NOT EXISTS MusicList (ID Integer priMary key autoIncrement,name varchar(20),path 20))";

  

<br>常用SELEct语句

desc <table> //查看表结构 
SELEct * from //查询所有更
SELEct,from table ;//查看指定列
SELEct disTinct,128)">//非重复查询
insert into users(_ID,username,password) from users;//复制
SELEct username from users where username like 'S%' ;//非重名字首字母为大写S的用户
__S%//非重名字第三个字母为大写S的用户
where _ID in(001,220,0)">230);
from user order by _ID;//以ID的顺序排列
by _ID desc;//以ID反的顺序排

分页

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

获取数据行总数:

最简单的方法是:SELECT所有的行,再调用curosr.getCount() ;取得行数,但这样效率会很低。 sqlite为我们提供了一个函数很容易查出总共有多少行。有个名为CET6_table的表格,我们想知道总共有多少行的word;可以使用如下 语句来完成:
SELECT count(word) AS number FROM CET6_table;

count()函数为我们返回一个Int整形,代表有多少行数据。返回的列的名字叫count(word),为了方便阅读和处理用as number给这个列取个 别名number;

[word],explanation] FROM CET6_table ORDER BY word liMIT 100 OFFSET 200"

上语句,返回自第200行的最多100条数据。分页时我们只要修改offset 后面的数据即可取得对应页面的数据。  

sqlite内建语法表

@H_616_337@ @H_616_339@ 结构定义 @H_404_347@ create table

创建新表

语法:

sql-command::= CREATE[TEMP|TEMPORARY]tabletable-name(
column-def[,column-def]*
[consTraint]*
)
table[database-name.]ASSELEct-statement
column-def::= name[type][[CONSTraiNTname]column-consTraint]*
type::= typename|
typename(number)|)
column-consTraint::= NOT NulL[conflict-clause]|
PRIMary KEY
[sort-order][
UNIQUE
[
checK(
expr)[
DEFAulT
value|
ColLATE
collation-name
consTraint::= PRIMary KEY(column-List
UNIQUE(
conflict-clause]
conflict-clause::= ON CONFliCTconflict-algorithm
@H_404_347@ create view

创建一个视图(虚拟表),该表以另一种方式表示一个或多个表中的数据。

语法:

VIEW[vIEw-nameSELEct-statement

例子:
create view@H_661_6@master_vIEwAS
SELECT*FROM@R_197_2057@WHEREtype='vIEw';
说明:
创建一个名为master_vIEw的视图,其中包括@R_197_2057@这个表中的所有视图表。 @H_404_347@ CREATE @R_772_10296@GER

创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。

语法:

sql-statement::=
@R_772_10296@GER@R_772_10296@ger-name[BEFORE|AFTER]database-eventON[database-name.]@R_772_10296@ger-action @R_772_10296@ger-nameINSTEAD OF
database-event::=
deletE|
INSERT
|
updatE
|
updatE OF
column-List
@R_772_10296@ger-action::=
[FOR EACH ROW|FOR EACH STATEMENT][WHENExpression]
BEGIN
@R_772_10296@ger-step;[;]*
END
@R_772_10296@ger-step::=
update-statement|insert-statement|delete-statement|SELEct-statement

例子:
CREATE @R_772_10296@GER 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';

@H_404_347@ CREATE INDEX

为给定表或视图创建索引。

语法:

UNIQUE]INDEXindex-name
ON
[column-name[column-name]*)
[conflict-algorithm]
column-name::= name[ColLATEcollation-name][ASC|DESC]

例子:
CREATE INDEXIDx_emailONcustomers (email);
说明:
为customers表中的email创建一个名为IDx_email的字段。

@H_616_339@ 结构删除 @H_404_347@ drop table

删除表定义及该表的所有索引。

语法:

drop table[table-name
例子:
drop table customers; @H_404_347@ DROP VIEW

删除一个视图。

语法:

DROP VIEWvIEw-name

例子:
DROP VIEW master_vIEw;

@H_404_347@ DROP @R_772_10296@GER

删除一个触发器。

语法:

DROP @R_772_10296@GER[@R_772_10296@ger-name

例子:
DROP @R_772_10296@GERupdate_customer_address;

@H_404_347@ DROP INDEX

删除一个索引

语法:

DROP INDEX[index-name

例子:
DROP INDEX IDx_email;

@H_616_339@ 数据操作 @H_404_347@ INSERT

将新行插入到表。

语法:

INSERT[ORconflict-algorithm]INTO[table-name[(column-List)]VALUES(value-List
INSERT
[)]SELEct-statement
@H_404_347@ updatE

更新表中的现有数据。

语法:

updatE[conflict-algorithm][
SET
assignment[assignment]*WHEREexpr]
assignment::= column-name=expr @H_404_347@ deletE

从表中删除行。

语法:

deletE FROM[table-name[expr]
@H_404_347@ SELECT

从表中检索数据。

语法:

SELECT[ALL|disTinCT]result[FROMtable-List]expr]GROUP BYexpr-List]HAVING
[compound-opSELEct]*ORDER BYsort-expr-List]liMITInteger[(OFFSET|:rgb(44,)Integer]]
result::= result-column[result-column]* result-column::= *|.*|expr[[AS]String] table-List::= table[join-optablejoin-args]* table::= alias]|
(
SELEct)[alias] join-op::= :1px; border-right-wIDth:1px; border-bottom-wIDth:1px; border-left-wIDth:1px; border-top-style:solID; border-right-style:solID; border-bottom-style:solID; border-left-style:solID; border-top-color:rgb(192,|[NATURAL][left|RIGHT|FulL][OUTER|INNER|CROSS]JOIN join-args::= ONexpr][USING(ID-List)] sort-expr-List::= expr[sort-order][sort-order]]* sort-order::= collation-name][DESC] compound_op::= UNION|union all|INTERSECT|EXCEPT @H_404_347@ replaCE

类似INSERT

语法:

replaCE intO[)]
replaCE intO
[)]SELEct-statement
@H_616_339@ 事务处理 @H_404_347@ BEGIN transaCTION

标记一个事务的起始点。

语法:

BEGIN[transaCTION[name]]
@H_404_347@ END transaCTION

标记一个事务的终止。

语法:

END[ COMMIT transaCTION

标志一个事务的结束。

语法:

COMMIT[ RolLBACK transaCTION

将事务回滚到事务的起点。

语法:

RolLBACK[name]]
@H_616_339@ 其他操作 @H_404_347@ copY

主要用于导入大量的数据。

语法:

copY[filenameUSING DEliMITERSdelim]
例子:
copYcustomersFROMcustomers.csv; @H_404_347@ EXPLAIN

语法:

EXPLAINsql-statement
@H_404_347@ PRAGMA PRAGMA=value]|
PRAGMA
functionarg
) @H_404_347@ VACUUM VACUUM[index-or-table-name] @H_404_347@ ATTACH DATABASE

附加一个数据库到当前的数据库连接。

语法:

ATTACH[DATABASE]database-filenamedatabase-name
@H_404_347@ DETTACH DATABASE

从当前的数据库分离一个使用ATTACH DATABASE附加的数据库。

语法:

DETACH[database-name

sqlite内建函数表

算术函数 @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_616_339@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_616_339@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_616_339@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@ @H_404_347@
abs(X) 返回给定数字表达式的绝对值。 max(X,Y[,...]) 返回表达式的最大值。 min(X,192); border-collapse:collapse; padding-top:3px; padding-right:3px; padding-bottom:3px; padding-left:3px; word-break:normal!important"> 返回表达式的最小值。 random(*) 返回随机数。 round(X[,y]) 返回数字表达式并四舍五入为指定的长度或精度。 字符处理函数
length(X) 返回给定字符串表达式的字符个数。 lower(x) 将大写字符数据转换为小写字符数据后返回字符表达式。 upper(X) 返回将小写字符数据转换为大写的字符表达式。 substr(X,Y,z) 返回表达式的一部分。 randstr() quote(A) like(A,B) 确定给定的字符串是否与指定的模式匹配。 glob(A,192); border-collapse:collapse; padding-top:3px; padding-right:3px; padding-bottom:3px; padding-left:3px; word-break:normal!important"> 条件判断函数
coalesce(X,192); border-collapse:collapse; padding-top:3px; padding-right:3px; padding-bottom:3px; padding-left:3px; word-break:normal!important"> ifnull(X,Y) NULLIF(X,192); border-collapse:collapse; padding-top:3px; padding-right:3px; padding-bottom:3px; padding-left:3px; word-break:normal!important"> 集合函数 avg(X) 返回组中值的平均值。 count(X) 返回组中项目的数量。 max(X) 返回组中值的最大值。 min(X) 返回组中值的最小值。 sum(X) 返回表达式中所有值的和。 其他函数
typeof(X) 返回数据的类型。 last_insert_rowID() 返回最后插入的数据的ID。 @R_184_5607@version(*) 返回sqlite的版本。 change_count() 返回受上一语句影响的行数。 last_statement_change_count()

大佬总结

以上是大佬教程为你收集整理的Sqlite语法全部内容,希望文章能够帮你解决Sqlite语法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: