Firebird数据库中有一些很特别的东西,很好用,但由于平时用的不多,记在这里,以备以后用到时查询。

1、以ADO 的OLE ODBC驱动方式访问 Firebird,可以使用如下连接串:

FBConn:='Provider=MSDASQL.1;Driver=Firebird/InterBase(r) driver;Dbname=F:\TEST.FDB;CHARSET=NONE;UID=SYSDBA;PWD=masterkey';

2、序列生成器,值是bigint 类型

在做自增加字段时使用,标准教程上都是写在触发器中,我觉得写在用户SQL中使用更方便,也就是从前台调用序列生成器,生成ID值,然后从前台更新到后台去。后台的ID字段只要是普通的int值即可。

create sequence CUSTOMER;

set GENERATOR CUSTOMER to 200;

select gen_id(CUSTOMER, 1) from RDB$DATABASE;

GENERATOR 是 遗留保留字,sql-99支持 sequence 关键字,fb也是支持的。

CREATE { SEQUENCE | GENERATOR } <名字>

DROP { SEQUENCE | GENERATOR } <名字>

SET GENERATOR <名字> TO <起始值> 这个好象不符合SQL语法的精神,下面的alter才是标准的语感

ALTER SEQUENCE <名字> RESTART WITH <起始值>

GEN_ID (<名字>, <增长值>)

NEXT value FOR <名字>

NEXT value FOR 语法也是标准SQL语法,可以用的序列生成器上:

INSERT INTO EMPLOYEE (ID, NAME)

valueS (NEXT value FOR S_EMPLOYEE, 'John Smith');

3、内建了IIF函数,IIF (<search_condition>, <value1>, <value2>),作为case的快捷方式。

4、ROWS 语法,特别适合分页使用

SELECT ...

[ORDER BY <expr_list>]

ROWS <expr1> [TO <expr2>]

还有类似的语法,与上述ROWS类似的语句是:

FIRST (<expr2>-<expr1>+1) SKIP (<expr1> - 1)

5、EXECUTE BLOCK 语句

这个语句相当于动态建立与执行一个存储过程。或者说动态执行一个类似于存储过程的语句块。

SQL语言的扩展语句 EXECUTE BLOCK 使得在 SELECT 语句规范中可以使用"动态 PSQL"。它有这样的效果,如果是存储过程中的话,将允许一个PSQL自包含代码动态SQL语句中执行。

语法格式:

EXECUTE BLOCK [ (param datatype = ?, param datatype = ?, ...) ]

[ RETURNS (param datatype, param datatype, ...) }

AS

[DECLARE VARIABLE var datatype; ...]

BEGIN

...

END

例如:

EXECUTE BLOCK (X INTEGER = :X)

RETURNS (Y VARCHAR)

AS

DECLARE V INTEGER;

BEGIN

INSERT INTO T(...) valueS (... :X ...);

SELECT ... FROM T INTO :Y;

SUSPEND;

END

6、COMMENT 语句

COMMENT 语句,用来设置元数据描述,这个非常有意思。

语法格式:

COMMENT ON DATABASE IS {'txt'|NULL};

COMMENT ON <basic_type> name IS {'txt'|NULL};

COMMENT ON COLUMN tblviewname.fieldname IS {'文字内容'|NULL};

COMMENT ON PARAMETER procname.parname IS {'txt'|NULL};

7、衍生表

MS MSQL 叫在线视图吧,语法类似于:

select * from (select * from tbl) as a inner join tbl2 b on a.id=b.id

查询结果作为表来使用。

8、FB2.0 发布时的文档吧,这里有个链接!http://www.mesig.com/forum/th-abb-1

Firebird数据库相关备忘录的更多相关文章

  1. Firebird数据库相关操作

    Firebird常用SQL 一.分页写法小例: 1 select first 10 templateid,code,name from template ; 2 select first 10 ski ...

  2. python面试题包含基础和Linux操作以及数据库相关

    今天面试了一家公司,感觉表现的不是很好,记录一下面试的试题. python基础部分 python 是一门什么样的语言面向对象的语言有那些,python的面向对象和Java面向对象的区别 Python是 ...

  3. Android数据库相关整理

    今天对Android中数据库相关的操作和代码做了一个整理,便于自己之后的查阅.主要内容有: 1.原生数据库写法 2.终端进sqlite的操作 3.第三方库 4.事务处理 5.权限和路径 一.原生数据库 ...

  4. MySQL查看数据库相关信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令   1:查看显示所有数据库 mysql> show databases ...

  5. sqlite数据库相关总结

    1. sqlite是轻量型.关系型管理系统,是嵌入式的,占用资源低.可移植性强,比mySql处理速度快,现在主流的版本是sqlite3 2. sqlite中的数据类型有TEXT(字符串,采用UTF-8 ...

  6. Atitit  基于meta的orm,提升加速数据库相关应用的开发

    Atitit  基于meta的orm,提升加速数据库相关应用的开发 1.1. Overview概论1 1.2. Function & Feature功能特性1 1.2.1. meta api2 ...

  7. 使用SQLAlchemy对Firebird数据库进行操作

    来这个公司已经一周了,度过了开始的无聊日子准备正式准备做点东西了,这几天接触了一下文件数据库InterBase,尝试在Ubuntu上连接其开源版本Firebird,因为公司使用的是SQLAlchemy ...

  8. 阿里云OneinStack数据库相关

    阿里云OneinStack数据库相关必须进入oneinstack目录下执行相关命令 ===================================源码安装目录: Nginx:/usr/loca ...

  9. oschina数据库相关

    数据库相关 110数据库服务器 233NoSQL数据库 18MySQL衍生版 6开源XML数据库 311数据库管理工具 117数据库调整和优化 274数据库驱动程序 41数据库建模

随机推荐

  1. PHP面向对象(二)--构造函数与析构函数

    一.构造方法: 构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作. 1.构造方法和其他函数一样,可以传递参数,可以设定参数默认值. 2.构造方法可以调用属性,也可以调用方法 ...

  2. 【阿里云产品公测】在Laravel4框架中使用阿里云OCS缓存

    作者:阿里云用户 supechina Laravel 是我最近用得非常多而且越用就越喜欢的一款PHP框架,由于没有向下兼容的历史包袱,完全面向对象的风格,借助 Facades 优雅的 IoC Cont ...

  3. C#泛型(C#_编程指南)CSDN学习整理笔记

    1.1. 泛型概述 2.0版C#语言和公共语言运行时(CLR)中增加了泛型.泛型将类型参数的概念引入.NETFramework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定 ...

  4. Linux文件系统的barrier:启用还是禁用

    大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性.它保护数据不被写入日记.但 是,在许多情况下,我们并不清楚这些barrier是否有用.本文 ...

  5. 解决eclipse配置Tomcat时找不到server选项

    集成Eclipse和Tomcat时找不到server选项: 按照网上的步骤如下: 在Eclipse中,窗口(window)——首选项(preferences)——服务器(Server)——运行时环境( ...

  6. java多线程之Future和FutureTask

    Executor框架使用Runnable 作为其基本的任务表示形式.Runnable是一种有局限性的抽象,然后可以写入日志,或者共享的数据结构,但是他不能返回一个值. 许多任务实际上都是存在延迟计算的 ...

  7. H5入门-xhtml+css2-第01节

    <!-- 声明版本号,DOCTYPE html是html5版本 --> <!DOCTYPE html> <!-- 声明网页语言 en-英文 zh-中文 zh-cn中文 - ...

  8. 每天一道LeetCode--344. Reverse String

    Write a function that takes a string as input and returns the string reversed. Example:Given s = &qu ...

  9. 解决ashx文件下的Session“未将对象引用设置到对象的实例”

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using PPT_DAL; ...

  10. 使用vhd灌装系统——测试系统专用

    需要使用工具imagex.exe 一. 创建虚拟磁盘: 1.diskpart 2.create vdisk file=c:\test\leiyue.vhd maximum=20000 [tpye=ex ...