一:MySQL系列之基本介绍(一)

  本篇主要介绍关于MySQL数据的基本知识,包括数据存储的变化,什么是MySQL以及其有什么优点、以及什么是RDBMS概念性知识等,以及关于MySQL语句的SOL的基本用法;

一、数据库

  数据库,顾名思义是用来存储数据的仓库,像以前的草绳记事、甲骨文,或者像现代的图书馆、文件管理系统等等都是数据储存的方式,但是面对海量数据,需要保证其稳定、无损、且能够快速的读取和写入数据,以前的数据存储方式显然很难再去满足这些需求,于是有了我们现在的数据库存储;

  那到底什么是数据库呢?

  其实数据库就是一堆特殊的文件,若仅仅是一堆文件躺在那里肯定是无法满足对海量数据的快速读取和写入,当然还有数据管理系统,准确来说,数据库是按照数据结构来组织、存储和管理数据的仓库。

  

  通常我们把数据库分为:关系型数据库 、 非关系型数据库。

  关系型数据库:关系型数据库通过外键关联来建立表与表之间的关系,即表与表、字段与字段之间存在找关联;

  非关系型数据库:非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定;

两者优缺点如下:

  可以参考博客    关系型数据库和非关系型数据库的特性以及各自的优缺点>>>

   本篇主要介绍关于关系型数据库的MySQL数据库;


二、什么是MySQL?

  MySQL是一种关系型数据库,其主要通过表结构来存储数据,每一个列称为一个字段,每一行称为一个记录,而每一个列的集合称为数据表,每一个表的集合称为数据库;其实其数据结构与Excel表格十分相识,例如:

  

  如上表所示:整个Excel文件就相当于一个MySQL数据库,而Excel表格相当于数据库的数据表,每个数据表示有一行行记录组成和一列列字段组成,整个数据库存储结构大致就是如此;


 

三、数据库管理系统 -DBMS/RDBMS

  那么仅仅有一个数据库的存储框架是无法实现对数据的管理、快速读取和写入的,还需要数据库管理系统,其实我们通常说的MySQL数据库通常包括了数据库文件和数据库管理系统,那么什么是数据库管理系统呢?

  

  DBMS  -- 数据库管理系统

  DBMS :即 DataBase Manager System,数据库管理系统,其本质上是一个应用程序,用来一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。可以理解为:Excel软件;

  RBMS --- 关系型数据库管理系统

  顾名思义,是用来操作和管理关系型数据库的大型软件;其是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据;

    

  RDBMS-client /RDBMS-server模型

  我们知道数据库是用来存储用户信息等数据的,而这些数据肯定不能是一成不变的,而数据库对于普通程序员而言是无法直接操作的,那么我们是怎么对数据库中的数据进行读写操作呢?

  其实程序员与数据库之间的通信也是通过C/S架构模型,即RDBMS-client客户端与RDBMS-server服务端模型进行通信交互的;与web浏览器和web服务端直接进行通信相相识的是,都需要基于TCP协议先建立连接,但是 web客户端与服务端进行通信是获取网页数据提取表单,但是MySQL客户端与服务端进行通信是通过命令修改或者添加服务端中的数据,而这两者之间进行通信交流也需要一种语言,而这种语言就是SOL语言,即通过SQL语言告诉服务端的数据库管理系统应该执行怎样的操作。即如下图图所示。

   

  RDBMS-client、RDBMS-serve、SQL、RDBMS、以及数据库文件之间的关系:

  即RDBMS-client客户端通过基于TCP协议与RDBMS-server服务端建立联系,使用SQL语言告诉RDBMS-server服务端上的数据库管理系统RDBMS对数据库文件进行怎样的操作;


四、SOL语言

  对于SOL语言是MySQL数据库客户端与服务端进行通信的一种交流方式,但是无论是客户端还是服务端都只是机器,他们无法像人类一样使用语言自由进行交流,故SOL语言有其可以让RDBMS可以认识的规则即语法。接下来我们学习关于SOL语言;

  例如:

-----刚学习数据库的操作流程进行举例吧-----

-- 连接数据库服务器
    mysql -u username -p

-- 创建数据库
    create database information charser=utf8;

-- 使用数据库
    use information

-- 创建数据表
     create table students(
         id int unsigned not null auto_increment primary key,
         name varchar(20),
         age tinyint unsigned default 18,
         high decimal(5,2),
         gender enum("male" , "female" , "other","保密") default "保密",
         cls_id int unsigned default 0
     );
-- 插入数据表记录
    insert into students values(0,"alex",22,172.53,"male",443);

  简单了解一下数据类型,和约束,其他的我也不知道怎么介绍。

  数据类型:

 常用数据类型如下:

  • 整数:int,bit
  • 小数:decimal
  • 字符串:varchar,char
  • 日期时间: date, time, datetime
  • 枚举类型(enum)

 特别说明的类型如下:

  • decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
  • char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
  • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
  • 字符串text表示存储大文本,当字符大于4000时推荐使用
  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径

  约束:

  • 主键primary key:物理上存储的顺序
  • 非空not null:此字段不允许填写空值
  • 惟一unique:此字段的值不允许重复
  • 默认default:当不填写此值时会使用默认值,如果填写时以填写为准
  • 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
  • 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制

  over ~~~ 下篇介绍SOL语句的语法,即怎么对数据库、数据表、数据表字段、数据表的记录进行操作~~~~~

原文地址:https://www.cnblogs.com/littlefivebolg/p/9360169.html