- 1 数据库系统的基本原理
-
- 1.1 数据库系统概述
-
- 1.1.1 基本概念
- 1.1.2 数据管理技术的发展阶段
- 1.2 数据模型
-
- 1.3 数据库体系结构
-
- 1.3.1 数据库系统的三级结构
- 1.3.2 数据库系统的三级模式
- 1.3.3 数据库系统的二级映射与数据独立性
- 2 关系数据库
-
- 2.1 关系数据结构及形式化定义
- 2.2 关系的完整性
-
- 2.2.1 实体完整性
- 2.2.2 参照(引用)完整性
- 2.3 关系代数
- 3 关系数据库标准语言SQL
-
- 3.1 基本知识
-
- 3.2 数据定义
-
- 3.2.1 数据库的定义和删除
- 3.2.3 基本表的定义、删除和修改
- 3.4 数据更新
-
- 3.4.1 插入数据
- 3.4.2 更新数据
- 3.4.3 删除数据
- 4 数据库编程
-
- 4.2 变量
-
- 4.3 常用系统函数
- 4.4 程序控制流语句
1 数据库系统的基本原理
1.1 数据库系统概述
1.1.1 基本概念
数据库(DataBase,简称DB):是长期储存在计算机内、有组织的、可共享的大量数据的集合
数据库管理系统(DBMS):主功能有(1)数据定义功能(2)数据操纵功能(3)数据控制功能
数据库系统(DBS):数据库系统是由数据库(DB)、数据库管理系统(DBMS)(及其应用开发工具)、应用系统和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统
DBMS的体系结构:3层
数据源(DATA SOURCE):远程数据库的别名
ODBC:开发工具访问数据库统一的平台
JDBC:Java数据库连接
1.1.2 数据管理技术的发展阶段
数据管理技术的发展经历了人工管理、文件管理系统、数据库系统和高级数据库系统四个阶段
1.2 数据模型
1.2.1 数据抽象的过程
(1) 概念模型:现在采用的概念模型主要是实体-联系模型,即E-R模型
实体类型(entity type,class):用实体名及其属性名集合来抽象和刻画同类实体。例如学生(学号,姓名,性别,出生年月日,所在院系,入学时间)就是一个实体型
实体集(entity set):同一类型实体的集合。例如,全体学生就是一个实体集
联系(relationship):实体集内的单个实体之间的联系通常是指不同实体集之间的联系,实体之间的联系有一对一、一对多和多对多等多种类型
(2) 逻辑模型:有层次模型﹑网状模型和关系模型3种
1.2.2 关系模型
1. 数据模型的三要素:
数据模型的三要素分别为数据结构、数据操作、数据的完整性约束条件
2. 关系数据库的数据结构
关系(ralation):一个关系对应通常说的一张二维表
元组(tuple):表中的一行即为一个元组
属性(attribute):表中的一列即为一个属性,给每一个属性起一个名称即为属性名
码,键(key):表中的某个属性组,它可以唯一确定一个元组
域(domain):域是一组具有相同数据类型的值的集合。即某个属性的取值范围
分量:元组中的一个属性值
关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,···,属性n)
1.3 数据库体系结构
1.3.1 数据库系统的三级结构

1.3.2 数据库系统的三级模式
-
概念模式:又称模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只能有一个概念模式。
-
外模式(external schema):又称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述(一个数据库可以有多个外模式)
-
内模式(internal schema):又称存储模式或物理模式,是数据物理结构和存储方式的描述,一个数据库只有一个内模式
1.3.3 数据库系统的二级映射与数据独立性
数据库系统的二级映射:外模式/模式映射和模式/内模式映射
数据独立性:
-
物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的,模式/内模式映射实现
-
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的,通过外模式/模式映射实现
2 关系数据库
2.1 关系数据结构及形式化定义
基本概念:
候选码(key):某一属性组的值能唯一地标识一个元组,而其自己不能,则称该属性组为候选码(candidate key)
主键(Priamary Key,PK),也称主码,只可以有一个主键,要求作为主键的列不允许取NULL值
主属性(prime attribute):候选码的诸属性称为(主属性)
非主属性:不包含在任何候选码中的属性
全码(all key):关系模式的所有属性是这个关系模式的候选码
代理键(id,序列号、序号,系统自动生成,自增长)
2.2 关系的完整性
2.2.1 实体完整性
若属性A是基本关系的主属性,则A不能取空值
2.2.2 参照(引用)完整性
主(父亲)、从(子)
2.3 关系代数
- 选择(selection)
选择是在关系中选择满足给定条件的诸元组
- 投影(projection)
关系R上的投影是从R中选择出若干属性列组成新的关系
- 连接(笛卡尔积)
3 关系数据库标准语言SQL
3.1 基本知识
3.1.1 SQL特点
- 综合统一
SQL集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体
- 高度非过程化
- 面向集合的操作方式
3.2 数据定义
3.2.1 数据库的定义和删除
- 创建数据库
CREATE DATABASE 数据库名;
- Ctrl+c中断功能
- 选择数据库
USE 数据库名;
- 删除数据库对象
DROP DATABASE 数据库名;
3.2.3 基本表的定义、删除和修改
- 创建表
CREATE TABLE 表名
(<列名> <数据类型> DEFAULT <默认值 >) (,<列名> <数据类型> <列级完整性约束条件>) (,<表级完整性约束条件>);
其中DEFAULT是给指定列设置默认值(也就是列名对应的字段属性是啥样的)
- 字符串类型
VARCHAR (L)
最长是L个字符
- 利用子查询来创建表
CREATE TABLE dept_c
SELECT * FROM dept;
相当于复制了dept的表
- 修改基本表
ALTER TABLE <表名>
(ADD [COLUMN] <列名> <数据类型> DEFAULT <默认值>);
(DROP [COLUMN] <列名> <数据类型>);
(MODIFY [COLUMN] <列名> <数据类型> DEFAULT <默认值>);
- 截断表和删除表
截断表:仅仅删除表里面的数据
TRUNCATE TABLE <表名>
删除表:删除了表
DROP TABLE <表名>
3.4 数据更新
3.4.1 插入数据
- INSERT 语句
INSERT INTO 表名 [([列名1[, 列名2…)]
VALUES (值1[,值2…]…)
例如:
INSERT INTO dept_c(deptno,dename,loc)
VALUES (50,‘PERSONNEL’, ‘HONGKONG’),
(70,‘RESEARCH’,‘HONGKONG’);
- 利用子查询插入语句
INSERT INTO 表名
SELECT FROM
3.4.2 更新数据
- UPDATE 语句
UPDATE 表名
SET 列名=值[,列名=值,…]
[WHERE <条件>];
如果都改的话最后一行都不需要加了
3.4.3 删除数据
- DELETE语句
DELETE FROM 表名
[WHERE <条件>];
4 数据库编程
4.2 变量
- 用户变量
(1)具有局部属性的变量(和下面的局部变量不一样),只存在SP,形式就是普通变量var
(2)具有全局属性的变量,用户登录过程后也是存在的,随着用户退出登录而消失。形式是@var
- 系统变量(变量名都是以@@开头的名字)
(1)全局(服务器)系统变量(全局属性)@@ global.var名
(2)会话(实例)系统变量(局部属性)@@session.var名,一般不指定的话,操作的都是会话系统变量


4.2.1 局部变量
- 局部变量的定义与赋值


- 局部变量的显示

- 例题


4.2.2 全局变量
全局变量是MySQL系统提供并赋值的变量。用户不能定义全局变量,只能使用。

4.3 常用系统函数










4.4 程序控制流语句
- delimiter
- 条件判断语句的使用
(1)声明变量
declare
(2)为变量赋值
set 变量=值;
- IF语句
