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_r_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 'VALIDATIO
相关文档:
SELECT ID,TITLE,
(SELECT TIMES from CLS_COURSE WHERE CLS_COURSE.ID=CLS_CLASS.COURSEID) AS TIMES,
(SELECT CASE WHEN EXISTS(SELECT * from CLS_ATDC WHERE CLS_ATDC.CLSID=CLS_CLASS.ID ) THEN (SELECT TOP 1 COURSETIME from CLS_ATDC WHERE CLS_ATDC.CLSID=CLS_CLASS.ID ORDER BY COURSETIME DESC) ELSE 0 ......
动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
eg: Select * from tableName
Exec( ......
经典SQL语句
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
//a必须是已经存在的表,但是b可以不存在,当b不存在时,系统会自己创建表b,该方法只会复制表的结构,而不会复制表的数据
法二:select top 0 * int ......
如何用SQL语言选择表中的第二条第三条第N条记录
--ID为唯一性就行了
select top 1 * from table
where ID not in(select top 1 ID from table)--第2条
select top 1 * from table
where ID not in(select top 2 ID from table)--第3条
......
--设置数据库输出,默认为关闭,每次新打开窗口都要重新设置
set serveroutput on
--调用 包 函数 参数
execute dbms_output.put_line('hello world');
--或者用call调用,相当于java中的调试程序打桩
call d ......