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

SQLite语法2

 
阅读更多

SQLite内建语法表

结构定义
CREATE TABLE

创建新表。

语法:

sql-command::= CREATE[TEMP|TEMPORARY]TABLEtable-name(
column-def[,column-def]*
[,constraint]*
)
sql-command::= CREATE[TEMP|TEMPORARY]TABLE[database-name.]table-nameASselect-statement
column-def::= name[type][[CONSTRAINTname]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 CONFLICTconflict-algorithm
CREATE VIEW

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

语法:

sql-command::= CREATE[TEMP|TEMPORARY]VIEW[database-name.]view-nameASselect-statement

例子:
CREATE VIEWmaster_viewAS
SELECT*FROMsqlite_masterWHEREtype='view';
说明:
创建一个名为master_view的视图,其中包括sqlite_master这个表中的所有视图表。
CREATE TRIGGER

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

语法:

sql-statement::= CREATE[TEMP|TEMPORARY]TRIGGERtrigger-name[BEFORE|AFTER]
database-eventON[database-name.]table-name
trigger-action
sql-statement::= CREATE[TEMP|TEMPORARY]TRIGGERtrigger-nameINSTEAD OF
database-eventON[database-name.]view-name
trigger-action
database-event::= DELETE|
INSERT
|
UPDATE
|
UPDATE OF
column-list
trigger-action::= [FOR EACH ROW|FOR EACH STATEMENT][WHENexpression]
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]INDEXindex-name
ON
[database-name.]table-name(column-name[,column-name]*)
[ON CONFLICTconflict-algorithm]
column-name::= name[COLLATEcollation-name][ASC|DESC]

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

结构删除
DROP TABLE

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

语法:

sql-command::= DROP TABLE[database-name.]table-name
例子:
DROP TABLE customers;
DROP VIEW

删除一个视图。

语法:

sql-command::= DROP VIEWview-name

例子:
DROP VIEW master_view;

DROP TRIGGER

删除一个触发器。

语法:

sql-statement::= DROP TRIGGER[database-name.]trigger-name

例子:
DROP TRIGGERupdate_customer_address;

DROP INDEX

删除一个索引。

语法:

sql-command::= DROP INDEX[database-name.]index-name

例子:
DROP INDEX idx_email;

数据操作
INSERT

将新行插入到表。

语法:

sql-statement::= INSERT[ORconflict-algorithm]INTO[database-name.]table-name[(column-list)]VALUES(value-list)|
INSERT
[ORconflict-algorithm]INTO[database-name.]table-name[(column-list)]select-statement
UPDATE

更新表中的现有数据。

语法:

sql-statement::= UPDATE[ORconflict-algorithm][database-name.]table-name
SET
assignment[,assignment]*
[WHEREexpr]
assignment::= column-name=expr
DELETE

从表中删除行。

语法:

sql-statement::= DELETE FROM[database-name.]table-name[WHEREexpr]
SELECT

从表中检索数据。

语法:

sql-statement::= SELECT[ALL|DISTINCT]result[FROMtable-list]
[WHEREexpr]
[GROUP BYexpr-list]
[HAVINGexpr]
[compound-opselect]*
[ORDER BYsort-expr-list]
[LIMITinteger[(OFFSET|,)integer]]
result::= result-column[,result-column]*
result-column::= *|table-name.*|expr[[AS]string]
table-list::= table[join-optablejoin-args]*
table::= table-name[ASalias]|
(
select)[ASalias]
join-op::= ,|[NATURAL][LEFT|RIGHT|FULL][OUTER|INNER|CROSS]JOIN
join-args::= [ONexpr][USING(id-list)]
sort-expr-list::= expr[sort-order][,expr[sort-order]]*
sort-order::= [COLLATEcollation-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[ORconflict-algorithm][database-name.]table-nameFROMfilename
[USING DELIMITERSdelim]
例子:
COPYcustomersFROMcustomers.csv;
EXPLAIN

语法:

sql-statement::= EXPLAINsql-statement
PRAGMA

语法:

sql-statement::= PRAGMAname[=value]|
PRAGMA
function(arg)
VACUUM

语法:

sql-statement::= VACUUM[index-or-table-name]
ATTACH DATABASE

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

语法:

sql-statement::= ATTACH[DATABASE]database-filenameASdatabase-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的SQL语法(中文)

    SQLite的SQL语法(中文).chm

    SQLite语法手册

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

    sqlite3语法大全

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

    SQLite语法(HTML版)

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

    SQLite Sql语法参考手册

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

    SQLite入门语法

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

    sqlite 支持的 sql 语法详解

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

    SQLite SQL语法中文手册

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

    sqlite语法大全htm版.zip

    sqlite语法大全htm版.zip

    SQLite 语法

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

    SQLite的SQL语法

    SQLite的SQL语法,需要请自主下载

    SQLite3 语法大全 中文版

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

    SQLite SQL语法 CHM

    SQLite SQL语法 CHM SQLite库可以解析大部分标准SQL语言。但它也省去了一些特性 并且加入了一些自己的新特性。这篇文档就是试图描述那些SQLite支持/不支持的SQL语法的。

    总结SQLite不支持的SQL语法差异

    总结SQLite不支持的SQL语法差异,非常详细 跟大家分享

    sqlite语法手册

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

    SQLite语法 表达式

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

Global site tag (gtag.js) - Google Analytics