使用java实现数据库查询 1~3章

1.1为什么需要数据库设计?

1、为了避免数据库数据冗余等问题,对性能造成影响,需要进行数据库设计。
2、作用:
(1):节省数据的存储空间
(2):能够保证数据的完整性——(完整性指准确性和一致性)
(3):方便进行数据库应用系统的开发
3、数据库设计定义:将数据库中的数据实体,以及这些数据实体之间的关系,进行规划和结构化的过程。

1.2软件开发中的数据库设计

1、需求分析阶段:分析客户的业务和数据处理需求
(1)、收集信息
与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务
(2)、标识实体 (Entity)
标识数据库要管理的关键对象或实体,实体一般是名词,可以理解成数据库中的表
(3)、标识每个实体的属性,也就是需要储存的详细信息——列(Attribute)
(4)、标识实体之间的关系(Relationship)
2、概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
3、详细设计阶段:将E-R图转换为多张表,确认主外键,应用三大范式审核数据库结构
4、代码编写阶段:物理实现数据库,编码实现应用
——
——
第二节:绘制E-R图和数据库模型图(绘制数据库模型图,需要软件进行操作)
一:绘制E-R图
1、E-R图定义:数据库设计图纸,也被称为实体-关系图。
2、E-R图形符号:
3、映射基数:通过联系与该实体关联的其他实体的个数。
种类:一对一、一对多、多对一、多对多

二:关系模式
1、定义:用二维表的形式表示实体和实体间联系的数据模型即关系模式
2、E-R图转换为关系模式的步骤
A:把每个实体都转化为关系模式R(U)形式
B:建立实体间联系的转换
C:客房(客房号、客房描述、客房类型、客房状态、床位数、入住人数、价格)
客人(客人编号,客人姓名、身份证号、入住日期、结账日期、押金、总金额、客房号)
第三节:数据库设计三大范式
一:第一范式
1、目标:第一范式的目标是确保每列的原子性,消除重复。
2、如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
二:第二范式
1、第二范式要求每个表只描述一件事情,消除部分依赖。
2、确保每列都与主键相关,并且除主键外,其他列都全部依赖于该主键。
三:第三范式
1、再第二范式上,更进一步,目的是消除传递依赖。
依赖传递——如果A属性依赖B属性,而B属性依赖C属性,则A属性依赖C属性。
2、确保每列都与主键直接相关,而不是间接相关。

四:规范化和性能的关系
1、为满足某种商业目标,数据库性能比规范化数据库更重要
A:通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
B:通过在给定的表中插入计算列(如成绩总分),以方便查询
2、在数据规范化同时,要综合考虑数据库的性能

2.0 mysql的各种命令

2.1DML(数据操作语言):对表的操作

insert(插入)语法:1、插入单行数据:insert into 表名 [(字段名列表)] values (值列表);
		2、插入多行数据:insert into 新表 (字段名列表) values(值列表1),(值列表2),……(值列表n);
update(修改)语法:update 表名 set 字段1 = 值1,字段2 = 值2,……,字段n = 值n [where 条件];
delete(删除)语法:1、(删除某一条记录)delete from 表名 [where 条件];
		2、(删除表中的所有行)truncate table 表名

2.2DDL(数据定义语言):对数据库的操作

create(创建)语法:create database 数据库名;
drop(删除):drop database 数据库名;
alter(修改):修改表名:alter table<旧表名> rename<新表名>;
	      添加字段:alter table 表名 add 字段名  数据类型 [属性];
	Alter Table 表名 ADD Constraint `主键名(随便取名)` primary KEY 表名(主键字段);
	Alter table `表名` ADD Constraint `外键名(随便取名)` Foreign KEY (`外键字段`) References  关联的表(`关联的字段`);

2.3DQL(数据查询语言):用来查询

select(查询):
	select <字段名列表>
	from<表名或视图>
	[where <查询条件>]
	[group by <分组的字段名>]
	[having <条件>]
	[order by <排序的列名>[asc\desc]];

2.4mysql其他的指令

查看数据库所有的表:show tables;  
创建表: create table [if not exists] 表名(
		字段1 数据类型 [字段属性|约束] [索引] [注释],
		字段2 数据类型 [字段属性|约束] [索引] [注释],
		……
		字段n 数据类型 [字段属性|约束] [索引] [注释]
		)[表类型] [表字符集] [注释];
使用数据库:use 数据库名;
将查询结果插入到新表:1、insert into 新表(字段1,字段2,……)
		          select 字段1,字段2,……
		          from 原表;
		     2、select 字段1,字段2,……
		           into 新表
		           from 原表;
		     3、(替代2):create table 新表(select 字段1,字段2,……from 原表);

3.0高级查询 (一)

3.1修改表

修改表名: ALTER TABLE<旧表名> RENAME [TO] <新表名>;
添加字段: ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
修改字段: ALTER TABLE 表名 CHANGE原字段名 数据类型 [属性];
删除字段: ALTER TABLE 表名 DROP 字段名;

3.2数据查询

LIMIT子句:

SELECT<字段名列表>

FROM <表名或视图>

[WHERE <查询条件>]

[GROUP BY<分组的字段名>]

[ORDER BY <排列的列名>ASC或[DESC]]

[LIMIT [位置偏移量,]行数];

简单子查询: SELECT ……… FROM 表1 WHERE 字段1 比较运算符 (字查询);
添加主键约束:
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名 PRIMARY KEY 表名(外键字段)
REFERENCES 关联表名(关联字段)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值