结构定义 |
CREATE TABLE |
创建新表。 语法:
@H_404_38@sql-command::= |
CREATE [TEMP | TEMPORARY] TABLE @H_404_38@table-name ( @H_404_38@column-def [,@H_404_38@column-def]* [,@H_404_38@constraint]* ) |
@H_404_38@sql-command::= |
CREATE [TEMP | TEMPORARY] TABLE [@H_404_38@database-name.] @H_404_38@table-name AS @H_404_38@select-statement |
@H_404_38@column-def::= |
@H_404_38@name [@H_404_38@type] [[CONSTRAINT @H_404_38@name] @H_404_38@column-constraint]* |
@H_404_38@type::= |
@H_404_38@typename | @H_404_38@typename ( @H_404_38@number ) | @H_404_38@typename ( @H_404_38@number,@H_404_38@number ) |
@H_404_38@column-constraint::= |
NOT NULL [ @H_404_38@conflict-clause ] | PRIMARY KEY [@H_404_38@sort-order] [ @H_404_38@conflict-clause ] | UNIQUE [ @H_404_38@conflict-clause ] | CHECK ( @H_404_38@expr ) [ @H_404_38@conflict-clause ] | DEFAULT @H_404_38@value | COLLATE collation-name |
@H_404_38@constraint::= |
PRIMARY KEY ( @H_404_38@column-list ) [ @H_404_38@conflict-clause ] | UNIQUE ( @H_404_38@column-list ) [ @H_404_38@conflict-clause ] | CHECK ( @H_404_38@expr ) [ @H_404_38@conflict-clause ] |
@H_404_38@conflict-clause::= |
ON CONFLICT @H_404_38@conflict-algorithm |
|
CREATE VIEW |
创建一个视图(虚拟表),该表以另一种方式表示一个或多个表中的数据。 语法:
@H_404_38@sql-command::= |
CREATE [TEMP | TEMPORARY] VIEW [@H_404_38@database-name.] @H_404_38@view-name AS @H_404_38@select-statement |
例子: CREATE VIEW master_view AS SELECT * FROM sqlite_master WHERE type='view'; 说明: 创建一个名为master_view的视图,其中包括sqlite_master这个表中的所有视图表。 |
CREATE TRIGGER |
创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。 语法:
@H_404_38@sql-statement::= |
CREATE [TEMP | TEMPORARY] TRIGGER @H_404_38@trigger-name [ BEFORE | AFTER ] @H_404_38@database-event ON [@H_404_38@database-name .] @H_404_38@table-name trigger-action |
@H_404_38@sql-statement::= |
CREATE [TEMP | TEMPORARY] TRIGGER @H_404_38@trigger-name INSTEAD OF @H_404_38@database-event ON [@H_404_38@database-name .] @H_404_38@view-name trigger-action |
@H_404_38@database-event::= |
DELETE | INSERT | UPDATE | UPDATE OF @H_404_38@column-list |
@H_404_38@trigger-action::= |
[ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN @H_404_38@expression ] BEGIN @H_404_38@trigger-step ; [ @H_404_38@trigger-step ; ]* END |
@H_404_38@trigger-step::= |
@H_404_38@update-statement | @H_404_38@insert-statement | @H_404_38@delete-statement | @H_404_38@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 |
为给定表或视图创建索引。 语法:
@H_404_38@sql-statement::= |
CREATE [UNIQUE] INDEX @H_404_38@index-name ON [@H_404_38@database-name .] @H_404_38@table-name ( @H_404_38@column-name [,@H_404_38@column-name]* ) [ ON CONFLICT @H_404_38@conflict-algorithm ] |
@H_404_38@column-name::= |
@H_404_38@name [ COLLATE @H_404_38@collation-name] [ ASC | DESC ] |
例子: CREATE INDEXidx_email ON customers (email); 说明: 为customers表中的email创建一个名为idx_email的字段。 |
结构删除 |
DROP TABLE |
删除表定义及该表的所有索引。 语法:
@H_404_38@sql-command::= |
DROP TABLE [@H_404_38@database-name.] @H_404_38@table-name |
例子: DROP TABLE customers; |
DROP VIEW |
删除一个视图。 语法:
@H_404_38@sql-command::= |
DROP VIEW @H_404_38@view-name |
例子: DROP VIEW master_view; |
DROP TRIGGER |
删除一个触发器。 语法:
@H_404_38@sql-statement::= |
DROP TRIGGER [@H_404_38@database-name .] @H_404_38@trigger-name |
例子: DROP TRIGGER update_customer_address; |
DROP INDEX |
删除一个索引。 语法:
@H_404_38@sql-command::= |
DROP INDEX [@H_404_38@database-name .] @H_404_38@index-name |
例子: DROP INDEX idx_email; |
数据操作 |
INSERT |
将新行插入到表。 语法:
@H_404_38@sql-statement::= |
INSERT [OR @H_404_38@conflict-algorithm] INTO [@H_404_38@database-name .] @H_404_38@table-name [(@H_404_38@column-list)] VALUES(@H_404_38@value-list) | INSERT [OR @H_404_38@conflict-algorithm] INTO [@H_404_38@database-name .] @H_404_38@table-name [(@H_404_38@column-list)] @H_404_38@select-statement |
|
UPDATE |
更新表中的现有数据。 语法:
@H_404_38@sql-statement::= |
UPDATE [ OR @H_404_38@conflict-algorithm ] [@H_404_38@database-name .] @H_404_38@table-name SET @H_404_38@assignment [,@H_404_38@assignment]* [WHERE @H_404_38@expr] |
@H_404_38@assignment::= |
@H_404_38@column-name = @H_404_38@expr |
|
DELETE |
从表中删除行。 语法:
@H_404_38@sql-statement::= |
DELETE FROM [@H_404_38@database-name .] @H_404_38@table-name [WHERE @H_404_38@expr] |
|
SELECT |
从表中检索数据。 语法:
@H_404_38@sql-statement::= |
SELECT [ALL | DISTINCT] @H_404_38@result [FROM @H_404_38@table-list] [WHERE @H_404_38@expr] [GROUP BY @H_404_38@expr-list] [HAVING @H_404_38@expr] [@H_404_38@compound-op @H_404_38@select]* [ORDER BY @H_404_38@sort-expr-list] [LIMIT @H_404_38@integer [( OFFSET |,) @H_404_38@integer]] |
@H_404_38@result::= |
@H_404_38@result-column [,@H_404_38@result-column]* |
@H_404_38@result-column::= |
* | @H_404_38@table-name . * | @H_404_38@expr [ [AS] @H_404_38@string ] |
@H_404_38@table-list::= |
@H_404_38@table [@H_404_38@join-op @H_404_38@table @H_404_38@join-args]* |
@H_404_38@table::= |
@H_404_38@table-name [AS @H_404_38@alias] | ( @H_404_38@select ) [AS @H_404_38@alias] |
@H_404_38@join-op::= |
,| [NATURAL] [LEFT | RIGHT | FULL] [OUTER | INNER | CROSS] JOIN |
@H_404_38@join-args::= |
[ON @H_404_38@expr] [USING ( @H_404_38@id-list )] |
@H_404_38@sort-expr-list::= |
@H_404_38@expr [@H_404_38@sort-order] [,@H_404_38@expr [@H_404_38@sort-order]]* |
@H_404_38@sort-order::= |
[ COLLATE @H_404_38@collation-name ] [ ASC | DESC ] |
@H_404_38@compound_op::= |
UNION | UNION ALL | INTERSECT | EXCEPT |
|
REPLACE |
类似INSERT 语法:
@H_404_38@sql-statement::= |
REPLACE INTO [@H_404_38@database-name .] @H_404_38@table-name [( @H_404_38@column-list )] VALUES ( @H_404_38@value-list ) | REPLACE INTO [@H_404_38@database-name .] @H_404_38@table-name [( @H_404_38@column-list )] @H_404_38@select-statement |
|
事务处理 |
BEGIN TRANSACTION |
标记一个事务的起始点。 语法:
@H_404_38@sql-statement::= |
BEGIN [TRANSACTION [@H_404_38@name]] |
|
END TRANSACTION |
标记一个事务的终止。 语法:
@H_404_38@sql-statement::= |
END [TRANSACTION [@H_404_38@name]] |
|
COMMIT TRANSACTION |
标志一个事务的结束。 语法:
@H_404_38@sql-statement::= |
COMMIT [TRANSACTION [@H_404_38@name]] |
|
ROLLBACK TRANSACTION |
将事务回滚到事务的起点。 语法:
@H_404_38@sql-statement::= |
ROLLBACK [TRANSACTION [@H_404_38@name]] |
|
其他操作 |
COPY |
主要用于导入大量的数据。 语法:
@H_404_38@sql-statement::= |
COPY [ OR @H_404_38@conflict-algorithm ] [@H_404_38@database-name .] @H_404_38@table-name FROM @H_404_38@filename [ USING DELIMITERS @H_404_38@delim ] |
例子: COPYcustomers FROM customers.csv; |
EXPLAIN |
语法:
|
PRAGMA |
语法:
@H_404_38@sql-statement::= |
PRAGMA @H_404_38@name [= @H_404_38@value] | PRAGMA @H_404_38@function(@H_404_38@arg) |
|
VACUUM |
语法:
@H_404_38@sql-statement::= |
VACUUM [@H_404_38@index-or-table-name] |
|
ATTACH DATABASE |
附加一个数据库到当前的数据库连接。 语法:
@H_404_38@sql-statement::= |
ATTACH [DATABASE] @H_404_38@database-filename AS @H_404_38@database-name |
|
DETTACH DATABASE |
从当前的数据库分离一个使用ATTACH DATABASE附加的数据库。 语法:
@H_404_38@sql-command::= |
DETACH [DATABASE] @H_404_38@database-name |
|