初学MYSQL数据库第一天

MYSQL数据库的下载以及安装

MySQL是一个小型的数据库管理系统,由于其体积小,速度快,尤其是开放源代码等优点,使得其在开发中得到广泛的使用,本文主要介绍MySQL数据库从下载到安装及通过命令行的使用等。点击打开链接,这里面的安装过程十分详细大家可以参考。

数据库:PHP三阶段

基本阶段:mysql数据库的基本操作(增删改查),高级操作(视图,触发器,函数,存储过程),PHP操作,mysql数据库。

优化阶段:如何提高数据库效率,如索引、分表等。

部署阶段:如何搭载真实的环境系统,如服务器集群、负载均衡。

数据库基础

1、什么是数据库?

数据库:database,存储数据的仓库。(简单通俗来说)

数据库:高效的存储和处理数据的介质。(介质分为两种:磁盘和内存(RAM))

2、数据库的分类:

基于存储介质的不同分为两类:关系型数据库(SQL)和非关系型数据库(NOSQL:Not only SQL)

3、不同数据库阵营中的产品有哪些?

关系型数据库:

大型:Oracle,DB2

中型:SQL-SERVER,mysql等

小型:access等

非关系型数据库:memcached,mongodb,redis(同步到磁盘)

4、两种数据库阵营的区别?

关系型数据库:优点(安全保存磁盘文件不丢失)缺点(比较浪费空间,以二维表的形式)

非关系型数据库:效率高但是不够安全,断电丢失。

关系型数据库

1、什么是关系型数据库?

关系型数据库:是一种建立在关系模型(数学模型)的数据库。

关系模型:一种所谓建立在关系上的模型,关系模型包括三个方面

1、数据结构:数据存储的问题,二维表(有行和列)。

2、操作指令集合:所有的SQL语句操作。

3、完整性约束:表内数据约束(字段与字段),表与表之间约束(外键)

例如:w3c规范约束点击打开链接

2、关系型数据库的设计

关系型数据库:从需要存储的数据需求中分析,如果是一类数据(实体)应该设计成一张二维表:表头(字段名:用来规定数据的名字)和数据部分组成(实际存储的数据单元)

二维表由行和列组成:


表头 字段名1 字段名2
数据单元 数据1 数据2

接下来给大家分析一个实际案例:分析一个教学系统,其中讲师负责教学,教学生,在教师教学生。

1、找出系统中所有存在的实体:讲师表,学生表,班级表。

2、找出实体中应该存的数据信息:

讲师:姓名、性别、年龄、工资

学生:姓名、性别、学号、学科

班级:名字、班级编号

关系型数据库:维护实体内部,实体与实体之间的联系。

实体内部联系:每个学生都有姓名学号,性别,学科信息。

举例如下:表格一

姓名 性别 学号 学科 年龄
迪丽热巴 06151088 PHP 18
唐艺昕 06151077 PHP 20
胡歌 05151099 UI 21

第二行的所有字段,都是在描述迪丽热巴这个学生(内部联系),第二列来看只可以放性别(内部约束)

关系型数据库的特点之一:如果表内对应的某个字段没有数值(数据),但是系统依然要分配空间,关系型数据库比较浪费空间。

实体与实体之间的联系:每个学生可定属于某个班级(一对一)每个班级可定有很多学生(一对多)

表格二:班级表

班级名称 班级编号
PHP1505 B220
PHP1503 A107

知道了表格一和表格二之后,我们并不知道学生所对应的班级,这显然是不合理的,所以我们需要在学生表中添加一个班级字段(必须能够唯一的找到一个班级信息),同样可以在班级表中添加学生,但是太多学生了会比较凌乱,结果如下:

姓名 性别 学号 学科 年龄 班级名称
迪丽热巴 06151088 PHP 18 PHP1505
唐艺昕 06151077 PHP 20 PHP1503
胡歌 06151099 UI 21 UI1602

这样我们就可以找到唯一的对应关系。学生实体与班级实体的关联关系:实体与实体的关系。

关键字说明:

数据库:database

数据库:(database system)DBS:是一种虚拟系统,将多种内容关联起来的称呼。

DBS=DBMS+DB

DBMS:database management system数据库管理系统,专门管理数据库。

DBA:database administractor数据库管理员


行/记录:row/record,本质是一个东西,都是指表中的一行(一条记录),行是从结构角度出发,记录是从数据角度出发。

列/字段:coclumn/field,本质也相同。

SQL:structured 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(分配回收权限)等。

SQL是关系型数据库的操作指令,SQL是一种约束,但不强制(类似于w3c)不同数据库的产品(如Oracle和mysql)可能内部会有一些细微的区别。


Mysql数据库

mysql数据库是一种c/s结构的软件,客户端/服务端,若想访问服务器必须通过客户端(服务器是一直运行的,客户端是需要使用的时候运行)

扁平化:也即不进行区分服务端和客户端。点击打开链接

交互方式:

1、客户单连接认证:连接服务器认证身份

例如:mysql.exe -h pup


2、发送SQL指令

3、服务器接收SQL指令:处理SQL指令,返回操作结果。

4、客户端接受结果,显示结果


5、断开连接(释放资源,服务器并发限制)退出方式exit/quit/\q都可以退出。


Mysql的服务器对象

我们没有办法完全了解服务器内部的内容,只能粗略的去分析数据库服务器内部的结构,将mysql服务器内部对象分成了四层:系统(DBMS)>数据库(DB)>数据表(Table)>字段(field)


SQL的基本操作:增删改查。

将SQL的基本操作根据操作对象进行了分类,分为以下几类:库操作、表操作(字段)、数据操作。

库操作,对数据进行增删改查。

新增数据库

基本语法:

create database 数据库名字(字母数字下划线,但是不可以数字开头) 【库选项】;

库选项:用来约束数据库,分为两个选项。

1、字符集设定:charset/character set具体字符集(数据存储的编码格式)常用字符集:GBK和UDF8

2、校对集设定:collate具体校对集(数据比较的规则)

-- 双中划线加空格表示注释,单行注释也可以用#号

注意事项:1、数据库名字不能用关键字(以境内使用的字符)或者保留字(将来可能会用到的字符)

3、如果用关键字进行命名会报错,SQL语句报错,只会告诉用户错误的大概位置,不会说明报错原因。

4、如果非要使用关键字或者保留字,那么必须使用反引号(键盘esc按键下面的键在英文状态下的输出:`)


5、中文数据库也是可以的,但是有前提条件,保证服务器能够识别(不建议大家用中文)


5、解决方案就是,告诉服务器当前的中文字符集。


当创建数据库的 SQL语句执行之后发生了什么?

1、在数据库系统中,增加了对应的数据库信息。

2、会在保存数据的文件夹下:data目录创建一个对应数据库名字的文件。3、每个数据库下面都有opt文件,保存了库选项。


第一行表示字符集。

第二行校对集:校对集依赖字符集。

猜你喜欢

转载自blog.csdn.net/aaaaaab_/article/details/79929168