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