• 1 数据库系统的基本原理
  • 1.1 数据库系统概述
  • 1.1.1 基本概念
  • 1.1.2 数据管理技术的发展阶段
  • 1.2 数据模型
  • 1.2.1 数据抽象的过程
  • 1.2.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.1.1 SQL特点
  • 3.2 数据定义
  • 3.2.1 数据库的定义和删除
  • 3.2.3 基本表的定义、删除和修改
  • 3.4 数据更新
  • 3.4.1 插入数据
  • 3.4.2 更新数据
  • 3.4.3 删除数据
  • 4 数据库编程
  • 4.2 变量
  • 4.2.1 局部变量
  • 4.2.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 数据库系统的三级结构


mysql数据库ipv6 MYSQL数据库原理及应用_数据库系统

1.3.2 数据库系统的三级模式

  1. 概念模式:又称模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只能有一个概念模式。
  2. 外模式(external schema):又称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述(一个数据库可以有多个外模式)
  3. 内模式(internal schema):又称存储模式或物理模式,是数据物理结构和存储方式的描述,一个数据库只有一个内模式

1.3.3 数据库系统的二级映射与数据独立性

数据库系统的二级映射:外模式/模式映射和模式/内模式映射

数据独立性:

  1. 物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的,模式/内模式映射实现
  2. 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的,通过外模式/模式映射实现

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 关系代数

  1. 选择(selection)
    选择是在关系中选择满足给定条件的诸元组
  2. 投影(projection)
    关系R上的投影是从R中选择出若干属性列组成新的关系
  3. 连接(笛卡尔积)

3 关系数据库标准语言SQL

3.1 基本知识

3.1.1 SQL特点

  1. 综合统一
    SQL集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体
  2. 高度非过程化
  3. 面向集合的操作方式

3.2 数据定义

3.2.1 数据库的定义和删除

  1. 创建数据库
    CREATE DATABASE 数据库名;
  2. Ctrl+c中断功能
  3. 选择数据库
    USE 数据库名;
  4. 删除数据库对象
    DROP DATABASE 数据库名;

3.2.3 基本表的定义、删除和修改

  1. 创建表
    CREATE TABLE 表名
    (<列名> <数据类型> DEFAULT <默认值 >) (,<列名> <数据类型> <列级完整性约束条件>) (,<表级完整性约束条件>);
    其中DEFAULT是给指定列设置默认值(也就是列名对应的字段属性是啥样的)
  2. 字符串类型
    VARCHAR (L)
    最长是L个字符
  3. 利用子查询来创建表
    CREATE TABLE dept_c
    SELECT * FROM dept;
    相当于复制了dept的表
  4. 修改基本表
    ALTER TABLE <表名>
    (ADD [COLUMN] <列名> <数据类型> DEFAULT <默认值>);
    (DROP [COLUMN] <列名> <数据类型>);
    (MODIFY [COLUMN] <列名> <数据类型> DEFAULT <默认值>);
  5. 截断表和删除表
    截断表:仅仅删除表里面的数据
    TRUNCATE TABLE <表名>
    删除表:删除了表
    DROP TABLE <表名>

3.4 数据更新

3.4.1 插入数据

  1. INSERT 语句
    INSERT INTO 表名 [([列名1[, 列名2…)]
    VALUES (值1[,值2…]…)
    例如:
    INSERT INTO dept_c(deptno,dename,loc)
    VALUES (50,‘PERSONNEL’, ‘HONGKONG’),
    (70,‘RESEARCH’,‘HONGKONG’);
  2. 利用子查询插入语句
    INSERT INTO 表名
    SELECT FROM

3.4.2 更新数据

  1. UPDATE 语句
    UPDATE 表名
    SET 列名=值[,列名=值,…]
    [WHERE <条件>];
    如果都改的话最后一行都不需要加了

3.4.3 删除数据

  1. DELETE语句
    DELETE FROM 表名
    [WHERE <条件>];

4 数据库编程

4.2 变量

  1. 用户变量
    (1)具有局部属性的变量(和下面的局部变量不一样),只存在SP,形式就是普通变量var
    (2)具有全局属性的变量,用户登录过程后也是存在的,随着用户退出登录而消失。形式是@var
  2. 系统变量(变量名都是以@@开头的名字)
    (1)全局(服务器)系统变量(全局属性)@@ global.var名
    (2)会话(实例)系统变量(局部属性)@@session.var名,一般不指定的话,操作的都是会话系统变量

4.2.1 局部变量

  1. 局部变量的定义与赋值
  2. 局部变量的显示
  3. 例题

4.2.2 全局变量

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

mysql数据库ipv6 MYSQL数据库原理及应用_mysql数据库ipv6_02

4.3 常用系统函数

mysql数据库ipv6 MYSQL数据库原理及应用_mysql_03


mysql数据库ipv6 MYSQL数据库原理及应用_mysql_04


mysql数据库ipv6 MYSQL数据库原理及应用_数据库系统_05


mysql数据库ipv6 MYSQL数据库原理及应用_mysql_06


mysql数据库ipv6 MYSQL数据库原理及应用_数据库_07


mysql数据库ipv6 MYSQL数据库原理及应用_数据库_08


mysql数据库ipv6 MYSQL数据库原理及应用_mysql_09


mysql数据库ipv6 MYSQL数据库原理及应用_数据_10


mysql数据库ipv6 MYSQL数据库原理及应用_数据库系统_11


mysql数据库ipv6 MYSQL数据库原理及应用_mysql数据库ipv6_12

4.4 程序控制流语句

  1. delimiter
  2. 条件判断语句的使用
    (1)声明变量
    declare
    (2)为变量赋值
    set 变量=值;
  3. IF语句