SQLite语法备忘录

前端之家收集整理的这篇文章主要介绍了SQLite语法备忘录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sqlite内建语法表

@H_403_16@CREATE TABLE @H_403_16@

创建新表。

语法:

结构定义
@H_403_16@CREATE [TEMP | TEMPORARY] TABLE table-name (
column-def [,column-def]*

[,constraint]*
)
@H_403_16@CREATE [TEMP | TEMPORARY] TABLE [database-name.] table-name AS select-statement @H_403_16@name [type] [[CONSTRAINT name] column-constraint]* @H_403_16@typename |
typename ( number ) |
typename ( number,number ) @H_403_16@NOT NULL [ conflict-clause ] |
PRIMARY KEY
[sort-order] [ conflict-clause ] |
UNIQUE
[ conflict-clause ] |
CHECK (
expr ) [ conflict-clause ] |
DEFAULT
value |
COLLATE
collation-name @H_403_16@PRIMARY KEY ( column-list ) [ conflict-clause ] |
UNIQUE (
column-list ) [ conflict-clause ] |
CHECK (
expr ) [ conflict-clause ] @H_403_16@ON CONFLICT conflict-algorithm
sql-command::=
sql-command::=
column-def::=
type::=
column-constraint::=
constraint::=
conflict-clause::=
@H_403_16@CREATE VIEW @H_403_16@

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

语法:

@H_403_16@CREATE [TEMP | TEMPORARY] VIEW [database-name.] view-name AS select-statement
sql-command::=

例子:
CREATE VIEW master_view AS
SELECT * FROM sqlite_master WHERE type='view';
说明:
创建一个名为master_view的视图,其中包括sqlite_master这个表中的所有视图表。
@H_403_16@CREATE TRIGGER @H_403_16@

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

语法:

@H_403_16@CREATE [TEMP | TEMPORARY] TRIGGER trigger-name [ BEFORE | AFTER ]
database-event ON [database-name .] table-name
trigger-action
sql-statement::=
@H_403_16@CREATE [TEMP | TEMPORARY] TRIGGER trigger-name INSTEAD OF
database-event ON [database-name .] view-name

trigger-action
sql-statement::=
@H_403_16@DELETE |
INSERT
|

UPDATE
|

UPDATE OF
column-list
database-event::=
@H_403_16@[ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN expression ]
BEGIN
trigger-step ; [ trigger-step ; ]*

END
trigger-action::=
@H_403_16@update-statement | insert-statement |
delete-statement | select-statement
trigger-step::=

例子:
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';

@H_403_16@CREATE INDEX @H_403_16@

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

语法:

@H_403_16@CREATE [UNIQUE] INDEX index-name
ON
[database-name .] table-name ( column-name [,column-name]*
)
[ ON CONFLICT conflict-algorithm ]
@H_403_16@name [ COLLATE collation-name] [ ASC | DESC ]
sql-statement::=
column-name::=

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

结构删除 @H_403_16@DROP TABLE @H_403_16@

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

语法:

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

删除一个视图。

语法:

@H_403_16@DROP VIEW view-name
sql-command::=

例子:
DROP VIEW master_view;

@H_403_16@DROP TRIGGER @H_403_16@

删除一个触发器。

语法:

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

例子:
DROP TRIGGER update_customer_address;

@H_403_16@DROP INDEX @H_403_16@

删除一个索引。

语法:

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

例子:
DROP INDEX idx_email;

数据操作 @H_403_16@INSERT @H_403_16@

将新行插入到表。

语法:

@H_403_16@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
sql-statement::=
@H_403_16@UPDATE @H_403_16@

更新表中的现有数据。

语法:

@H_403_16@UPDATE [ OR conflict-algorithm ] [database-name .] table-name
SET
assignment [,assignment]*
[WHERE expr] @H_403_16@column-name = expr
sql-statement::=
assignment::=
@H_403_16@DELETE @H_403_16@

从表中删除行。

语法:

@H_403_16@DELETE FROM [database-name .] table-name [WHERE expr]
sql-statement::=
@H_403_16@SELECT @H_403_16@

从表中检索数据。

语法:

@H_403_16@SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
[GROUP BY expr-list]
[HAVING expr]
[compound-op select]*
[ORDER BY sort-expr-list]
[LIMIT integer [( OFFSET |,) integer]] @H_403_16@result-column [,result-column]* @H_403_16@* | table-name . * | expr [ [AS] string ] @H_403_16@table [join-op table join-args]* @H_403_16@table-name [AS alias] |
(
select ) [AS alias] @H_403_16@,| [NATURAL] [LEFT | RIGHT | FULL] [OUTER | INNER | CROSS] JOIN @H_403_16@[ON expr] [USING ( id-list )] @H_403_16@expr [sort-order] [,expr [sort-order]]* @H_403_16@[ COLLATE collation-name ] [ ASC | DESC ] @H_403_16@UNION | UNION ALL | INTERSECT | EXCEPT
sql-statement::=
result::=
result-column::=
table-list::=
table::=
join-op::=
join-args::=
sort-expr-list::=
sort-order::=
compound_op::=
@H_403_16@REPLACE @H_403_16@

类似INSERT

语法:

@H_403_16@REPLACE INTO [database-name .] table-name [( column-list )] VALUES ( value-list ) |
REPLACE INTO
[database-name .] table-name [( column-list )] select-statement
sql-statement::=
事务处理 @H_403_16@BEGIN TRANSACTION @H_403_16@

标记一个事务的起始点。

语法:

@H_403_16@BEGIN [TRANSACTION [name]]
sql-statement::=
@H_403_16@END TRANSACTION @H_403_16@

标记一个事务的终止。

语法:

@H_403_16@END [TRANSACTION [name]]
sql-statement::=
@H_403_16@COMMIT TRANSACTION @H_403_16@

标志一个事务的结束。

语法:

@H_403_16@COMMIT [TRANSACTION [name]]
sql-statement::=
@H_403_16@ROLLBACK TRANSACTION @H_403_16@

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

语法:

@H_403_16@ROLLBACK [TRANSACTION [name]]
sql-statement::=
其他操作 @H_403_16@COPY @H_403_16@

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

语法:

@H_403_16@COPY [ OR conflict-algorithm ] [database-name .] table-name FROM filename
[ USING DELIMITERS delim ]
sql-statement::=
例子:
COPYcustomers FROM customers.csv;
@H_403_16@EXPLAIN @H_403_16@

语法:

@H_403_16@EXPLAIN sql-statement
sql-statement::=
@H_403_16@PRAGMA @H_403_16@

语法:

@H_403_16@PRAGMA name [= value] |
PRAGMA
function(arg)
sql-statement::=
@H_403_16@VACUUM @H_403_16@

语法:

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

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

语法:

@H_403_16@ATTACH [DATABASE] database-filename AS database-name
sql-statement::=
@H_403_16@DETTACH DATABASE @H_403_16@

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

语法:

@H_403_16@DETACH [DATABASE] database-name
sql-command::=

sqlite内建函数

@H_403_16@abs(X) @H_403_16@返回给定数字表达式的绝对值。 @H_403_16@max(X,Y[,...]) @H_403_16@返回表达式的最大值。 @H_403_16@min(X,...]) @H_403_16@返回表达式的最小值。 @H_403_16@random(*) @H_403_16@返回随机数。 @H_403_16@round(X[,Y]) @H_403_16@返回数字表达式并四舍五入为指定的长度或精度。 @H_403_16@length(X) @H_403_16@返回给定字符串表达式的字符个数。 @H_403_16@lower(X) @H_403_16@将大写字符数据转换为小写字符数据后返回字符表达式。 @H_403_16@upper(X) @H_403_16@返回将小写字符数据转换为大写的字符表达式。 @H_403_16@substr(X,Y,Z) @H_403_16@返回表达式的一部分。 @H_403_16@randstr() @H_403_16@ @H_403_16@quote(A) @H_403_16@ @H_403_16@like(A,B) @H_403_16@确定给定的字符串是否与指定的模式匹配。 @H_403_16@glob(A,B) @H_403_16@ @H_403_16@coalesce(X,...]) @H_403_16@ @H_403_16@ifnull(X,Y) @H_403_16@ @H_403_16@nullif(X,Y) @H_403_16@ @H_403_16@avg(X) @H_403_16@返回组中值的平均值。 @H_403_16@count(X) @H_403_16@返回组中项目的数量 @H_403_16@max(X) @H_403_16@返回组中值的最大值。 @H_403_16@min(X) @H_403_16@返回组中值的最小值。 @H_403_16@sum(X) @H_403_16@返回表达式中所有值的和。 @H_403_16@typeof(X) @H_403_16@返回数据的类型。 @H_403_16@last_insert_rowid() @H_403_16@返回最后插入的数据的ID。 @H_403_16@sqlite_version(*) @H_403_16@返回sqlite的版本。 @H_403_16@change_count() @H_403_16@返回受上一语句影响的行数。 @H_403_16@last_statement_change_count()
算术函数
字符处理函数
条件判断函数
集合函数
其他函数

猜你在找的Sqlite相关文章