数据库(MySQL)

1.数据库概念

1.1 数据库(database)

  • 狭 义:一些有关系的数据的总和;
  • 广义:DBMS数据库管理软件;

1.2 表(table)

  • 现实中具有共同特征的一些列的数据的总和,类似:学生、老师、课程;

1.3 表中数据

  • 一行的数据:记录(record);
  • 具体一行中的具体列的数据:单元格(Cell);

1.4 表的结构

  • 表的名称:学生;
  • 表的字段有哪些:学号、类型 姓名类型 年级 类型;
  • 表中数据的约束(constraint):学号不能重复;

1.5 数据存储

  • 目前,学习到的数据存储主要存储在内存中,SE、数据结构阶段学习的全部是内存中数据的抽象;

  • 内存存储的特点

    • 易失性存储;
    • 相对于持久化存储(硬盘、光盘、磁盘……)内存的读写速度更快;
    • 相对于,支持O(1)的下标访问。
  • 需要持久化存储;硬盘上的数据,更多的被操作系统转换成为文件,我们以文件的形式管理数据的存储!

1.6 数据库管理系统(DBMS database manage system)

例如:MySQL、Oracle、 MS SQL Server 、Postgres……

DBMS在管理数据时,总是存在共性,关于数据的建模与抽象问题,一般被应用广泛的是关系型模型(relationship model)

(1)关系型数据库管理软件(RDBMS)

学生:

学号(唯一) 姓名 年级……

1 小曹 大三

2 小张 大四

1.7 示例–图书馆借书还书需求

  • 表:图书、用户、借阅记录

  • 图书:

    bid 名称 总量 当前存量

    b1 《javaSE》 10 10–> 9

    b2 《MySQL》 3 1–>0–>1

  • 用户:

    uid 姓名

    u1 cc

    u2 zoe

  • 借阅记录

  • brid 那本书 谁借的 什么时候借 还了没 归还时间

  • br1 《javaSE》 cc 11-19 09:00 没有 null

  • br2 《MySQL》 cc 11-19 09:00 还了 11-19 10:00

第一阶段:只有结构,没有数据

第二阶段:想图书表中放入图书记录过程

第三阶段:向用户表中放入记录

第四阶段:正常借书还书

借书:cc借了一本JavaSE(要修改两张表:图书、借阅记录 事务机制:保证一致性存在)

借书:cc借了一本MySQL

​ zoe准备借,能否成功?-----》不能,存量为0

总结

  • DBMS的功能:

    • 以数据库(database、schema)为单位进行组织管理;
    • 以表为单位对表中的数据进行增删查改(CURD create Retrieve Updata Delete)的(数据本身)操作,还要对表的结构进行调整的(结构)操作;
  • 统一标准,抽象了一门语言,专门用于DB的操作,叫做查询语言(query language),非常结构(structure query language -->SQL);

1.8 SQL三大类

数据本身的操作:DML 数据维护语言

结构操作:DDL 数据定义语言

修改DBMS配置:DCL 数据控制语言

1.9 关于MySQL的架构简介

MySQL是一种典型的C/S(Client客户端/Server服务端)架构
在这里插入图片描述
服务器(MySQL Server (mysqld) ):提供RDBMS服务; 以接收+看懂SQL,进行回复提供服务;

实际中,允许主机A is 主机B (客户端和服务端程序运行在同一台主机上)

CS架构:一个程序(client)通过网络与另一个程序(server)进行通信

Client:如何在网络上的众多主机中的茫茫的程序里唯一定位的服务器程序?

  • ip地址:网络任意两台主机,其ip地址不能重复(有例外)
  • 端口(port):来定义主机上的唯一程序 某台主机上任意时刻任意两个程序,其端口(port)不能重复,默认3306
  • 一个特殊ip地址:127.0.0.1 一个特殊域名:localhost 代表的是自己(本主机)

1.10 使用数据库的主要两个场景

  • OLTP(OnLine Transaction Processing)在线事务型场景 , 例如上面的例子 学习重点
  • OLAP(OnLine Analytical Processing)在线分析型场景 ,统计分析、大数据相关岗位

2.SQL语言

  • 默认用分号作为结尾(只有一条SQL语句时,可以省略分号)

  • –开头 为注释

  • SQL中关键字是不区分大小写的。

2.1 DDL(关于结构的操作)

(学习要求:能看懂,会用图形化界面创建即可)

  • 围绕库:创建库结构,扔掉库结构
  • 围绕表:创建表结构、扔掉表结构、修改表结构

2.1.1 建库操作

在这里插入图片描述
库名称:

  • 不要使用关键字,一般也不使用反引号
  • 最好只出现一下字符,全部统一小写【a-z】【0-9】下划线 ,不要以下划线和数字开头

扔掉库

  • 不要删除系统库:sys mysql test world

2.1.2 显示当前的数据库

  • SHOW DATABASEAS; 查看数据库里的所有库

2.1.3 使用数据库

  • use 数据库名; 设置默认(default)数据库

2.1.4 建表操作

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

2.1.5 扔掉表

DROP TABLE在这里插入图片描述

2.1.6 修改表结构

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

2.1.7 从这张表中查询所有字段

SELECT * FROM db_11_19.students;


版权声明:本文为ccyzq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。