informix数据库获取库下所有表的主键信息的sql

systables:描述数据库中的很张表;
syscolumns :描述数据库中表的列;
sysindexes :描述数据库中列的索引;
sysfragments:存储了分段索引的片段信息;
sysfragauth:表识别列级权限;
sysviews:描述了数据库中定义的每个视图;
sysdpend:描述了视图是如何依赖其他视图和表的;
syssyntable:定义每一个同义词及其所代表的对象;
sysconstraints :记录了加载在数据库表列上的约束;
sysreferences:列出了放置在数据库上的参照约束,它为数据库的每个参照约束建立一行
syscoldepend:记录了涉及检查约束的所有列,包括在约束中每列都会在syscoldepend表中创建一行;
sysprocedures:存放数据库中每个过程的特征;
sysprocplan:装载了过程执行所需的两项内容(执行计划或查询计划、附属列表);
sysprocauth:描述授予存储过程的权限;
systriggers:装载了关于触发器的信息;
sysblobs:确定BLOB列的存储位置;
sysroleauth:描述授予用户的角色;
sysobjstate :存储了关于数据库对象的状态信息;
sysvlolations:违例或诊断表;
sysdefaults:描述数据库中表的列的默认值;

-- 查询库下所有字段的主键信息  不包括 系统表和视图
   select unique
        t.tabname
      , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part1 ) as pk_1
      , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part2 ) as pk_2
      , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part3 ) as pk_3
      , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part4 ) as pk_4
      , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part5 ) as pk_5
      , (select c.colname from syscolumns c where c.tabid = i.tabid and c.colno = i.part6 ) as pk_6
 from sysindexes i , systables t
 where i.tabid = t.tabid and i.idxtype = "U" and  i.idxname in  ( select c.idxname
from sysconstraints c, systables t, outer (sysreferences r, systables t2, sysconstraints c2)
where 
   t.tabid = c.tabid
  and r.constrid = c.constrid
  and t2.tabid = r.ptabid
  and c2.constrid = r.constrid
  and  c.constrtype = "P"  )
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库的分类   模糊数据库   指能够处理模糊数据的数据库。一般的数据库都是以二直逻辑和精确的数据工具为基础的,不能示许多模糊不清的事情。随着模糊数学理论体系的建立,人们可以用数量来描述模糊事件并能进行模糊运算。这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而形成模糊数据库。模糊数据库研究主要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的示主要有模糊区间数、模糊中心数、模糊集合数和隶属函数等。   统计数据库   管理统计数据的数据库系统。这类数据库包含有大量的数据记录,但其目的是向用户提供各种统计汇总信息,而不是提供单个记录的信息。   网状数据库   处理以记录类型为结点的网状数据模型的数据库。处理方法是将网状结构分解成若干棵二级树结构,称为系。系类型是二个或二个以上的记录类型之间联系的一种描述。在一个系类型中,有一个记录类型处于主导地位,称为系主记录类型,其它称为成员记录类型。系主和成员之间的联系是一对多的联系。网状数据库的代是DBTG系统。1969年美国的CODASYL组织提出了一份“DBTG报告”,以后,根据DBTG报告实现的系统一般称 为DBTG系统。现有的网状数据库系统大都是采用DBTG方案的。DBTG系统是典型的三级结构体系:子模式、模式、存储模式。相应的数据定义语言分别称为子模式定义语言SSDDL,模式定义语言SDDL,设备介质控制语言DMCL。另外还有数据操纵语言DML。   演绎数据库   是指具有演绎推理能力的数据库。一般地,它用一个数据库管理系统和一个规则管理系统来实现。将推理用的事实数据存放在数据库中,称为外延数据库;用逻辑规则定义要导出的事实,称为内涵数据库。主要研究内容为,如何有效地计算逻辑规则推理。具体为:递归查询的优化、规则的一致性维护等。   Access数据库   美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。其主要特点如下:   (1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。   (2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。   (3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报,可视性好。   (4)作为Office套件的一部分,可以与Office集成,实现无缝连接。   (5)能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。   Informix数据库   美国InfomixSoftware公司研制的关系型数据库管理系统。InformixInformix-SE和Informix-Online两种版本。Informix-SE适用于UNIX和WindowsNT平台,是为中小规模的应用而设计的;Informix-Online在UNIX操作系统下运行,可以提供多线程服务器,支持对称多处理器,适用于大型应用。   Informix可以提供面向屏幕的数据输入询问及面向设计的询问语言报告生成器。数据定义包括定义关系、撤销关系、定义索引和重新定义索引等。Informix不仅可以建立数据库,还可以方便地重构数据库,系统的保护措施十分健全,不仅能使数据得到保护而不被权限外的用户存取,且能重新建立丢失了的文件及恢复被破坏了的数据。其文件的大小不受磁盘空间的限制,域的大小和记录的长度均可达2K。采用加下标顺序访问法,Informix与COBOL软件兼容,并支持C语言程序。 Informix可移植性强、兼容性好,在很多微型计算机和小型机上得到应用,尤其适用于中小型企业的人事、仓储及财务管理。   Orcale数据库   美国Orcale公司研制的一种关系型数据库管理系统,是一个协调服务器和用于支持任务决定型应用程序的开放型RDBMS。它可以支持多种不同的硬件和操作系统平台,从台式机到大型和超级计算机,为各种硬件结构提供高度的可伸缩性,支持对称多处理器、群集多处理器、大规模处理器等,并提供广泛的国际语言支持。 Orcale是一个多用户系统,能自动从批处理或在线环境的系统故障中恢复运行。系统提供了一个完整的软件开发工具Developer2000,包括交互式应用程序生成器、报打印软件、字处理软件以及集中式数据字典,用户可以利用这些工具生成自己的应用程序。Orcale以二维的形式示数据,并提供了SQL(结构式查询语言),可完成数据查询、操作、定义和控制等基本数据库管理功能。Orcale具有很好的可移植性,通过它的通信功能,微型计算机上的程序可以同小型乃至大型计算机上的Orcale,并且能相互传递数据。另外Orcale还具有与C语言的接电子格、图形处理等软件。 Orcale属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统。   DB2数据库   IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。   SQLServer数据库   美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。 其主要特点如下:   (1)高性能设计,可充分利用WindowsNT的优势。   (2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。   (3)强壮的事务处理功能,采用各种方法保证数据的完整性。   (4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。   Sybase数据库   美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。   FoxPro数据库   最初由美国Fox公司1988年推出,1992年Fox公司被Microsoft公司收购后,相继推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了较大的提高。 FoxPro2.5、2.6分为DOS和Windows两种版本,分别运行于DOS和Windows环境下。FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列框和文本框等控件,进一步提高了系统的开发能力。   什么是数据库的主码(主键)?   能够唯一示数据中的每个记录的【字段】或者【字段】的组合就称为主码。   什么是数据库?   数据数据库中一个非常重要的对象,是其他对象的基础。没有数据,关键字、主键、索引等也就无从谈起。在数据库画板中可以显示数据库中的所有数据(即使不是用PowerBuilder创建的),创建数据,修改的定义等数据数据库中一个非常重要的对象,是其他对象的基础。没有数据,关键字、主键、索引等也就无从谈起。在数据库画板中可以显示数据库中的所有数据(即使不是用PowerBuilder创建的),创建数据,修改的定义等
关系数据库 关系数据库概述 美国IBM公司的E.F.Codd 1970年提出关系数据模型 关系数据库应用数学方法来处理数据库中的数据 典型的实验系统: System R、University INGRES 典型的应用系统: ORACLE、SYBASE、INFORMIX、IBM DB2 关系数据模型 关系模型的数据结构非常简单,只包含单一的数据结构即关系。(我们称为二维) 二维格(包含 行和列。每一列的第一行为该列的属性) 基本术语: (Table)也称为关系,是一个二维的数据结构,它由名、构成的各个列(如学号 、姓名等)及若干个行数据(各个学生的具体信息)组成。每个有一个唯一的名, 中每一行数据描述一条具体的记录值,如一个学生的基本信息。 关系(Relation)一个关系逻辑上对应一张二维,可以为每个关系取一个名称进行标 识。 列(Column)中的列,也称作字段(Field)或属性(Attribute)。中每一列有一 个名称,称为列名、字段名或属性名,每一列示实体的一个属性,具有相同的数据类 型 属性(Attribute)中的一列即为一个属性,给每个属性起一个名称即属性名。与之同 义的术语是"列"。中属性的个数称为关系的元或度。列的值称为属性值;属性值的取 值范围称为值域。 行(Row)中的行也称为元祖(Tuple)或记录(Record) 元祖(Tuple)中的一行即为一个元祖。 分量(Component)元祖中的一个属性值,称为分量 码或键(Key)如果在一个关系中,存在这样的属性(或属性组),使得在该关系的任何 一个关系状态中的两个元祖,在该属性(或属性组)上值的组合都不相同,即这些属性 (或属性组)的值都能用来唯一标识该关系的元祖,则称这些属性(或属性组)为该关 系的码或键 超码或超键(Super Key)如果在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键 为该关系的超码或超键。 候选码或候选键(Candidate Key)如果在关系的一个码或键中,不能从中移去任何一个属性,否则它就不是这个关系 的码或键,则称这样的码或键为该关系的候选码或候选键。 码:1、超码、候选码。候选码并不是码,还有超码 主码或主键(Primary Key)在一个关系的若干个候选码或候选键中指定一个用来唯一标识关系的元祖,则称这 个被指定的候选码或候选键为该关系的主码或主键。 全码或全键(All- Key)一个关系模式的所有属性集合是这个关系的主码或主键,则称这样的主码或主键为 全码或全键 主属性(Primary Attribute)和非主属性(Nonprimary Attribute)关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何 一个候选码中的属性称为非主属性或非码属性 外码或外键(Foreign Key)当关系中的某个属性(或属性组)不是这个关系的主码或候选码,而是另一关系的 主码时,称该属性(或属性组)为这个关系的外码或外键 参照关系(Referencing Relation)和被参照关系(Referenced Relation)参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联 的两个关系。以外码作为主码的关系称为参照关系;外码所在的关系称为参照关系。被 参照关系与参照关系是通过外码相联系的,这种联系通常是一对多的联系 域(Domain)示属性的取值范围 数据类型(Data Type)中每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据。每 个字段示同一类信息,具有相同的数据类型。 关系模式(Relation Schema)同数据模型一样,数据库也有"型"(Type)和"值"(value)之分。在关系数据 库中,关系模型是型,关系是值,即关系模式是对关系的描述。关系模式是静态的、稳 定的,而关系是动态的、随时间不断变化的。 例子:名(值1,值2,值3) 关系数据库(Relation DataBase)是以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数 据库,其数据库操作建立在关系代数的基础上。 关系(1:1,1:N,N:M) 基本的关系操作 查询 选择、投影、连接、除、并、交、差、笛卡尔积 数据更新 插入、删除、修改 查询达能力很强、是其中最主要的部分 关系操作的特点 集合操作方式,即操作的对象和结果都是集合。 关系数据语言的分类 关系操作的能力可以用两种方式来示:代数方式和逻辑方式。 代数方式主要有关系代数,它是通过对关系的操作查询要求的方式。 逻辑方式主要有关系演算,它是用谓词来查询要求的方式。 具有关系代数和关系演算双重特点的语言(典型代SQL) ---------------------
第一节 数据库设计 一、数据库总体设计 本系统采用关系型数据库模式,因此数据库由若干个二维(即数据文件)构成。本 系统的数据文件全为数据数据。数据的保存方法有很多种,最长用的方式是使用DBMS(数 据库管理系统)。 市场上流行的 DBMS 主要有 Oracle、SYBASE、MS SQL Server、DB2、Informix 等,而 MS SQL Server 可作为中小型数据管理系统的首选。根据以上分析,本系统后台数据库决定采用 MS SQL Server 为后台数据库。 本系统的数据主要由两个部分组成:系统和功能。 系统是该系统中存储基本数据信息,例如:考生信息(tb_Student)、管理员 信息(tb_manager)。 功能是系统为了完成一定的功能,要求把一定的数据信息存储在数据库中,这就需 要专门新建来存储相应信息。例如:、课程信息(tb_Lesson)、试题信息(tb_ Questions)、考生成绩(tb_StuResult)、套题(tb_TaoTi)等。 二、数据库概念设计 根据对系统所做的需求分析和总体设计,可以规划出要使用的数据库实体分别为考生 信息实体、管理员信息实体、课程信息实体、套题实体、考试题目实体和考生成绩实体 。 1、考生信息实体: 考生信息实体包括编号、姓名、密码、性别、注册时间、提示问题、问题答案、专业 和身份证属性。 2、套题实体: 套题实体包括编号、名称、所属课程和添加时间等属性。 3、考试题目实体: 考试题目实体包括编号、问题类型、所属课程、所属套题、选项A、选项B、选项C、 选项D、添加时间、正确答案和备注等属性。 三、数据库逻辑设计 根据概念设计,可以创建与实体对应的数据和关系。本系统共包含6张数据3.1 数据库设计所需的 "名 "注释 " "tb_Lesson "课程 " "tb_manager "管理员 " "tb_Questions "试题 " "tb_Student "考生 " "tb_StuResult "考试成绩 " "tb_TaoTi "套题 " 各数据的结构: 1.名称:管理员信息 标识:tb_manager 数据来源:前台页面取得。 3.2管理员信息 "字段名"数据类型及长度"说明 "备注 " "ID "Bigint(8) "准考证号码"主键 " "Name "Varchar(30) "姓名 "不允许为空" "PWD "Varchar(30) "密码 "不允许为空" 图3.4 管理员信息 2.名称:考生信息 标识:tb_Student 数据来源:前台页面取得。 JSP在线考试系统--9 2009年12月17日 星期四 13:53 "3.3考生信息 " "字段名 " "数据类型及长度 " "说明 " "备注 " " " "ID " "Varchar(16) " "准考证号 " "主关键字 " " " "Name " "Varchar(20) " "姓名 " "不允许为空 " " " "Pwd " "Varchar(20) " "密码 " "不允许为空 " " " "Sex " "Varchar(2) " "性别 " "不允许为空 " " " "Jointime " "Datetime(8) " "注册时间 " "不允许为空 " " " "Question " "Varchar(50) " "密码提示问题 " "不允许为空 " " " "Answer " "Varchar(50) " "密码回答答案 " "不允许为空 " " " "Profession " "Varchar(30) " "专业 " "允许为空 " " " "cardNo " "Varchar(18) " "身份证号码 " "不允许为空 " " " " " "图3.5 考生信息 " "3.考生成绩 " "标识:tb_StuResult " "数据来源:前台页面取得。 " "3.4考生成绩 " "字段名 " "数据类型及长度 " "说明 " "备注 " " " "ID " "Bigint(8) " "管理员账号 " "主关键字 " " " "Stuid " "Varchar(16) " "准考证号 " "不允许为空 " " " "Whichlesson " "Varchar(60) " "所属课程 " "不允许为空 " " " "Ressingle " "Varchar(4) " "单选题成绩 " "不允许为空 " " " "Resmore " "Datetime(4) " "多选题成绩 " "不允许为空 " " " "Restotal " "Varchar(4) " "总成绩 " "允许为空 " " " "Jointime

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值