个人认为学什么东西前先搞清楚该东西是在整个技术体系的位置与其作用最好,所以先上张图..
1、数据库基础
有较高的数据独立性
数据的物理独立性,DBMS管理的方式数据的逻辑独立性,逻辑结构发生变化,也不影响用户程序完整性
符合某些规则,验证数据的正确性冗余性
在数据库设计的时候一定要考虑数据的冗余性表要有唯一性与其他表进行关联采用一定的数据模型,最大限度地减少数据冗余数据模型
数据库中数据的存储和处理模型
存储(数据结构) 处理(维护更新,控制) 完整性(合理性) 数据模型是一个比较真实地模拟现实世界,容易被人们接受,便于计算机上实现虚拟盒子.
层次模型 - 树型 - 用树型结构来表现实体及实体间的联系
网状模型
用网状结构来表示实体及实体间的联系关系模型
用一组二维表表示实体及实体间的关系关键字唯一确定一条记录关系:
一张二表一个关系关系模型:
关系名由 事物的属性构成记录:
表中的一行字段(属性):
表中的一列关键字:
某个属性可以唯一的确定记录主键:
在实际的应用中只能选择一个,一般为关键字表(数据房子):
最基本的对象,存储从现实世界抽象出来的中数字信息查询:
根据需求对表中的数据进行查询,形成一个查询结果窗体:
用户与数据库交互的界面,窗体数据源是表或查询报表: 按指定的样式格式化数据形式 这些不同类型的对象集合构成一个数据库文件Like(模糊 * ?) Between(之间)模糊查询
常用的基本函数 AS 关键字 COUNT 统计行数
数据库设计时,要注意年龄问题.该值是相对的,是通过当前的时间减去初生年月如下:
条件查询
如: SELECT 学号,姓名,Year(Date())-Year(出生年月) AS 年龄 FROM Students WHERE 专业 <> "计算机" SELECT 姓名,出生年月 FROM Students WHERE 出生年月 < #1/1/1992# AND 性别="女" 排序 ORDER BY 子句排序 SELECT 学号,姓名 FROM Students WHERE 党员=True ORDER BY 助学金 多个排序 ORDER BY 专业 ASC,助学金 DESC 分组查询 简单分类合计 查询每个专业学生人数 专业分类,统计人数 SELECT 专业,Count(*) AS 学生人数 FROM Students GROUP BY 专业 根据什么来进行分类 GROUP BY 嵌套分类汇总统计,即多个字段的分类汇总 查询各专业男妇生的平均助学金 SELECT 专业,性别,Avg(助学金) AS 平均助学金 FROM Students GROUP BY 专业,性别 将专业和性别都相同的记录分在一组 分组后过滤 HAVING 子句是对分组后的结果过滤,不是对分组前的表进行过滤 没有GROUP BY子句时,HAVING作用同WHERE子句.都为过滤数据作用 HAVING后的过滤条件中一般都要有合计函数 SELECT 学号 ,Count(*) AS 课程数 FROM Scores WHERE 成绩>=75 GROUP BY 学号 HAVING Count(*) >=2 连接查询 利用WHERE条件,将两表中相同属性值连接起来查询 例,查询所有学生的学号,姓名,课程和成绩 两个表, 连接条件 SELECT Students.学号.姓名.Scores.课程, 成绩 FROM Students.Scores WHERE Students.学号 = Scores.学号 通过2表的学号产生关联,查询数据库最主要实现了对处理的数据与程序之间的关系进行了分离.管理 提供接口访问方式使得数据更安全