宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 3833|回复: 0

Delphi数据库开发SQLite内建语法表

[复制链接]
  • TA的每日心情
    开心
    2024-12-9 18:45
  • 签到天数: 124 天

    [LV.7]常住居民III

    admin 发表于 2009-11-27 23:41:29 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    x
    结构定义
    CREATE TABLE
    创建新表。
    语法:
    sql-command ::=CREATE [TEMP | TEMPORARY] TABLE table-name (
       
    column-def [, column-def]*
       
    [, constraint]*
    )
    sql-command ::=CREATE [TEMP | TEMPORARY] TABLE [database-name.] table-name AS select-statement
    column-def ::=name [type] [[CONSTRAINT name] 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 CONFLICT conflict-algorithm
    CREATE VIEW
    创建一个视图(虚拟表),该表以另一种方式表示一个或多个表中的数据。
    语法:
    sql-command ::=CREATE [TEMP | TEMPORARY] VIEW [database-name.] view-name AS select-statement

    例子:
    CREATE VIEW master_view AS
        SELECT * FROM sqlite_master WHERE type='view';
    说明:
    创建一个名为master_view的视图,其中包括sqlite_master这个表中的所有视图表。
    CREATE TRIGGER
    创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。
    语法:
    sql-statement ::=CREATE [TEMP | TEMPORARY] TRIGGER trigger-name [ BEFORE | AFTER ]
    database-event ON [database-name .] table-name
    trigger-action
    sql-statement ::=CREATE [TEMP | TEMPORARY] TRIGGER trigger-name INSTEAD OF
    database-event ON [database-name .] view-name
    trigger-action
    database-event ::=DELETE |
    INSERT
    |
    UPDATE
    |
    UPDATE OF
    column-list
    trigger-action ::=[ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN expression ]
    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] INDEX index-name
    ON
    [database-name .] table-name ( column-name [, column-name]* )
    [ ON CONFLICT conflict-algorithm ]
    column-name ::=name [ COLLATE collation-name] [ ASC | DESC ]

    例子:
    CREATE INDEX idx_email ON customers (email);
    说明:
    为customers表中的email创建一个名为idx_email的字段。
    结构删除
    DROP TABLE
    删除表定义及该表的所有索引。
    语法:
    sql-command ::=DROP TABLE [database-name.] table-name
    例子:
    DROP TABLE customers;
    DROP VIEW
    删除一个视图。
    语法:
    sql-command ::=DROP VIEW view-name

    例子:
    DROP VIEW master_view;
    DROP TRIGGER
    删除一个触发器。
    语法:
    sql-statement ::=DROP TRIGGER [database-name .] trigger-name

    例子:
    DROP TRIGGER update_customer_address;
    DROP INDEX
    删除一个索引。
    语法:
    sql-command ::=DROP INDEX [database-name .] index-name

    例子:
    DROP INDEX idx_email;
    数据操作
    INSERT
    将新行插入到表。
    语法:
    sql-statement ::=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
    UPDATE
    更新表中的现有数据。
    语法:
    sql-statement ::=UPDATE [ OR conflict-algorithm ] [database-name .] table-name
    SET
    assignment [, assignment]*
    [WHERE expr]
    assignment ::=column-name = expr
    DELETE
    从表中删除行。
    语法:
    sql-statement ::=DELETE FROM [database-name .] table-name [WHERE expr]
    SELECT
    从表中检索数据。
    语法:
    sql-statement ::=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]]
    result ::=result-column [, result-column]*
    result-column ::=* | table-name . * | expr [ [AS] string ]
    table-list ::=table [join-op table join-args]*
    table ::=table-name [AS alias] |
    (
    select ) [AS alias]
    join-op ::=, | [NATURAL] [LEFT | RIGHT | FULL] [OUTER | INNER | CROSS] JOIN
    join-args ::=[ON expr] [USING ( id-list )]
    sort-expr-list ::=expr [sort-order] [, expr [sort-order]]*
    sort-order ::=[ COLLATE collation-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 [ OR conflict-algorithm ] [database-name .] table-name FROM filename
    [ USING DELIMITERS delim ]
    例子:
    COPY customers FROM customers.csv;
    EXPLAIN

    语法:
    sql-statement ::=EXPLAIN sql-statement
    PRAGMA

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

    语法:
    sql-statement ::=VACUUM [index-or-table-name]
    ATTACH DATABASE
    附加一个数据库到当前的数据库连接。
    语法:
    sql-statement ::=ATTACH [DATABASE] database-filename AS database-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()
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2024-12-22 20:57 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表