Interbase/Firebird的SQL语法(收藏)

最近在群里大家突然讨论下fb(firebird)来了,呵,看了一些资料,突然发觉这个东西也蛮好玩的,于是开始大量的查找有关的资料,下面是一 些fb下的sql写法,转自网上,各位朋友将就些看看吧,过几天偶整理好.net下使用fb的demo上来给大家看看吧,到时支持支持吧,呵呵

一、分页写法小例:
  SELECT FIRST 10 templateid,code,name FROM template ;
  SELECT FIRST 10 SKIP 10 templateid,code,name FROM template ;
  SELECT * FROM shop ROWS 1 TO 10;  --firebird2.0支持这种写法

二、显示表名和表结构
  SHOW TABLES ;
     SHOW TABLE tablename;

三、使用ISQL连接数据库
  firebird%92bin>isql -u sysdba -p masterkey
  SQL>CONNECT 'E:companyxmwsoftnewxmwsoftc2dbcts2.fdb';
  或
  SQL>CONNECT 'E:%92'
  CON>USER 'sysdba'
  CONT>PASSWORD 'masterkey';

四、更新字段注释
  UPDATE RDB$RELATION_FIELDS
  SET RDB$DESCRIPTION = '描述信息'
  WHERE (RDB$RELATION_NAME = 'SHOP')
    AND  (RDB$FIELD_NAME = 'CREDIT_BUY')

五、显示字段注释
  SELECT RDB$FIELD_NAME ,RDB$DESCRIPTION
  FROM RDB$RELATION_FIELDS
  WHERE (RDB$RELATION_NAME = 'SHOP')
    AND  (DB$FIELD_NAME = 'CREDIT_BUY')

六、更新表注释
  UPDATE RDB$RELATIONS
  SET RDB$DESCRIPTION = '描述信息'
  WHERE RDB$RELATION_NAME = 'TABLE_NAME';

七、查询所有的表和视图(包括系统表和系统视图)
  SELECT RDB$RELATION_NAME
 
FROM RDB$RELATIONS ;

八、查询所有的用户表和用户视图
  SELECT RDB$RELATION_NAME
  FROM RDB$RELATIONS
  WHERE RDB$SYSTEM_FLAG = 0;

九、查询所有的用户表
  SELECT RDB$RELATION_NAME
  FROM RDB$RELATIONS
  WHERE RDB$SYSTEM_FLAG = 0
    AND RDB$VIEW_BLR IS NULL ;

十、查所有用户表、用户视图所有字段及相关定义
  SELECT
    a.RDB$RELATION_NAME ,
    b.RDB$FIELD_NAME ,
    b.RDB$FIELD_ID ,
    d.RDB$TYPE_NAME ,
    c.RDB$FIELD_LENGTH ,
    c.RDB$FIELD_SCALE
  FROM RDB$RELATIONS a
    INNER JOIN RDB$RELATION_FIELDS b
      ON a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
    INNER JOIN RDB$FIELDS c
      ON b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
    INNER JOIN RDB$TYPES d
      ON c.RDB$FIELD_TYPE = d.RDB$TYPE
  WHERE a.RDB$SYSTEM_FLAG = 0
    AND d.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
  ORDER BY a.RDB$RELATION_NAME , b.RDB$FIELD_ID ;

十一、查找某表的所有字段及相关定义
  SELECT
    A.RDB$FIELD_NAME ,
    B.RDB$FIELD_TYPE ,
    B.RDB$FIELD_LENGTH ,
    B.RDB$FIELD_PRECISION ,
    B.RDB$FIELD_SCALE
  FROM RDB$RELATION_FIELDS A, RDB$FIELDS B
  WHERE A.RDB$RELATION_NAME = 'tablename'
    AND A.RDB$FIELD_SOURCE = B.RDB$FIELD_NAME
  ORDER BY A.RDB$FIELD_POSITION ;

十二、查找某表的主键定义字段
  SELECT A.RDB$FIELD_NAME
  FROM RDB$INDEX_SEGMENTS A, RDB$RELATION_CONSTRAINTS B
  WHERE B.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
    AND B.RDB$RELATION_NAME = 'tablename'
    AND A.RDB$INDEX_NAME = B.RDB$INDEX_NAME
  ORDER BY A.RDB$FIELD_POSITION ;

十三、查找某表的外键定义  
  SELECT
    r1.RDB$CONSTRAINT_NAME ,
    rind.RDB$FIELD_NAME ,
    r2.RDB$RELATION_NAME
  FROM
    RDB$RELATION_CONSTRAINTS r1,
    RDB$RELATION_CONSTRAINTS r2,
    RDB$REF_CONSTRAINTS ref,
    RDB$INDEX_SEGMENTS rind
  WHERE r1.RDB$RELATION_NAME = 'tablename'
    AND r1.RDB$CONSTRAINT_TYPE = 'FOREIGN KEY'
    AND r1.RDB$CONSTRAINT_NAME = ref.RDB$CONSTRAINT_NAME
    AND ref.RDB$CONST_NAME_UQ = r2.RDB$CONSTRAINT_NAME
    AND r1.RDB$INDEX_NAME = rind.RDB$INDEX_NAME ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值