数据库的基本常识
个人认为学什么东西前先搞清楚该东西是在整个技术体系的位置与其作用最好,所以先上张图..
1、数据库基础
有较高的数据独立性
- 数据的物理独立性,DBMS管理的方式
- 数据的逻辑独立性,逻辑结构发生变化,也不影响用户程序
完整性
- 符合某些规则,验证数据的正确性
冗余性
- 在数据库设计的时候一定要考虑数据的冗余性
- 表要有唯一性与其他表进行关联
- 采用一定的数据模型,最大限度地减少数据冗余
数据模型
数据库中数据的存储和处理模型
存储(数据结构)
处理(维护更新,控制)
完整性(合理性)
数据模型是一个比较真实地模拟现实世界,容易被人们接受,便于计算机上实现虚拟盒子.
2、三种重要的数据模型
层次模型
- 树型
- 用树型结构来表现实体及实体间的联系
网状模型
- 用网状结构来表示实体及实体间的联系
关系模型
- 用一组二维表表示实体及实体间的关系
- 关键字唯一确定一条记录
名词解释
关系:
- 一张二表一个关系
关系模型:
- 关系名由 事物的属性构成
记录:
- 表中的一行
字段(属性):
- 表中的一列
关键字:
- 某个属性可以唯一的确定记录
主键:
- 在实际的应用中只能选择一个,一般为关键字
3、数据库的组成
表(数据房子):
- 最基本的对象,存储从现实世界抽象出来的中数字信息
查询:
- 根据需求对表中的数据进行查询,形成一个查询结果
窗体:
- 用户与数据库交互的界面,窗体数据源是表或查询
- 报表:
- 按指定的样式格式化数据形式
这些不同类型的对象集合构成一个数据库文件
- 按指定的样式格式化数据形式
4、主要方法:数据库模版,或设计视图
- 确定表的结构
- 建立一个空数据库,输入文件名
- 指向表在快显菜单选择“设计视图”
- 输入表名,进行设计视图
- 输入各个字段和设置字段属性
- 删除自带的ID,定义主键
5、SQL命令–常用命令
- 数据维护命令
INSERT INTO 表名 (字段1.....字段n) VALUES(值1,....值n)
DELETE FROM 表 WHERE 条件
UPDATE 表 SET 字段1 = 表达式1 WHERE 条件
- 数据查询命令 SELECET
SELECT DISTINCT(唯一) 目标列(关心列) FROM 表
WHERE 条件表达式
GROUP(分类) BY 列名1 HAVING 表达式(统计)
ORDER BY 列表2 ASC|DESC (排列方式)
从表中产生所需的行,列内容
形成一个查询结构(虚表)
6、注意问题
Like(模糊 * ?) Between(之间)模糊查询
常用的基本函数
AS 关键字
COUNT 统计行数
7、维护命令的实例
数据库设计时,要注意年龄问题.该值是相对的,是通过当前的时间减去初生年月如下:
条件查询
如: 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表的学号产生关联,查询
数据库最主要实现了对处理的数据与程序之间的关系进行了分离.管理
提供接口访问方式使得数据更安全