什么是数据库的完整性约束条件

什么是数据库的完整性约束条件,第1张

数据库完整性(Database

Integrity)是指数据库中数据的正确性和相容性,其目的是防止垃圾数据的进出。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。加在数据库之上的语义约束条件就是数据库完整性约束条件。

完整性约束条件作用对象可以使关系、元组、列三种。

●列约束主要是列的数据类型、取值范围、精度、排序等约束条件。

●元组的约束是元组中各个字段间的联系的约束。

●关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。

完整性约束条件涉及这三类对象,其状态可以是静态的,也可以是动态的。所谓静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件。它是反映数据库状态合理性的约束,这是最重要的一类完整性约束。

动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件。

完整性约束条件可分为以下六类:

●静态列级约束

●静态元组约束

●静态关系约束

●动态列级约束

●动态元组约束

●动态关系约束

1

静态列级约束是对一个列的取值域的说明,包括以下几个方面:

(1)对数据类型的约束,包括数据的类型、长度、单位、精度等;

(2)对数据格式的约束。例如规定日期的格式为YYYY-MM-DD;

(3)对取值范围或取值集合的约束。例如规定学生的成绩取值范围为0~100;

(4)对空值的约束,规定哪些列可以为空值,哪些列不能为空值;

2

静态元组约束就是规定元组的各个列之间的约束关系。例如,订货关系中包含发货量、订货量等列,规定发货量不得超过订货量。

3

静态关系约束是指在一个关系的各个元组之间或者若干关系之间存在的约束。常见的静态约束有:

(1)实体完整性约束;

(2)引用完整性约束;

(3)函数依赖约束;大部分函数依赖约束都在关系模式中定义。

(4)统计约束;即字段值与关系中多个元组的统计值之间的约束关系。例如,规定部门经理的工资不得高于本部门职工平均工资的5倍,不得低于本部门职工平均工资的2倍。

4

动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:

(1)修改列定义时的约束。例如,将允许空值的列改为不允许空值时,如果该列目前已存在空值,则拒绝这种修改。

(2)修改列值时的约束。修改列值时有时需要参照其旧值,并且新旧值之间需要满足某种约束条件。例如,职工调整后的工资不得低于其调整前的原来工资;职工婚姻状态的变化只能是由未婚到已婚、已婚到离异、离异到再婚等几种情况。

5

动态元组约束是指修改元组的值时元组中各个字段间需要满足某种约束条件。例如,职工工资调整时新工资不得低于原工资+工龄15等。

6

动态关系约束是加在关系变化前后状态上的限制条件。例如,在集成电路芯片设计数据库中,一个设计中用到的所有单元的工艺必相同,因此,在更新某个设计单元时,设计单元的新老工艺必须保持一致。

用eclipse

首先在oracle文件下找到jdbc文件,里面的lib文件下有个class12zip

在eclipse里新建个项目,建好后在左边右击那个项目图标,选择属性(最下面的),里面有个java build path,点进去,找到add external jars按键,点一下,把那个class12zip加载进来,然后可以开始写代码了。

我的代码如下:

import javasql;

public class connect {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

try{

ClassforName("oraclejdbcdriverOracleDriver");

}catch(ClassNotFoundException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

Connection con = null;

Statement stmt = null;

ResultSet rs = null;

try{

String url="jdbc:oracle:thin:@服务器ip地址:端口号:数据库名字";

String user="用户名";

String password="密码";

String str="INSERT INTO ZZZ_2 VALUES('041110018','JHDK')";

con = javasqlDriverManagergetConnection(url,user,password);

// 创建状态

stmt = concreateStatement();

// 执行SQL语句,返回结果集

//int rowcount = stmtexecuteUpdate(str);

int j = stmtexecuteUpdate("update ZZZ_2 set NAME='dbt' where ID=21");

int k = stmtexecuteUpdate("delete from ZZZ_2 where ID=41110020");

rs = stmtexecuteQuery("SELECT FROM ZZZ_2");

// 对结果集进行处理

while (rsnext()) {

int id = rsgetInt("ID");

String name = rsgetString("NAME");

//Integer age = rsgetObject("age") == null null : rsgetInt("age");

Systemoutprintln(id + ": " + name);

} }catch(SQLException e){

eprintStackTrace();}

// 释放资源

finally{

try{

rsclose();

}catch(SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

try{

stmtclose();

}catch(SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

try{

conclose();

}catch(SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

}

注意,上面的ip地址什么的要填对,ZZZ_2是我随便建的表,你改成自己的表名就行了

SQL语句只是对数据库进行 *** 作,与用户的交互 *** 作很少,比如窗口、按钮、下拉菜单等等控件。

所以数据库应用程序开发,还需要一门程序数据语言配合数据库开发。比如C,PB等等。

EXCEL数据库管理

任务 在熟悉建立EXCEL数据库和对记录进行基本 *** 作的基础上,初步了解EXCEL的数据库管理功能,掌握如何对记录进行插入、删除、修改、排序、筛选等,体验EXCEL在数据管理功能上的方便与快捷。

1 建立数据库,并对该数据库进行如下几个 *** 作。

提示:选定一行,依次输入字段名,从字段名下一行起依次输入各条记录的值,如图7-1中A2:F12这个区域就是一个数据库,且数据库区域下方最好没有其他数据,否则会带来 *** 作不便。

按如下要求对数据库进行 *** 作:

2 查找学号为20040106的记录,并删除。

提示:选定数据库区域中任意单元格,“记录单” “条件”,打开记录单的条件对话框,在学号栏输入“20040106”,按“下一条”或“上一条”找到记录后单击“删除”按钮删除记录。

3 在最后一条记录后增加一条记录,对应字段值分别为“20040112”,“李利”,“女”,“5”,“3”,“2”。

提示:先单击“新建”按钮打开类似图7-2的新建对话框,输入所有字段值,再单击“新建”,否则不能将数据输入到工作表中。

4 将性别为男的记录筛选出来。

提示:选定数据库区任意单元格后,“数据” “筛选” “自动筛选”,工作表将变成

1 建立图7-4所示的名为“某公司在职人员情况表”的数据库,保存在d:/user目录下自己的文件夹下,文件名为“职工档案xls”。

对上题中建立的数据库做如下 *** 作:

2 用“记录单”的查询功能查找所有姓李的职工。

提示:打开记录单的条件对话框,在姓名栏输入“李”,单击“下一条”或“上一条”按钮。

3 用“记录单”的功能查找工资大于1500的所有职工。

提示:在记录单条件对话框的工资栏中输入“>1500”,查找方法同上题。

4 删除编号为“zg0008”的职工记录,并插入一条记录,该记录的字段值分别为:“zg0020”、“刘柳”,“男”,“31”,“已婚”,“销售部”,“1250”,“2000”。

提示:在记录单对话框中找到编号为“zg0008”的记录并删除;单击新建后先输入所有字段然后再单击新建进行添加。

5 查询所有已婚的职工,要求在工作表中同时显示出来。

提示:可使用“数据”菜单的“筛选”功能,数据库区将只显示已婚的记录。

6 对数据库按工资从低到高进行排序。

1 打开d:/user下自己的文件夹中文件名为“职工档案xls”的数据库,做如下 *** 作。

(1) 查找性别为男且工资大于1500的职工记录。

(2) 利用记录单新建功能在第4条记录之前插入一条记录。

提示:先在第4条记录之前插入一行,然后选择第4条记录之前任意单元格后打开记录单对话框进行添加就可以了。

2 试在一个工作表sheet1中给自己建立一个通讯录,字段名栏如图7-7,以“通讯录xls”为文件名保存在d:\user下自己的文件夹下,并做下面几个 *** 作。

提示:字段名 “关系”表示人与人的关系,一般有:亲戚、朋友、同事、同学等。

(1) 打印一张“关系”字段值为同学的通讯录。

提示:因为通过筛选后数据库区将只显示被筛选出来的记录,且在筛选状态进行打印,将只打印被显示的记录,所以可通过筛选功能实现打印要求。

(2) 若要打印的“关系”字段值为同学的通讯录要求按姓氏排序,该如何 *** 作呢?

提示:先进行筛选,选择数据库区任意单元格后打开排序对话框,进行排序设置,单击“确定”后就可以连接打印机进行打印。

(3) 若要增加一条记录,该如何添加呢?

提示:添加方法一,在EXCEL工作表中直接添加,例如在数据库第二条记录前插入一行,然后输入相关字段值就可以了;方法二,利用“记录单”对话框中“新建”功能进行添加。

(4) 如何以最快的速度删除一条记录呢?

提示:若通讯录中记录很少,可在工作表中直接删除记录;若记录很多,就利用“记录单”对话框的功能进行删除。

1 通过以上的 *** 作,我们已熟悉了EXCEL的数据库功能,若要删除一条记录,我们有几种方法呢?这些方法有哪些优点呢?

2 在数据库中插入一条记录的方法有几种,不同的方法插入记录时对数据库都有哪些要求呢?

3 在排序过程中,为什么有时记录是随关键字(某个字段)整体排序,而有时只对某一列排序呢?我们应该如何 *** 作才能正确排序呢?

4 为什么我们建立EXCEL数据库时,中间不能有空的行与列呢?若数据库中有空行或空列,对记录的 *** 作有无影响呢?如:用记录单的查询功能是否能正确查询到记录呢?

以上就是关于什么是数据库的完整性约束条件全部的内容,包括:什么是数据库的完整性约束条件、对oracle数据库抽取指定条件的数据、SQL开发报表设置查询条件(数据库查询条件)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9474704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存