每日一句,送给最珍贵的你:
花起初是浅白的,就像罩在河上的雾,浅白色像晨光的脚,银白色像黎明的翅膀。
上次小编安装好了MySQL以及Navicat Premium 15,于是小编决定先学习MySQL基础啦。可能会有小伙伴会问现在又用不到,学它干嘛,很多东西的价值并不是在当时就能体现出来的,它必然是一个长期的过程。就如读书一样,虽然小编对其它文学书籍的阅读少了许多,但还是会时不时看看,总觉得阅读能让人摆脱些困惑,哈哈哈,扯远了。
MySQL·总体
对于MySQL的学习,可分为三个阶段;
- 基础阶段:(MySQL的基础操作:增删改查)还有一些高级操作:视图,触发器,函数,存储过程等。
- 优化阶段:如何提高数据库效率,如索引,分表等。
- 部署阶段:如何搭建真实的环境系统,如服务器集群,负载均衡。
MySQL·认识(数据库基础)
1.什么是数据库?
数据库:database,存储数据的仓库,也是高效的存储和处理数据的介质(磁盘(ROM)和内存(RAM)。
To:再次提醒,手机上的存储空间叫磁盘或者只读存储器,如128G空间大小;而大家所叫的内存其实是很小的(相较于只读存储器),也叫主存,如8G内存,12G内存。
2.数据库的分类?
数据库分类:基于存储介质的不同可分为两类:关系型数据库(SQL)和非关系型数据库(Nosql:Not Only SQL,不是关系型的数据库都可叫非关系型数据库)。
3.不同的数据库阵营中产品有?
关系型数据库:大型(Orcle,DB2) 中型(SQL-server Mysql等) 小型(access等)。
非关系型数据库:redis(同步技术,同步到磁盘)
4.关系型数据库和非关系型数据库阵营有哪些区别?
关系型数据库:安全(保存到磁盘基本上不会丢失),容易理解比较浪费空间(二维表存储)
非关系型数据库:效率高,不安全(断电容易丢失)。
MySQL·认识(关系型数据库)
1.什么是关系型数据库?
关系型数据库:是一种建立在关系模型(数学模型)上的数据库。
关系模型:一种建立在关系上的模型,关系模型包含三个方面:
- 数据结构:数据存储的问题,二维表(包括行和列)。
- 操作指令集合:所有SQL语句。
- 完整性约束:表内数据约束(字段与字段),表与表之间(外键)。
2.关系型数据库的设计?
关系型数据库设计:从需要存储的数据需求中分析,如果是一类数据(实体)应该设计成一张二维表,表是由表头(字段名:用来规定数据的名字)和数据单元组成(实际存储的数据单元)二维表,如下:
表头 | 字段名1 | 字段名2 |
---|---|---|
数据单元 | 数据1 | 数据2 |
以实际案例为例(教学系统)分析:老师负责教学,教学生,在教室教学生。
对于个体单独分析:
- 找出系统中所存在的实体:讲师表,学生表,班级表
- 找出实体中应该存在的数据信息:(一)老师:姓名,性别,年龄,工资 (二)学生:姓名,性别,学号,学科 (三)班级:班级名字,教室编号
即:关系型数据库是维护实体内部,实体与实体之间的联系。
实体内部联系:每个学生都有性别,学号,学科信息。
姓名 | 性别 | 学号 | 学科 | 年龄 |
---|---|---|---|---|
小明 | 男 | 001 | C | 20 |
小Q | 女 | 002 | C |
如上表格所示:第二行的所有字段,都是在描述小明学生(称为内部联系);第二列只能放性别(内部约束)。
关系型数据的特点之一:如果表中的对应的某个字段没有值或数据(如小Q的年龄),但是系统依然要分配空间:即关系型数据库比较浪费空间。
其中实体与实体之间的联系:某个学生肯定属于某个班级,每个班级一定有多个学生(一对多)。
MySQL·认识(关键字说明)
数据库:database。
数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关联起来的称呼
数据库管理员:(DBA:Database Administrator)。
数据库管理系统:(DBMS:Database Management System)专门管理数据库。
行/记录:row/record,本质是一个东西,都是指表中的一行(一条记录):行是从结构角度出发,记录是从数据出发 。
列/字段:column/field:本质也是同一个东西。
关于SQL
SQL:(structured Query Language,结构化查询语言(数据主要以查询为主,其中99%是在查询操作))。
SQL还可分为三个部分:
DDL:(Data Definition Language)数据定义语言,用来维护存储数据的结构(数据库,表),其代表指令:create,drop,alter等。
DML:(Data Manipulation Language)数据操作语言,用来对数据进行操作(数据表中的内容),代表指令:insert,delete,update等,其中DML内部又单独进行了一个分类:DQL(Data Query Language:数据查询语言,如:select)
DCL:(Data Control Language)数据控制语言,主要是负责权限管理(用户),代表指令:grant,revoke等。