0%

数据库01

更新至第3章

第一章 数据库概览

数据库管理技术的进展

基本概念

数据:描述事物的符号记录
数据的种类很多,文本图形图像声音等都是数据。
数据的特点:
1. 数据有 “型” 和 “值” 之分
2. 数据与其语义是不可分的

语义:数据的含义
数据与其语义是不可分的

数据管理:对数据进行收集、分类、组织、编码、存储、检索和传输,是数据处理的中心问题 (分类、组织、编码、存储、检索、维护)

数据库:长期存在计算机内、有组织、可共享的数据集合

数据库管理系统DBMS)是位于用户与操作系统之间的系统软件。

数据管理技术三个阶段

数据管理技术三个阶段:人工管理阶段文件系统阶段数据库系统阶段

  • 人工管理阶段:
    1. 数据不保存
    2. 应用程序管理数据
    3. 数据不共享
    4. 数据不具有独立性
  • 文件系统阶段:
    1. 数据可以长期保存
    2. 由文件系统管理数据
    3. 数据共享性差,冗余度大
    4. 数据独立性差
  • 数据库阶段:
    1. 数据整体结构化
    2. 数据共享性高、冗余度低、易于扩充
    3. 数据独立性高
    4. 数据由DBMS统一管理和控制

数据库系统实现整体数据的结构化。这是数据库系统与文件系统的根本区别。

数据独立性

数据独立性包括数据的逻辑独立性和数据的物理独立性

  • 逻辑独立性:数据的逻辑结构改变了,程序不用改变
  • 物理独立性:数据的物理存储改变了,程序不用改变

(由DBMS处理这种改变)

关系代数

  • 投影:一属性的所有值 \(\pi_{Sdept}(Student)\)
  • 连接:在R\(\times\)S中取满足关系的元组
    • 一般连接:随便什么关系
    • 等值连接:R的A属性与S的B属性相同
    • 自然连接:R的B属性与S的B属性相同
  • 除:R\(\div\)S:R(X,Y),S(Y,Z) R中的X的像集要包含S中的Y的所有值

基本表

基本表定义

CREATE TABLE <基本表名>( <列名> <数据类型> [ <列级完整性约束条件> ], <表级完整性约束条件>; );

1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE SPDGB (
客户编号 char(5) NOT NULL,
数量 int,
单价 float,
保质期 datetime DEFAULT '2000-1-1',
送货方式 varchar(50),
备注 text,
PRIMARY KEY (客户编号,商品编号,订购时间),
-- 主码
FOREIGN KEY (客户编号) REFERENCES KHB(客户编号),
FOREIGN KEY (商品编号) REFERENCES SPB(商品编号)
);

定长字符串: char 变长字符串: varchar

修改基本表

1
2
3
4
5
6
ALTER TABLE <基本表名>
COLUMN <列名> <新数据类型> NULL|NOT NULL -- 修改已有列定义
ADD <列名> <数据类型> 约束 -- 增加新列
DROP COLUMN <列名> -- 删除列
ADD CONSTRAINT <约束名> <约束定义>-- 添加约束
DROP CONSTRAINT <约束名> -- 删除约束constraint
1
2
3
4
5
6
7
8
ALTER TABLE SPB ADD 商品图片 image
-- 不论基本表中原来是否已有数据,新增加的列一律为空值。

ALTER TABLE SPB
ALTER COLUMN 保质期 smalldatetime
-- 修改原有的列定义有可能会破坏已有数据

ALTER TABLE SPB DROP COLUMN 商品图片

删除基本表

DROP TABLE <基本表名>

数据查询

单表查询

1
2
3
4
5
SELECT ALL|DISTINCT <目标列表达式>
FROM <表名或视图名>
WHERE <条件表达式>
GROUP BY <列名1> HAVING <条件表达式>
ORDER BY <列名2> ASC|DESC;
  • SELECT:指定要显示的属性列
  • FROM:指定查询对象(基本表或视图)
  • WHERE:指定查询条件
  • GROUP BY:查询结果按指定列的值分组
  • HAVING:筛选分组
  • ORDER BY:查询结果按指定列值的升序或降序排序

WHERE Grade IS NOT NULL;

看到这里的姐妹一看就要暴富暴美,为什么不让这一天提前一点呢ヾ(≧▽≦*)o