Firebird常用系统表Sql语句

 

--得到数据库的所有者名称
SELECT distinct RDB$OWNER_NAME AS
DATABASE_OWNER
FROM RDB$RELATIONS
WHERE (RDB$SYSTEM_FLAG =
1);

--根据表名得到表的主键
SELECT RC.RDB$CONSTRAINT_NAME AS CONSTRAINT_NAME,
I.RDB$RELATION_NAME AS TABLE_NAME,
S.RDB$FIELD_NAME AS
COLUMN_NAME
FROM RDB$RELATION_CONSTRAINTS RC
LEFT JOIN RDB$INDICES I ON

  (I.RDB$INDEX_NAME = RC.RDB$INDEX_NAME)
LEFT JOIN RDB$INDEX_SEGMENTS S
ON
  (S.RDB$INDEX_NAME = I.RDB$INDEX_NAME)
WHERE (RC.RDB$CONSTRAINT_TYPE
= 'PRIMARY KEY')
AND (I.RDB$RELATION_NAME =
'COUNTRY')

---根据表名得到其相关的依赖.
SELECT RDB$DEPENDENT_NAME AS
DEPENDENT_NAME,
RDB$DEPENDED_ON_NAME AS DEPENDS_ON,
RDB$FIELD_NAME AS
FIELD_NAME,
RDB$DEPENDENT_TYPE DEPENDENT_TYPE,
  CASE
   WHEN
RDB$DEPENDENT_TYPE = 0 THEN 'TABLE'
   WHEN RDB$DEPENDENT_TYPE = 1 THEN
'VIEW'
   WHEN RDB$DEPENDENT_TYPE = 2 THEN 'TRIGGER'
   WHEN
RDB$DEPENDENT_TYPE = 3 THEN 'COMPUTED'
   WHEN RDB$DEPENDENT_TYPE = 4 THEN
'VALIDATION'
   WHEN RDB$DEPENDENT_TYPE = 5 THEN 'PROCEDURE'
   WHEN
RDB$DEPENDENT_TYPE = 6 THEN 'EXPRESSION_INDEX'
   WHEN RDB$DEPENDENT_TYPE = 7
THEN 'EXCEPTION'
   WHEN RDB$DEPENDENT_TYPE = 8 THEN 'USER'
   WHEN
RDB$DEPENDENT_TYPE = 9 THEN 'FIELD'
   WHEN RDB$DEPENDENT_TYPE = 10 THEN
'INDEX'
   WHEN RDB$DEPENDENT_TYPE = 14 THEN 'GENERATOR'
   ELSE
'UNKNOWN'
   END AS DEPENDENT_TYPE_STR,
  RDB$DEPENDED_ON_TYPE AS
DEPEND_ON_TYPE,
  CASE
   WHEN RDB$DEPENDED_ON_TYPE = 0 THEN
'TABLE'
   WHEN RDB$DEPENDED_ON_TYPE = 1 THEN 'VIEW'
   WHEN
RDB$DEPENDED_ON_TYPE = 2 THEN 'TRIGGER'
   WHEN RDB$DEPENDED_ON_TYPE = 3 THEN
'COMPUTED'
WHEN RDB$DEPENDED_ON_TYPE = 4 THEN 'VALIDATION'
   WHEN
RDB$DEPENDED_ON_TYPE = 5 THEN 'PROCEDURE'
   WHEN RDB$DEPENDED_ON_TYPE = 6
THEN 'EXPRESSION_INDEX'
   WHEN RDB$DEPENDED_ON_TYPE = 7 THEN
'EXCEPTION'
   WHEN RDB$DEPENDED_ON_TYPE = 8 THEN 'USER'
   WHEN
RDB$DEPENDED_ON_TYPE = 9 THEN 'FIELD'
   WHEN RDB$DEPENDED_ON_TYPE = 10 THEN
'INDEX'
   WHEN RDB$DEPENDED_ON_TYPE = 14 THEN 'GENERATOR'
   ELSE
'UNKNOWN'
   END AS DEPENDS_ON_TYPE_STR
FROM RDB$DEPENDENCIES WHERE
RDB$DEPENDED_ON_NAME='JOB'
ORDER BY
RDB$DEPENDENT_NAME

--根据索引名得到表名和与及其索引相关的列
SELECT I.RDB$RELATION_NAME AS
TABLENAME,
S.RDB$FIELD_NAME AS FIELDNAME
FROM RDB$INDICES I
LEFT JOIN
RDB$INDEX_SEGMENTS S ON
  (S.RDB$INDEX_NAME = I.RDB$INDEX_NAME)
WHERE
(I.RDB$INDEX_NAME = 'NAMEX');

--根据表名得到其上所有的索引
SELECT I.RDB$INDEX_NAME
AS FKINDEXNAME,
I.RDB$RELATION_NAME AS TABLENAME,
S.RDB$FIELD_NAME AS
FIELDNAME
FROM RDB$INDICES I
LEFT JOIN RDB$INDEX_SEGMENTS S ON
(S.RDB$INDEX_NAME = I.RDB$INDEX_NAME)
WHERE I.RDB$RELATION_NAME =
'CUSTOMER'
AND (NOT EXISTS(SELECT 1
  FROM RDB$RELATION_CONSTRAINTS R
WHERE R.RDB$INDEX_NAME = I.RDB$INDEX_NAME))

--得到所有的用户表
SELECT
RDB$RELATION_NAME AS TABLE_NAME
FROM RDB$RELATIONS
WHERE RDB$SYSTEM_FLAG =
0
AND RDB$VIEW_SOURCE IS NULL;

--根据表名与字段得到索引
SELECT
I.RDB$INDEX_NAME AS FKINDEXNAME,
I.RDB$RELATION_NAME AS
TABLENAME,
S.RDB$FIELD_NAME AS FIELDNAME
FROM RDB$INDICES I
LEFT JOIN
RDB$INDEX_SEGMENTS S ON (S.RDB$INDEX_NAME = I.RDB$INDEX_NAME)
WHERE
I.RDB$FOREIGN_KEY IS NOT NULL
AND I.RDB$RELATION_NAME = 'CUSTOMER'
AND
S.RDB$FIELD_NAME = 'COUNTRY';

--根据表名得到列信息
SELECT RF.RDB$FIELD_NAME AS
FieldName,
T.RDB$TYPE_NAME AS DataType,
F.RDB$FIELD_LENGTH AS
FieldLength,
RF.RDB$NULL_FLAG AS AllowNulls,
CS.RDB$DEFAULT_COLLATE_NAME
AS CharacterSet,
RF.RDB$DEFAULT_SOURCE AS
Defaultvalue,
F.RDB$COMPUTED_SOURCE AS
ComputedSource,
F.RDB$FIELD_SUB_TYPE AS SubType,
F.RDB$FIELD_PRECISION
AS FieldPrecision
FROM RDB$RELATION_FIELDS RF
LEFT JOIN RDB$FIELDS F ON
(F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE)
LEFT JOIN RDB$TYPES T ON
(T.RDB$TYPE = F.RDB$FIELD_TYPE)
LEFT JOIN RDB$CHARACTER_SETS CS ON
(CS.RDB$CHARACTER_SET_ID = F.RDB$CHARACTER_SET_ID)
WHERE RF.RDB$RELATION_NAME
= 'EMPLOYEE' AND
T.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
ORDER BY
RF.RDB$FIELD_POSITION;

--检测一个列是否存在,结果为1存在,不为1不存在
SELECT
COUNT(RF.RDB$FIELD_NAME)
FROM RDB$RELATION_FIELDS RF
LEFT JOIN RDB$FIELDS
F ON (F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE)
LEFT JOIN RDB$TYPES T ON
(T.RDB$TYPE = F.RDB$FIELD_TYPE)
WHERE RF.RDB$RELATION_NAME = 'EMPLOYEE'
AND
T.RDB$FIELD_NAME = 'RDB$FIELD_TYPE' AND
RF.RDB$FIELD_NAME =
'EMP_NO'

--检测一个表是否存在
SELECT COUNT(RDB$RELATION_NAME)
  FROM
RDB$RELATIONS
  WHERE (RDB$RELATION_NAME =
'CUSTOMER')
   AND RDB$VIEW_SOURCE IS NULL;

--得到数据库中所有的视图
SELECT
RDB$RELATION_NAME
FROM RDB$RELATIONS
WHERE RDB$FLAGS = 1
AND
RDB$VIEW_SOURCE IS NOT NULL;

--得到所有的系统表
SELECT
RDB$RELATION_NAME
FROM RDB$RELATIONS
WHERE (RDB$FLAGS = 0 OR RDB$FLAGS IS
NULL)
AND RDB$VIEW_SOURCE IS NULL;
全能批量打印是一款综合性的文件批量打印软件,可打印AutoCAD、Office Word/Excel/PPT、Wps Word/Excel/PPT、PDF、XPS、图片、TXT文件,程序设置简单、操作便捷,方便打印人员快速打印文件。 Windows操作平台支持:WinXP~Windows10版本(32位、64位)及对应的服务器系统。 AutoCAD版本支持:2006及以上各版本(含通用版、机械版、建筑版等)。图框可为块(包括外部参照)、矩形多段线、矩形直线段、无图框。程序能自动快速准确识别各类型图框,并能自动根据图框尺寸选择不同纸张图幅打印(如A2,A3,A2加长等),以满足各种打印人员的需要。程序能自动识别图框旋角度,自动设置打印比例,并可实现按图框配置(范围内文字、图框属性)顺序打印,在AutoCAD内外均可实现批量打印。 文档(Word、WPS)文件打印支持Microsoft Office及WPS各版本文件,根据需要设置打印页码范围,选择打印机后可直接进行打印。 表格(Excel、ET)文件打印支持Microsoft Office及WPS各版本文件,可根据需要选择需要打印的Sheet以及页码范围。 文稿(PPT、DPS)文件打印支持Microsoft Office及WPS各版本文件,根据需要设置打印页码范围,选择打印机后可直接进行打印PDF文件可自动识别标准纸张, 根据需要设置纸张和打印页码范围,选择打印机后可直接进行打印,无需安装PDF阅读器。 图片、TXT文件根据需要设置纸张,选择打印机后可直接进行打印。 【软件特点】 AutoCAD打印 1、打印纸张支持加长图框; 2、智能识别无图框文件; 3、可自动识别标准宽度图框打印到不同纸张; 4、可调整图框打印比例及图框打印边距设置适应纸张可打印区域; 5、支持多种图框样式,满足不同需求,可通过选择不同的识别模式适应任意图框大小的识别; www点setetn点 com 6、支持Adobe PDF直接保存至文件; 7、支持图框按配置进行排序(可进行多文件全部排序)。 文档、表格、文稿、PDF、XPS、图片、TXT文件打印 1、支持打印机单双面、黑白彩色设置; 2、支持Adobe PDF直接保存至文件; 3、表格文件打印支持多种打印范围(当前表、所有表、所有未隐藏表、有颜色表名工作表、依据工作表名过滤); 4、PDF、XPS打印支持自动识别标准纸张。 联系QQ920832078
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值