关于前端:前端开发之MySQL全栈成长之路

46次阅读

共计 4212 个字符,预计需要花费 11 分钟才能阅读完成。

MySQL 是什么

MySQL 是最风行的关系型数据库管理系统,在 WEB 利用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

什么是数据库

1)数据库(Database)是依照数据结构来组织、存储和治理数据的仓库。

2)每个数据库都有一个或多前端培训个不同的 API 用于创立,拜访,治理,搜寻和复制所保留的数据。

3)咱们也能够将数据存储在文件中,然而在文件中读写数据速度绝对较慢。

4)所以,当初咱们应用关系型数据库管理系统(RDBMS)来存储和治理大数据量。所谓的关系型数据库,是建设在关系模型根底上的数据库,借助于汇合代数等数学概念和办法来解决数据库中的数据。

数据库存储数据的优先:

可存储大量数据;
不便检索;
保持数据的一致性、完整性;
平安,可共享;
通过组合分析,可产生新数据。
常见数据库

1. 关系型数据库

MySQL(甲骨文)
SQL Server(微软)
Oracle(甲骨文)
PostgreSQL(CA 国内公司)
DB2(IBM)
2. 非关系型数据库(NoSQL)

Redis(键值存储数据库)
MongoDB(文档型数据库)
RDBMS 术语

1)数据库: 数据库是一些关联表的汇合。

2)数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简略的电子表格。

3)列: 一列(数据元素) 蕴含了雷同类型的数据, 例如邮政编码的数据。

4)行: 一行(= 元组,或记录)是一组相干的数据,例如一条用户订阅的数据。

5)冗余: 存储两倍数据,冗余升高了性能,但进步了数据的安全性。

6)主键: 主键是惟一的。一个数据表中只能蕴含一个主键。你能够应用主键来查问数据。

7)外键: 外键用于关联两个表。

8)复合键: 复合键(组合键)将多个列作为一个索引键,个别用于复合索引。

9)索引: 应用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种构造。相似于书籍的目录。

10)参照完整性: 参照的完整性要求关系中不容许援用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目标是保证数据的一致性。

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的 ” 关系型 ” 能够了解为 ” 表格 ” 的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格(图援用菜鸟教程):

表头 (header): 每一列的名称;
列(col): 具备雷同数据类型的数据的汇合;
行 (row): 每一行用来形容某条记录的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型雷同;
键(key): 键的值在当前列中具备唯一性。
MySQL 装置

官网下载 MySQL 社区版 windows 64 位
MySQL 压缩包可解压到任意目录下

留神:上一级目录命名不能有空格

新增 data 文件夹和 my.ini 文件
下载的数据库压缩包解压好后,在根目录新建 data 文件夹,而后再新建 my.ini 文件,my.ini 文件内容如下:

[mysqld]
设置 3306 端口
port=3306
设置 mysql 的装置目录
basedir=D:\mysql-5.7.30-winx64
设置 mysql 数据库的数据的寄存目录
datadir=D:\mysql-5.7.30-winx64\data
缓冲目录
tmpdir=D:\mysql-5.7.30-winx64\data
容许最大连接数
max_connections=200
容许连贯失败的次数。这是为了避免有人从该主机试图攻打数据库系统
max_connect_errors=10
服务端应用的字符集默认为 UTF8
character-set-server=utf8
创立新表时将应用的默认存储引擎
default-storage-engine=INNODB
[mysql]
设置 mysql 客户端默认字符集
default-character-set=utf8
[client]
设置 mysql 客户端连贯服务端时默认应用的端口
port=3306
default-character-set=utf8
[mysqld]
explicit_defaults_for_timestamp=true

这里有个坑,如果你的 MySQL 版本高于 5.6.6 和低于 5.7 之前,对于 timestamp 为 null 的时候,可能会报错。解决办法,增加或批改配置文件 explicit_defaults_for_timestamp=true。

配置环境变量
抉择“我的电脑”,单击右键,抉择“属性 -> 高级 -> 环境变量中的零碎变量,对 Path 这个零碎变量设置如下相应的值(设置准则:如果存在相应的变量,间接对该变量进行编辑,留神只增加不删除;如果该变量不存在,则新建后再编辑。如图所示:


编辑实现后,点击确定按钮配置已实现,记住肯定是 3 个确定。

获取初始密码
以管理员身份运行命令提示符(即:cmd),进入 mysql 装置目录,执行以下命令。打印日志输入 onA<=Dis>45S 一个长期的明码,肯定要记住,不便更改明码。
mysqld –initialize –console
OR
mysqld –initialize –user=mysql –console

mysqld –remove mysql // 删除 MySQL 服务
mysqld –install // 装置 MySQL 服务

Win + R 关上命令行窗口,输出 services.msc 命令,确认是否装置胜利,如图所示:
 

Win + R 输出 cmd 关上命令行窗口
mysql -V // 打印输出版本信息

启动服务命令
net start mysql // 启动服务
net stop mysql // 进行服务

这里有个坑,如图所示:

批改初始密码
关上命令行窗口,执行以下命令,登录本机 MySQL 服务器,如图所示:

// 残缺的命令 mysql -h 127.0.0.1 -P 3306 -u root -p
mysql -u root -p // mysql -h 主机名 -P 端口号 -u 用户名 -p
Enter password: // 输出初始密码
mysql> alter user user() identified by “ 新密码 ”;

退出登录服务命令,代码如下:

mysql> exit
OR
mysql> quit

MySQL 可视化工具

不想敲 SQL 命令,举荐一款 Navicat Premium12 可视化工具,操作方便快捷,而且是收费破解版,十分好用。

创立连贯胜利后,双击本地数据库,图标变亮,示意已连贯,而后右键,下拉抉择新建数据库,如图所示:

点击确定后,mytest 数据库创立胜利,接下来咱们能够依据性能需要进行表构造的设计。当初创立一个新表,表名 user,表字段为:姓名(name:string)、性别(sex: int)、年龄(age: int)。如图所示:

user 表创立胜利后,能够试着手动增加一条,理论我的项目开发中,执行 SQL 语句命令能够提交开发效率。

疾速建表

疾速创立 user 表的 SQL 语句命令如下:

CREATE TABLE user (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘ 主键 ID,主动递增 ’,
name varchar(32) NOT NULL COMMENT ‘ 姓名 ’,
sex int(11) NOT NULL COMMENT ‘ 性别:0 – 男 1 – 女 ’,
age varchar(10) NOT NULL COMMENT ‘ 年龄 ’,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

部署开发

本地部署后端服务,采纳 NodeJS 来连贯 MySQL 数据库。

首先依据本机系统环境装置 NodeJS,请移步到 NodeJS 官网下载(https://nodejs.org/en/download/)指定安装包,下载本地后,双击安装包,依据弹框提醒操作步骤实现装置。

查看 NodeJS 版本,代码如下:

node -v // 输入版本号,阐明已装置胜利

NodeJS 连贯数据库

  1. 新建文件夹 node-mysql-demo

mkdir node-mysql-demo

  1. 创立 package.json 文件

npm init

  1. 新建 app.js 文件,作为程序入口,创立服务器。

// app.js
const http = require(‘http’); // 引入 http 模块
const server = http.createServer((req, res) => {// 创立 http 服务器
res.end(‘hello node-mysql’);
})
server.listen(3000, () => {// listen 办法监听 3000 端口
console.log(‘ 服务启动胜利 http://localhost:3000’);
})

http 服务器创立实现后,执行以下命令:

node app.js

  1. 装置 MySQL 驱动

npm install -S mysql
OR
cnpm install -S mysql

  1. 连贯数据库

// app.js
const http = require(‘http’); // 引入 http 模块
const mysql = require(‘mysql’); // 引入 mysql 模块

let connection = mysql.createConnection({// 创立 mysql 实例
host: ‘127.0.0.1’,
port: ‘3306’,
user: ‘root’,
password: ‘123456’,
database: ‘mytest’
})
connection.connect();

let sql = ‘select * from user’; // 查问语句
let str = ”;
connection.query(sql, (err, result) => {
if (err) {

console.log('[select error]:', err.message);
return;

}
str = JSON.stringify(result);
console.log(str); // 数据库查问后果返回到 result 中
})

const server = http.createServer((req, res) => {// 创立 http 服务器
res.end(str); // 发送响应数据
})

connection.end();

server.listen(3000, () => {// listen 办法监听 3000 端口
console.log(‘ 服务启动胜利 http://localhost:3000’);
})


正文完
 0