什么是MySQLMySQL是最流行的关系型数据库管理系统,也是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。什么是数据库1)数据库(Database)是按照数据结构组织、存储和管理数据的仓库。2)每个数据库都有一个或多个不同的API,用于创建、访问、管理、搜索和复制保存的数据。3)我们也可以将数据存储在文件中,但是在文件中读写数据比较慢。4)所以,现在我们使用关系数据库管理系统(RDBMS)来存储和管理大量数据。所谓关系型数据库就是建立在关系模型基础上的数据库,利用集合代数等数学概念和方法对数据库中的数据进行处理。数据库存储数据的优先级:可以存储大量数据;便于检索;保持数据的一致性和完整性;安全且可共享;通过组合分析,可以产生新的数据。常见数据库1、关系型数据库MySQL(Oracle)SQLServer(微软)Oracle(甲骨文)PostgreSQL(CA国际)DB2(IBM)2、非关系型数据库(NoSQL)Redis(键值存储数据库)MongoDB(文档型数据库)RDBMS术语1)数据库:数据库是关联表的集合。2)数据表:表是数据的矩阵。数据库中的表看起来像一个简单的电子表格。3)列:列(数据元素)包含相同类型的数据,例如邮政编码数据。4)行:行(=元组,或记录)是一组相关的数据,比如用户订阅的一条数据。5)冗余:存储两倍的数据,冗余降低了性能,但是提高了数据的安全性。6)主键:主键是唯一的。一张数据表只能包含一个主键。您可以使用主键来查询数据。7)外键:外键用于关联两个表。8)复合键:复合键(compositekey)使用多个列作为索引键,一般用于复合索引。9)索引:使用索引可以快速访问数据库表中的特定信息。索引是一种对数据库表中一个或多个列的值进行排序的结构。类似于书籍目录。10)参照完整性:参照完整性要求在关系中不允许引用不存在的实体。实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。MySQL是关系数据库(RelationalDatabaseManagementSystem)。这个所谓的“关系”可以理解为“表”的概念。关系型数据库由一张或几张表组成,如图(图。参考菜鸟教程):表头(header):每一列的名称;列(col):具有相同数据类型的数据的集合;行(row):每一行用于描述一条记录的具体信息;value(value):行的具体信息,每个值必须与列的数据类型相同;键(key):键的值在当前列中是唯一的。从官网下载MySQLCommunityEdition进行MySQL安装。Windows版64位MySQL压缩包,可以解压到任意目录。注意:上级目录名称不能有空格。在该目录下新建data文件夹,然后新建my.ini文件。my.ini文件内容如下:[mysqld]设置端口3306port=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允许连接失败数。这是为了防止有人试图从主机攻击数据库系统设置mysql客户端的默认字符集default-character-set=utf8[client]设置mysql客户端连接服务器的默认端口port=3306default-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>45SAtemporary密码,一定要记住,修改密码也方便mysqld--initialize--consoleORmysqld--initialize--user=mysql--consolemysqld--removemysql//删除MySQL服务mysqld--install//安装MySQL服务Win+R打开命令行窗口,输入services.msc命令,确认是否安装成功,如图:Win+R输入cmd打开命令行窗口mysql-V//打印出版本信息启动服务命令netstartmysql//启动服务netstopmysql//停止服务这里有个坑,如图注意:修改初始密码打开命令行窗口,执行以下命令登录本地MySQL服务器,如图://完整命令mysql-h127.0.0.1-P3306-uroot-pmysql-uroot-p//mysql-h主机名-P端口号-u用户名-pEnterpassword://输入初始密码mysql>alteruseruser()identifiedby"newpassword";退出登录服务命令,代码如下:mysql>exitORmysql>quitMySQL可视化工具不想输入SQL命令。推荐一款NavicatPremium12可视化工具,操作方便快捷,而且是免费破解版,非常好用。连接创建成功后,双击本地数据库,图标变亮,表示已连接,然后右击,在下拉列表中选择新建数据库,如图:点击确定后,mytest数据库创建成功,接下来我们就可以根据功能需求设计进行表结构了。现在新建一个表,表名为user,表字段为:name(name:string)、gender(sex:int)、age(age:int)。如图:用户表创建成功后,可以尝试手动添加一张。在实际项目开发中,执行SQL语句可以提高开发效率。快速创建用户表的SQL语句命令如下:CREATETABLEuser(idbigint(20)NOTNULLAUTO_INCREMENTCOMMENT'主键ID,自增',namevarchar(32)NOTNULLCOMMENT'name',sexint(11)NOTNULLCOMMENT'Gender:0-Male1-Female',agevarchar(10)NOTNULLCOMMENT'Age',PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;部署开发本地部署后端服务,使用NodeJS连接MySQL数据库。首先根据本地系统环境安装NodeJS。请移至NodeJS官网下载(https://nodejs.org/en/download/)指定的安装包。下载到本地后,双击安装包,根据弹框提示完成安装。查看NodeJS版本,代码如下:node-v//输出版本号,说明已经安装成功NodeJS连接数据库,新建文件夹node-mysql-demomkdirnode-mysql-democreatesapackage.json文件npminit创建一个新的app.js文件作为程序入口,创建一个服务器。//app.jsconsthttp=require('http');//导入http模块constserver=http.createServer((req,res)=>{//创建http服务器res.end('hellonode-mysql');})server.listen(3000,()=>{//listen方法监听3000端口console.log('服务启动成功http://localhost:3000');})http服务器创建完成后,执行如下命令:nodeapp.jsinstallMySQLdrivernpminstall-SmysqlORcnpminstall-Smysql连接数据库//app.jsconsthttp=require('http');//导入http模块constmysql=require('mysql');//引入mysql模块letconnection=mysql.createConnection({//创建mysql实例host:'127.0.0.1',port:'3306',user:'root',password:'123456',database:'mytest'})connection.connect();letsql='select*fromuser';//查询语句letstr='';connection.query(sql,(err,result)=>{if(err){console.log('[selecterror]:',err.message);return;}str=JSON.stringify(result);console.log(str);//数据库查询结果返回result})constserver=http.createServer((req,res)=>{//创建httpserverres.end(str);//发送响应数据})connection.end();server.listen(3000,()=>g吨;{//listen方法监听3000端口console.log('服务启动成功http://localhost:3000');})
