相信明天会更好

Tomorrow will be better

分类为 '数据库' 的文章

数据库中涉及空值的查询例如:select sno,cno from sc where  grade  is  null 这里不能用=代替。 集函数:count(distinct|all *)统计元组个数。count(列名)统计一列中值的个数。sum(列名)、avg(列名)、max(列名)min(列名)。example  select count(distinct sno) from sc where与having的区别在于where是作用于基本表和视图的从中选择满足条件的元组,而having短语作用于组,从中选择满足条件的组 表的自身连接:select  first.cno  second.cpno  from  course  first,   course  second  where  first.cpno=second.cno。 视图是从一个或者几个基本表(或视图)导出的表,它是一个虚表。数据库值存放视图的定义,而不存放视图对应的数据,这些数据仍放在原来的基本表中,如果基本表的数据发生变化,从视图中查询出的 数据也会发生变化。视图一旦被定义也可以和基本表一样被查询、删除,还可以在视图的基础上再定义视图。 视图的建立:create view  视图名[列名]   as  <子查询> [with check option],子查询中可以是任意复杂的select语句,但是不能含有order  by和distinct。其中的with check option 表示对视图进行update、insert、delete时要保证满足视图定义中子查询的条件。 组成视图的属性列名或者全部指定或者全部省略没有第三种情况,若是省略则把子查询中的目标列作为视图的各个属性。但是有一些情况下是必须指定属性列的。a.某个目标列不是单纯的属性名,而是集函数或列表达式。b.多表连接是选出了几个同名的列作为视图的字段。c.需要在视图中为某个列启用新的更合适的名字。

阅读全文 »

  三类完整性约束:实体完整性、参照完整性、和用户定义完整性,前两个是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。   实体完整性规则:如果属性A是基本关系R的主属性,则属性A不能为空。   实体完整性规则规定基本关系的所有主属性都不能去空值,而不仅是主码整体不能取空值。例如学生的选课关系:“选修(学号,课程号,成绩)”中学号、课程号都是主码,则学号和课程号两个属性值都不能为空。 参照完整规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应,则对应R中每个元组在F上的值必须为:空或者是S中某个元组的主码值。 用户定义的完整性就是针对某一具体关系数据库的约束条件。他反应了某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个属性值之间应满足一定的函数关系。某个属性的取值范围在0-100之间等等。

阅读全文 »

今天折腾了一天,总算搞定了这个问题,下面就简单说一下整个过程吧: 上传文件 上传成功以后写到数据库中以备从数据库中读取该文件用</li> 从数据库中读取插入的文件的pid从而获取刚刚插入的文件名</li> 根据已知的文件名读取该文件的内容从而插入到相应的数据库的表中;</li>

阅读全文 »

要想在jsp处理页面的最后给以人性化的提示,比如插入数据库成功、修改成功、等等来通知用户,我们可以在java代码中加入out.println(“alert(‘数据库修改成功!’)”); 如果想要由当前的页面跳转到另一个jsp页面可以用out.println(“window.location=\”../log.jsp\””); 在js中如果要是超链接另一个js的话可以按照如下实现  newRow.cells[2].innerHTML = “<a href=\”javascript:delFile(“+rowSize+”)\”>删除</a>”;

阅读全文 »

因为做得项目中有这个需求,所以就逼着自己试了一会,在许师兄和张师兄的帮助下,终于编译通过了,收获不少啊,首先要确保有相应的api,这里我们用的是java excel的jxl.jar ,把这个包放在应用的lib文件夹下面,然后在处理页面中引用相应的类来为从excel数据表中读取数据做准备,剩下的就是代码实现了,其中关键的代码是  filename=request.getParameter(“url”); Workbook workbook=Workbook.getWorkbook(new File(filename)); Sheet sheet=workbook.getSheet(0); int rows=sheet.getRows(); int columns=sheet.getColumns(); String [] content=new String [100]; for(int i=1;i { for(int j=1;j { Cell cell=sheet.getCell(j,i); content[j]=cell.getContents(); } } 接下来要实现的就是把导出来的数据插入到相应的表中,这里要有一个转换比如说在excel中用汉字实现的而在数据库中是用int型的数字实现的,所以这就要在插入之前先做一下转换,还有一个问题就是要插入的字段在该表中是另一个表的外键例如在excel中存的是一个人的工种名称,但是在这个人的基本信息表中工种名称是以外健形式存在的通过两个表join来获取工种名称,所以在插入之前要把读出的工种名称转换为工种的pid然后插入到数据库中。所有这些都实现了以后就可以使用insert来插入到数据库了。

阅读全文 »

前几天在做项目的时候遇到了在数据库中建立数据表,以前对这个很模糊,经过贾老师的讲解,现在明白了很多了。首先要确定与该模块相关的实体有哪些,分别为这些实体建立一个数据表,然后在确定这些实体之间有没有关系,如果有的话,而且关系不能用实体之间的传递来表示,那么就建立一个关系表,这样数据表的雏形就建好了。 接下来要做的就是处理数据表之间是一对一、一对多、还是多对多的关系,第一个好说,如果是第二种情况,那么我们可以把多的那个数据表的主键在一的数据表中设立相应的外键来实现一对多的情况。如果是第三种情况,那么我们要单独抽出一个数据表来存放 这两个表的主键来解决多对多的情况。

阅读全文 »

 Page 2 of 2 « 1  2