Firebird数据库相关备忘录
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数据库相关备忘录的更多相关文章
- Firebird数据库相关操作
Firebird常用SQL 一.分页写法小例: 1 select first 10 templateid,code,name from template ; 2 select first 10 ski ...
- python面试题包含基础和Linux操作以及数据库相关
今天面试了一家公司,感觉表现的不是很好,记录一下面试的试题. python基础部分 python 是一门什么样的语言面向对象的语言有那些,python的面向对象和Java面向对象的区别 Python是 ...
- Android数据库相关整理
今天对Android中数据库相关的操作和代码做了一个整理,便于自己之后的查阅.主要内容有: 1.原生数据库写法 2.终端进sqlite的操作 3.第三方库 4.事务处理 5.权限和路径 一.原生数据库 ...
- MySQL查看数据库相关信息
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases ...
- sqlite数据库相关总结
1. sqlite是轻量型.关系型管理系统,是嵌入式的,占用资源低.可移植性强,比mySql处理速度快,现在主流的版本是sqlite3 2. sqlite中的数据类型有TEXT(字符串,采用UTF-8 ...
- Atitit 基于meta的orm,提升加速数据库相关应用的开发
Atitit 基于meta的orm,提升加速数据库相关应用的开发 1.1. Overview概论1 1.2. Function & Feature功能特性1 1.2.1. meta api2 ...
- 使用SQLAlchemy对Firebird数据库进行操作
来这个公司已经一周了,度过了开始的无聊日子准备正式准备做点东西了,这几天接触了一下文件数据库InterBase,尝试在Ubuntu上连接其开源版本Firebird,因为公司使用的是SQLAlchemy ...
- 阿里云OneinStack数据库相关
阿里云OneinStack数据库相关必须进入oneinstack目录下执行相关命令 ===================================源码安装目录: Nginx:/usr/loca ...
- oschina数据库相关
数据库相关 110数据库服务器 233NoSQL数据库 18MySQL衍生版 6开源XML数据库 311数据库管理工具 117数据库调整和优化 274数据库驱动程序 41数据库建模
随机推荐
- Hadoop学习笔记(2) ——解读Hello World
Hadoop学习笔记(2) ——解读Hello World 上一章中,我们把hadoop下载.安装.运行起来,最后还执行了一个Hello world程序,看到了结果.现在我们就来解读一下这个Hello ...
- Oracle基础 (十二)数学函数
数学函数: ABS(n):求绝对值 ),) FROM DUAL; --获取15的绝对值 结果:, BITAND(X,Y):返回X,Y进行位与(AND)的运算结果 ,), BITAND(,), BITA ...
- css 所有选择器
选择器 例子 例子描述 CSS .class .intro 选择 class="intro" 的所有元素. 1 #id #firstname 选择 id="firstna ...
- 常用排序算法之JavaScript实现
1.插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从 后向前扫描,找到相应位置并插入 ...
- 剑指Offer27 数组中超过一半的数
/************************************************************************* > File Name: 27_MoreTh ...
- codeforces 675B B. Restoring Painting(暴力枚举)
题目链接: B. Restoring Painting time limit per test 1 second memory limit per test 256 megabytes input s ...
- 转:Android中Context详解 ---- 你所不知道的Context
转:http://blog.csdn.net/qinjuning/article/details/7310620 转:http://blog.csdn.net/lmj623565791/article ...
- 自定义UISearchDisplayController中搜索到结果的cell的位置
#pragma mark - UISearchBarDelegate//当搜索文本被改变的时候调用 - (void)searchBar:(UISearchBar *)searchBar textDid ...
- css中常用的几种居中方法
在前端面试中,大都会问你div居中的方法: 文笔不好,就随便寥寥几句话概括了, 不过以后文笔肯定会变得更好一些的. 今天我们就细数一下几种方法: 1,使用position:absolute,设置lef ...
- 【转载】Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
http://blog.csdn.net/congcong68/article/details/41113239 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及 ...