《数据库原理及应用》MySQL版知识点总结

2023-11-07

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 数据库系统的三级模式

  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系统提供并赋值的变量。用户不能定义全局变量,只能使用。
在这里插入图片描述

4.3 常用系统函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4 程序控制流语句

  1. delimiter
  2. 条件判断语句的使用
    (1)声明变量
    declare
    (2)为变量赋值
    set 变量=值;
  3. IF语句
    在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《数据库原理及应用》MySQL版知识点总结 的相关文章

随机推荐

  • mac下antlr4命令使用

    1 下载 lcc lcc hellow cd usr local lib lcc lcc hellow curl O http www antlr org download antlr 4 0 complete jar 可以看到该目录下出现
  • 【无标题】Java中的锁常见面试题总结

    一 什么是死锁 死锁 不同的线程分别占用对方需要的同步资源不放弃 都在等待对方放弃自己需要的同步资源 就形成了线程的死锁 出现死锁后 不会出现异常 不会出现提示 只是所有的线程都处于阻塞状态 无法继续 二 产生死锁的四个必要条件 1 资源互
  • [渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包

    这是最近学习渗透和网站攻防的基础性文章 前面文章从数据库原理解读了防止SQL注入 SQLMAP的基础用法 数据库差异备份 Caidao神器 这篇文章将详细讲解MySQL数据库攻防知识 有点类似第一篇文章 然后其核心是解决局部刷新数据的思想
  • 使用 AopContext.currentProxy() 报错:java.lang.IllegalStateException: Cannot find current proxy

    报错信息 java lang IllegalStateException Cannot find current proxy Set exposeProxy property on Advised to true to make it av
  • layui+PHP文件上传

    layui官方网站 http www layui com 一个很好的前端框架 现在也出了后台模板 收费 值得我们学习和借鉴 非常感谢作者 贤心 的开源和维护 一 下载layui部署到项目 在页面引入layui css和layui js 二
  • xml的读取分析 key value

    package com basedata xml import java io ByteArrayInputStream import java io File import java io FileInputStream import j
  • Visio直角连接线增加直角拐弯

    首先选中线条 然后在中点的地方按住shift键再拖动鼠标 就可以实现多个直角转弯了
  • autobank渗流分析计算教程_jade基本操作(4.晶格常数计算)

    微信公众号试行乱序推送 为了不错过更新 请点击本页面最上方的 结构分析表征 进入公众号主页 点击右上角的三个小点点 在弹出的界面点击 设为星标 并在看完图文或视频后点击右下角的 在看 和 赞 本公众号以各类仪器的测试 分析教程 欢迎关注同名
  • 莫烦tensorflow系列教程学习

    1 普通机器学习预测函数系数 y 0 1x 0 3 coding gbk import tensorflow as tf import numpy as np 生成数据 y 0 1x 0 3 x data np random rand 10
  • MySQL如何导入大量数据?

    有时我们会遇到需要将大量数据导入MySQL的需求 一般数据存储在csv或者txt中 数据由 分隔 这里提供两种方案供大家选择 一 创建测试表 为了测试 我们先创建数据库和表 并创建一个用户 create database loaddata
  • LevelDb(一):LevelDb简介

    1 leveldb简介 2 hello world 2 1 leveldb源码下载和编译 2 2 hello world程序 1 leveldb简介 LevelDb是google的工程师Jeff Dean和Sanjay Ghemawat这两
  • Netty应用(五)架设WebSocket服务

    Springboot有封装好的Websocket包 只需要几个简单的类和注解就能提供服务 在Java程序中 我们可以使用Netty来实现Websocket服务 依赖 compile io netty netty all 4 1 63 Fin
  • httpurlconnection中设置cookie的时机问题

    http blog csdn net archer zoro article details 42041883 遇到一个问题 先记录一下 在用httpurlconnection进行post提交的时候 需要将之前得到的cookie带入 之前是
  • ai2022中文版(支持m1) ai2022mac版

    最新版本的Illustrator 2022 for Mac中文版已经更新啦 这是一款专业的矢量图形设计软件 这次的ai 2022 mac版新增和改进了不少功能 比如应用3D效果 支持使用Adobe Substance材质添加纹理 通过发现面
  • ThinkPad在开机时常见的报错信息及含义

    0177 Bad SVP data stop POST task The checksum of the supervisor password in the EEPROM is not correct System board 主板问题
  • Nest.js 写一个简单的增删改查

    这篇文章主要记录了一个简单的增删改查应用 涉及到了MongoDB Swagger 以及以express为底层的Nest js框架 简单介绍一下用到的工具 swagger就不用说了 MongoDB同样使用docker容器和mongo expr
  • MySql5.6 Window超详细安装教程

    林炳文Evankaka原创作品 转载请注明出处http blog csdn net evankaka 目录 一 安装包准备二 开始安装三 验证安装四 客户端工具 一 安装包准备 1 下载MySql5 6 http www mysql com
  • 配置完dcom需要重启计算机,DCOM电脑自动重启(win7系统一直反复重启)

    电脑频繁重启会怎么样 电脑给我们带来了便利 但也给我们带来了许多问题 有网友反映电脑不到10分钟就会自动重启 但是不知道是什么原因导致的 很困惑 针对这种情况 边肖给大家带来了电脑自动重启的原因和相应的解决方案 可以参考一下 电脑经常自动重
  • 生成式 AI 行业解决方案指南与部署实践

    生成式 AI 和 Stable diffusion 生成式 AI Generative AI 可以生成自然语言 图像 视频和音乐等数字化内容 目前热点应用总体上可以分为基于 Stable Diffusion 的图片内容生成类任务以及基于大语
  • 《数据库原理及应用》MySQL版知识点总结

    1 数据库系统的基本原理 1 1 数据库系统概述 1 1 1 基本概念 1 1 2 数据管理技术的发展阶段 1 2 数据模型 1 2 1 数据抽象的过程 1 2 2 关系模型 1 3 数据库体系结构 1 3 1 数据库系统的三级结构 1 3