firebird

Firebird

特性介绍  firebird是一个全功能的,强大高效的,轻量级,免维护的数据库。它很容易让您从单用户,单数据库升级到企业级的应用。 给中小型企业提供了一个很好的工具,一些

需要小的数据库的软件!


Firebird
是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix 操作系统上,提供了大部分SQL-99标准的功能。
              它既能作为多用户环境下的 数据库服务器运行,也提供嵌入式数据库的实现。

Firebird脱胎于Borland公司的开源版数据库Interbase6.0,是一个完全非商业化的产品,用C和C++开发。由于与interbase的血缘关系,大部分interbase的开发工具可以直接应用到Firebird开发中。Firebird使用Mozilla Public License v.1.1许可证发行。 [1]  
一个firebird 数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个 客户端连结。总之:它是一个开源的,强大的,可以自由使用的数据库(即使是商业上的使用)


FireBird数据库一些问题


1:数据库区分大小写。

2:语句中表名字段等需要加"".

3:数据库中没有自动增长列,创建自动增长列需要在Generactors 下,建立一个生成器,并设置初始值为0或1,或其它数字,然后创建触发器  

       例如:有个表A,表A中有个字段Id,我需要设置该字段为自动增长列实现步骤如下:
           (1):在Generactors 下,建立一个生成器,并设置初始值为0或1
                 create generator gen_A
                 set generator gen_A to 0
                 ☆:注意这两个语句不能同时执行,需单个执行
           (2)创建触发器:点Triggers
                reate trigger trig_A_Id for A
                 active before insert position 0
                as
                begin
                   new.id=gen_id(gen_A,1);
                end
4:  在其它SQL数据库里,有一个 Top n的子句,可以取头n条记录,Firebird不支持这个子句,但是它有更强大的子句:FIREST n SKIP n。
FIRST n表示提取头n条记录,SKIP n 表示从第几条开始提取,比如,我要从学生表里取语文成绩名次在11至15名的学生名单,SQL语句如下:
select first 5 skip 10 SNAME,YUWEN from achieve order by YUWEN desc

SELECT
FIRST 1 SKIP 0 t0."Id", t0."String"
FROM "NullableTypes" AS t0



select * from  "testIndenty" Rows 1 to 10

select first 5 skip 0 * from "testIndenty"



http://dl.pconline.com.cn/download/54351.html

FireBird内置函数使用说明


 
1. COUNT, AVG, MAX, MIN, SUM
说明:通用统计函数,不详细介绍了
2. EXTRACT(timestamp_part FROM value)
说明:EXTRACT(YEAR/MONTHE/DAY/WEEKDAY FROM 字段名)
从日期型字段中分离出年,月,日及一个星期的第几天
3. CAST(value AS datatype)
说明:转换数据类型
4. LOWER() *
说明:返回小写值
5. UPPER()
说明:返回大写值
6. TRIM() *
说明:去除字符串两边的空格


7. SUBSTRING(string FROM pos FOR length)
说明:取字符串子串,注意,第一个字符的位置是1
8. BIT_LENGTH *
说明:返回字符串位(bit)数
9. CHAR_LENGTH/CHARACTER_LENGTH *
说明:返回字符串字符数
10. OCTET_LENGTH *
说明:返回字符串字节数
11. CASE
说明:通过执行外来的一组条件取得相应的返回值
举例

i) 简单
SELECT o.ID, o.Description,
CASE o.Status
WHEN 1 THEN ‘confirmed’
WHEN 2 THEN ‘in production’
WHEN 3 THEN ‘ready’
WHEN 4 THEN ‘shipped’
ELSE ‘unknown status ”’ || o.Status || ””
END
FROM Orders o;
ii) 表达式
SELECT o.ID, o.Description,
CASE
WHEN (o.Status IS NULL) THEN ‘new’
WHEN (o.Status = 1) THEN ‘confirmed’
WHEN (o.Status = 3) THEN ‘in production’
WHEN (o.Status = 4) THEN ‘ready’
WHEN (o.Status = 5) THEN ‘shipped’
ELSE ‘unknown status ”’ || o.Status || ””
END
FROM Orders o;

12. IIF (<search_condition>, <value1>, <value2>)
说明:表达式为真,返回value1否则返回value2
等价于以下语句:

CASE
WHEN <search_condition> THEN <value1>
ELSE <value2>
END

13. NULLIF(V1,V2)
说明:如果V1=V2,返回NULL,否则返回V1
等价于以下语句:

CASE WHEN V1 = V2 THEN NULL ELSE V1 END
举例
UPDATE PRODUCTS
SET STOCK = NULLIF(STOCK,0)

14. COALESCE(V1, V2, …, Vn)
说明:如果V1为Null,返回V2,否则返回V1,
如果 n >= 3, 等于如下case语句:

CASE
WHEN V1 IS NOT NULL THEN V1
ELSE COALESCE (V2,…,Vn)
END
举例
SELECT
PROJ_NAME AS Projectname,
COALESCE(e.FULL_NAME,’[< not assigned >]‘) AS Employeename
FROM
PROJECT p
LEFT JOIN EMPLOYEE e
ON (e.EMP_NO = p.TEAM_LEADER);
SELECT
COALESCE(Phone,MobilePhone,’Unknown’) AS "Phonenumber"
FROM Relations;

15.获当前日期:

select current_date from rdb$database

获当前时间:

select current_time from rdb$database

16.Firebird数据库的取值范围
在其它SQL数据库里,有一个 Top n的子句,可以取头n条记录,Firebird不支持这个子句,但是它有更强大的子句:FIREST n SKIP n。
FIRST n表示提取头n条记录,SKIP n 表示从第几条开始提取,比如,我要从学生表里取语文成绩名次在11至15名的学生名单,SQL语句如下:

select first 5 skip 10 SNAME,YUWEN from achieve order by YUWEN desc


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值