1996年:MySQL由Monty团队发布。
说明:相较于Oracle(1979年)和SQL Server(1989年),MySQL真的非常年轻。
2000年:MySQL采用GPL许可协议开源;命名存储引擎MyISAM。
2001年,集成存储引擎InnoDB,支持外键和事务。
说明:mysql是引擎独立的。把mysql比喻成一辆车,引擎就是它的发动机,而mysql这辆车的发动机是可以自由更换的。目前最常用(默认)的引擎就是InnoDB。
2005年10月,发布了里程碑的MySQL 5.0,加入了游标,存储过程,触发器,视图和事务的支持。
说明:这是mysql比肩三大主流关系型数据库的起点
2008年1月,Sun公司收购MySQL AB
说明:mysql发展进入快车道
2009年4月20日,Oracle公司收购Sun公司,推出了付费的商业版,但承诺社区版继续开源免费
说明:开源世界仍然对Oracle保持警惕,所以维护着基于mysql的MariaDB
早期都是中小型网站使用(LAMP,Linux+Apache+mysql+PHP),大型网站一般是Java+Oracle。
直到淘宝横空出世,开展了一次轰轰烈烈的去Oracle运动,将所有数据库更换成mysql,证明了:
官网社区版下载地址:https://dev.mysql.com/downloads/
注意除了MySQL Community Server,还有:
安装MySQL Server时注意:
安装完成后,我们需要检查:
MySQL所有操作均可在cmd窗口/Shell完成。但是,一般我们还是使用Workbench等可视化工具进行操作。
演示:创建连接(用户名root,密码自定,默认端口号3306),进入Workbench操作界面
进入workbench界面之后左侧有一个navigator,其中两个tab:
但是一点击Server Status就报错,给你一个
但实际上这个错误和报错信息提及的OS风马牛不相及。它实际上是一个字符集问题,解决方案是:
将C:\Program Files\MySQL\MySQL Workbench 8.0\workbench\os_utils.py中的encoding由utf-8:
process = subprocess.Popen(command, stdin = subprocess.PIPE, encoding="utf-8", stdout =
改成gbk:
process = subprocess.Popen(command, stdin = subprocess.PIPE, encoding="gbk", stdout =
参考:使用mysql workbench点击server status的错误提示,这是为什么呢?
但问题是,人家是怎么知道这个问题是由\workbench\os_utils.py下面的utf-8编码设置引起的呢?
#试一试#:在log中搜索error,看看能查到什么?
#体会#:查看log文件的作用
切换到schma,可以看到系统数据库sys。
要建自定义的数据库,需要点击上面按钮:
然后根据提示填写数据库名称,
以及(如果需要的话)使用的字符集Charset和字符比较/排序规则Collation:
点击下面的Apply按钮,就会弹出生成数据库的SQL语句:
CREATE SCHEMA `17bang` ;
继续Aplly,就会生成数据库。
在之后的开发中,有可能无法这样在workbench中手动设置charset和collation(比如使用EF建库建表),最方便的办法就是修改my.ini的文件,重新指定默认值:
default-character-set=utf8mb4 character-set-server=utf8mb4
my.ini是mysql的配置文件,一般在这两个路径下找:
切换回Administration,点击Status And System Variables,在System Variables中搜索datadir,就能找到数据库文件存放位置目录:
进入该目录,就能看到:一个数据库对应一个同名文件夹,此时文件夹还是空的,因为数据库中还没有任何表。
Status和System Variables都来源于mysql的配置文件(该文件存放位置一般在数据库文件上一层)
展开数据库,可以看到一个空的Tables,右键Create Table。然后就可以按提示添加:表名、列名和类型(INT/VARCHAR等,后文详述)……
注意这只是在构建表结构(表头/列)。点击Apply之后一样会弹出相应的SQL语句,再次Apply,就会在数据库下生成表:
在表上右键右键
就可以查看表里的“行内容”。此时表是空的,可以鼠标直接点击,将其变成可编辑状态
然后填入相应的数据。最后Apply,永久的保存到数据库。
在行上右键,还可以删除(Delete)行数据等。
mysql 8.0以上版本,一个表就一个同名.ibd文件。
演示:数据库文件夹下查看。
以后还可以查看:Index、Foreign Keys等。
表上右键:Drop Table
数据库上右键:Drop Schema
演示:.ibd文件和文件夹消失
后面我们就要学习SQL语句了。
SQL语句要写在Query窗口中,Query窗口可以这样打开:
注意窗口中的SQL语句会在“当前/默认”数据库上执行。
数据库上右键:Set As Default Schema,或者直接鼠标双击,可以将其设置为默认(会加粗显示)。
workbench默认禁止我们执行(非Key约束的)Update和Delete操作。
演示Update之后:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec
所以需要按提示修改默认设置:
多快好省!前端后端,线上线下,名师精讲
更多了解 加: