结构定义 |
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)[ DEFAULTvalue| COLLATEcollation-name |
constraint::= |
PRIMARY KEY(column-list UNIQUE(conflict-clause] |
conflict-clause::= |
ON CONFLICTconflict-algorithm |
@H_403_364@
|
CREATE VIEW |
创建一个视图(虚拟表),该表以另一种方式表示一个或多个表中的数据。 语法:
VIEW[view-nameselect-statement |
@H_403_364@
例子: @H_777_403@CREATE VIEWmaster_view@H_777_403@AS @H_777_403@SELECT*@H_777_403@FROMsqlite_master@H_777_403@WHEREtype='view'; 说明: 创建一个名为master_view的视图,其中包括sqlite_master这个表中的所有视图表。 |
CREATE TRIGGER |
创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。 语法:
sql-statement::= |
TRIGGERtrigger-name[BEFORE|AFTER]database-eventON[database-name.]trigger-action |
@H_403_364@
trigger-nameINSTEAD OF database-event::= |
DELETE| INSERT| UPDATE| UPDATE OFcolumn-list |
@H_403_364@
trigger-action::= |
[FOR EACH ROW|FOR EACH STATEMENT][WHENexpression] BEGIN trigger-step;[;]* END |
@H_403_364@
trigger-step::= |
update-statement|insert-statement|delete-statement|select-statement |
@H_403_364@
例子: 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 |
为给定表或视图创建索引。 语法:
UNIQUE]INDEXindex-name ON[column-name[column-name]*) [conflict-algorithm] |
column-name::= |
name[COLLATEcollation-name][ASC|DESC] |
@H_403_364@
例子: @H_777_403@CREATE INDEXidx_email@H_777_403@ONcustomers (email); 说明: 为customers表中的email创建一个名为idx_email的字段。 |
结构删除 |
DROP TABLE |
删除表定义及该表的所有索引。 语法:
DROP TABLE[table-name |
@H_403_364@
例子: DROP TABLE customers; |
DROP VIEW |
删除一个视图。 语法:
DROP VIEWview-name |
@H_403_364@
例子: DROP VIEW master_view; |
DROP TRIGGER |
删除一个触发器。 语法:
DROP TRIGGER[trigger-name |
@H_403_364@
例子: DROP TRIGGERupdate_customer_address; |
DROP INDEX |
删除一个索引。 语法:
DROP INDEX[index-name |
@H_403_364@
例子: DROP INDEX idx_email; |
数据操作 |
INSERT |
将新行插入到表。 语法:
INSERT[ORconflict-algorithm]INTO[table-name[(column-list)]VALUES(value-list INSERT[)]select-statement |
@H_403_364@
|
UPDATE |
更新表中的现有数据。 语法:
UPDATE[conflict-algorithm][ SETassignment[assignment]*WHEREexpr] |
assignment::= |
column-name=expr |
@H_403_364@
|
DELETE |
从表中删除行。 语法:
DELETE FROM[table-name[expr] |
@H_403_364@
|
SELECT |
从表中检索数据。 语法:
SELECT[ALL|DISTINCT]result[FROMtable-list]expr]GROUP BYexpr-list]HAVING [compound-opselect]*ORDER BYsort-expr-list]LIMITinteger[(OFFSET|integer]] |
result::= |
result-column[result-column]* |
result-column::= |
*|.*|expr[[AS]string] |
table-list::= |
table[join-optablejoin-args]* |
table::= |
alias]| (select)[alias] |
join-op::= |
|[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_403_364@
|
REPLACE |
类似INSERT 语法:
REPLACE INTO[)] REPLACE INTO[)]select-statement |
@H_403_364@
|
事务处理 |
BEGIN TRANSACTION |
标记一个事务的起始点。 语法:
BEGIN[TRANSACTION[name]] |
@H_403_364@
|
END TRANSACTION |
标记一个事务的终止。 语法:
|
COMMIT TRANSACTION |
标志一个事务的结束。 语法:
COMMIT[name]] |
@H_403_364@
|
ROLLBACK TRANSACTION |
将事务回滚到事务的起点。 语法:
ROLLBACK[name]] |
@H_403_364@
|
其他操作 |
COPY |
主要用于导入大量的数据。 语法:
COPY[filenameUSING DELIMITERSdelim] |
@H_403_364@
例子: @H_777_403@COPYcustomers@H_777_403@FROMcustomers.csv; |
EXPLAIN |
语法:
EXPLAINsql-statement |
@H_403_364@
|
PRAGMA |
语法:
PRAGMA=value]| PRAGMAfunctionarg) |
@H_403_364@
|
VACUUM |
语法:
VACUUM[index-or-table-name] |
@H_403_364@
|
ATTACH DATABASE |
附加一个数据库到当前的数据库连接。 语法:
ATTACH[DATABASE]database-filenamedatabase-name |
@H_403_364@
|
DETTACH DATABASE |
从当前的数据库分离一个使用ATTACH DATABASE附加的数据库。 语法:
DETACH[database-name |
@H_403_364@
|
@H_403_364@