
没考虑效率(oracle),创建表插入数据:
create table test(年级 varchar2(2),
班级 varchar2(4),
学生编号 varchar2(6));
insert into test values ('01','0101',null);
insert into test values ('01','0101',null);
insert into test values ('01','0101',null);
insert into test values ('01','0102',null);
insert into test values ('01','0102',null);
insert into test values ('01','0103',null);
insert into test values ('02','0201',null);
insert into test values ('02','0201',null);
insert into test values ('02','0202',null);
insert into test values ('02','0202',null);
insert into test values ('02','0203',null);
insert into test values ('03','0301',null);
insert into test values ('03','0302',null);
insert into test values ('04','0401',null);
insert into test values ('04','0402',null);
commit;
执行:
update test a set a学生编号=(select brn from(select rowid,年级,班级,班级||substr('0'||row_number() over (partition by 班级 order by rowid),-2) rn from test) b
where arowid=browid);
commit;
执行后结果:
1员工信息表(包括 职务(级别),入职时间(工龄),部门等)
2部门信息表(分组表)
3工时总表(记录每个月的实际出勤数)(员工号,年度,1月工时,2月工时12月工时)
4休假总表(记录各种假的基数,已休数,剩余数)(员工号,年度,年假基数,上年剩余,已休天数,未休天数,病假基数已休天数,未休天数,其它假已休天数)
5 考勤明细表(员工号,考勤日期,工时数)
6 休假明细表(员工 号,休假日期,休假类型,休假小时数)
7 休假类型表
8 工作日表(只需要设置发生状态变化的,周一至周五缺省认为是工作日,周六日为休息日,如10月1日是周一,要设为非工作日,如果刚好是周六,则不需要设置)
9用户表(包括 权限设置等)
创建一个新类,用来存查询的得到的数据。属性与查询结果列数相同
在查询语句返回值里增加时间列。查询之后,给类赋值,然后将类存入链表。
遍历链表,判断月份。
分组处理。
1、 打开PowerDesigner12,在菜单中按照如下方式进行 *** 作file->Reverse Engineer->DataBase
点击后,d出 New Physical Data Model 的对话框,如下图:
2、 在General选项卡中
Model name:模板名字,自己命名。
DMBMS :根据需要选择,我选择的是Microsoft SQL Server 2005
点确定后d出 Database Reverse EngineeringOption 对话框
3、 Selection选项卡中,选中Using a data source选项
注意如果是第一次导入数据,需要你先自己配制ODBC数据源,方法如下:
1)点击下面右侧的数据库连接按钮,d出 Connectto a Data Source 的对话框
2)选中 ODBC machine data source 选项,点击 Modify按钮右边的 Configure 按钮d出Configure Data Connections
4、 在 ODBC Machine Data Sources选项卡下面的工具栏中点击第二个数据库配置按钮(AddData Source(Ctrl+N)) d出创建新数据源窗口,选择文件数据源,选择相应的数据源驱动程序(我选SQl Server),点下一步,给数据源起个名字,选择服务器,下一步,输入相应的密码
1
理解您的数据在设计表之前,应明确您打算如何处理数据,还要了解随着时间的推移数据会发生什么样的变化
您所做的假设将会影响最终的设计
2
您需要什么样的数据设计应用程序时,关键要了解设计的最终结果,以便确保您准备好所有必需的数据并知道其来源
例如,报表的外观、每个数据的来源以及所需的所有数据是否都存在
对项目损失最大的莫过于在项目后期发现重要报表缺少数据
3
明确所需数据的类型和来源知道需要什么样的数据后,就必须确定数据的来源
数据是否从其他数据源中导入?数据是否需要清理或验证?用户是否需要输入数据?明确所需数据的类型和来源是数据库设计的第一步
4
您打算如何处理这些数据?用户是否需要编辑这些数据?如果需要,应如何显示数据以便于用户理解和编辑?有没有验证规则和相关的查找表?要求对编辑和删除保留备份的数据输入有没有相关联的审核问题?需要为用户显示哪些摘要信息?是否需要生成导出文件?了解这些信息后,就可以想象字段之间是如何相互关联的了
5数据之间如何相互关联?将数据分组放入相关字段(例如与客户相关的信息、与发票相关的信息等),每个字段组都代表要建立的表
然后考虑如何将这些表相互关联
例如,哪些表具有一对多关系(例如,一个客户可能持有多张发票)?哪些表具有一对一关系(这种情况下,通常会考虑将其组合到一个表中)?6
随着时间的推移数据会发生什么样的变化?设计表之后,常常会由于没有考虑时间的影响而导致以后出现严重问题
许多表设计在当时使用时效果非常好,但是,常常会因为用户修改数据、添加数据以及随时间的推移而崩溃
开发人员经常会发现需要重新设计表的结构来适应这些变化
表的结构发生变化时,所有相关的内容(查询、窗体、报表、代码等)也必须随之更新
理解并预测数据会随时间推移发生哪些变化,可以实现更好的设计,减少问题的发生
7
学习如何使用查询了解如何分析和管理数据同样很重要
您应该深刻理解查询的工作原理,理解如何使用查询在多个表之间链接数据,如何使用查询对数据进行分组和汇总,以及如何在不需要以规范化格式显示数据时使用交叉表查询
好的数据设计的最终目标就是要平衡两个需要:既要随着时间的推移有效地存储数据,又要轻松地检索和分析数据
理解查询的功能对正确设计表很有帮助
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。
它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。注意:group by 是先排序后分组。
举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人,就要用到分组的技术
selectDepartmentIDas“部门名称”。
COUNT() as“个数” from BasicDepartment group by DepartmentID
这个就是使用了group by +字段进行了分组,其中我们就可以理解为我们按照了部门的名称ID
DepartmentID将数据集进行了分组;然后再进行各个组的统计数据分别有多少;
如果不用count()而用类似下面的语法
selectDepartmentID,DepartmentNamefromBasicDepartmentgroupbyDepartmentID
将会出现错误
消息8120,级别16,状态1,第1行
选择列表中的列“BasicDepartment。DepartmentName”无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
扩展资料
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。
所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
其实微信朋友圈的数据库设计模式无非就是符合了三种设置模式,其中最常用的是第三种。
第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。
第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。
以上就是关于通过Oracle数据库或者Excel实现分组序号全部的内容,包括:通过Oracle数据库或者Excel实现分组序号、求问教务系统SQL数据库 。考勤 请假 节假日之类要怎么设计数据库,(用户,用户中还有分组=部门,然后有)、java sql查询一段数据库数据后 如何按月分组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)