笔记1-MySQL基础-安装MySQL,navicat和基本语法
- 完成MySQL的安装和登录等基本操作
- 通过SQL对数据库进行CRUD
- 通过SQL对表进行CRUD
- 通过SQL对数据进行CRUD
1.数据库相关概念
以前我们做系统,数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果,当然文件存储也有它的弊端。
假设在文件中存储以下数据:
姓名 年龄 性别 住址
张三 23 男 北京西三旗
李四 24 女 北京西二旗
王五 25 男 西安软件新城
现在要修改李四这条数据的性别数据改为男,我们现在学习的IO技术可以通过将所有的数据读取到内存中,然后进行修改再存到文件中。通过这种方式操作存在很大的问题,现在只有三条数据,如果文件中存储1T的数据,那么就会发现内存根本就存储不了。
现在需要能持久化存储 并且 能避免上述问题的技术使用在我们的系统中。数据库就是这样的一门技术。
1.1数据库
- 存储和管理数据的仓库,数据是有组织的进行存储
- 数据库的英文名字是 DataBase,简称DB。
数据库就是将数据存储在硬盘上,可以达到持久化存储的效果,那又是如何解决上述问题的?使用数据库管理系统。
1.2 数据库管理系统
- 管理数据库的大型软件
- 英文:DataBases Management System,简称 DBMS
在电脑上安装了数据库管理系统之后,就可以通过数据库管理系统创建数据库来存储数据,也可以通过该系统对数据库中的数据进行数据的增删改查相关的操作。文本平时说的MySQL数据库其实就是MySQL数据库管理系统。
![image-20210721185923635](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20210721185923635.png)
1.3常见的数据库管理系统
![image-20210721184354001](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20210721184354001.png)
- Oracle:收费的大型数据库,Oracle 公司的产品
- MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
- SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
- PostgreSQL:开源免费中小型的数据库
- DB2:IBM 公司的大型收费数据库产品
- SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
- MariaDB:开源免费中小型的数据库
1.4 SQL
- Structrued Query Language – 结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准,可以使用所有关系型数据库管理系统
2.MySQL
2.1 MySQL安装
- 安装环境:Win10 64位
- 软件版本:MySQL 5.7.24 解压版
2.1.1 下载
https://downloads.mysql.com/archives/community/
点开上面的链接就能看到如下界面:
![image-20210404200055449](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20210404200055449.png)
选择选择和自己系统位数相对应的版本点击右边的Download
,此时会进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:
![img](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/1556823-20181220194715840-436169502.png)
不用理会上面的登录和注册按钮,直接点击 No thanks, just start my download.
就可以下载。
2.1.2 安装(解压)
下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置。
2.2 MySQL卸载
如果你想卸载MySQL,也很简单。
右键开始菜单,选择命令提示符(管理员)
,打开黑框。
- 敲入
net stop mysql
,回车。
net stop mysql
- 再敲入
mysqld -remove mysql
,回车。
mysqld -remove mysql
- 最后删除MySQL目录及相关的环境变量。
至此,MySQL卸载完成!
2.3 MySQL配置
2.3.1 添加环境变量
- 环境变量里面有很多选项,这里我们只用到Path这个参数。为什么在初始化的开始要添加环境变量呢?
- 在CMD里面输入一个可执行的程序,Windows会现在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录去找。
- 如果还没有找到,就报错。添加环境变量就是为了在任意一个文件夹下都可以直接调用MySQL中相关的程序,而不是总去操作工作目录。
右键此电脑
→属性
,点击高级系统设置
![img](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/1556823-20181220220242472-524708778.png)
点击环境变量
![img](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/1556823-20181220220359609-736422950.png)
在系统变量
中新建MYSQL_HOME
![image-20201109140222488](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20201109140222488.png)
在系统变量
中找到并双击Path
![img](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/1556823-20181220220551145-1198958872.png)
点击新建
![image-20201109135248104](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20201109135248104.png)
最后点击确定
如何验证是否添加成功?
在CMD中敲入mysql,如果提示 Can’t connect to MySQL server on ‘localhost’,则证明添加成功
如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件
则表示添加添加失败,请重新检查步骤并重试。
2.3.2 新建配置文件
新建一个文本文件,内容如下:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
把上面的文本文件另存为,在保存类型里选所有文件 (*.*)
,文件名叫my.ini
,存放的路径为MySQL的根目录
(例如我的是D:\software\mysql-5.7.24-winx64
,根据自己的MySQL目录位置修改)。
上面代码意思就是配置数据库的默认编码集为utf-8和默认存储引擎为INNODB。
2.3.3 初始化MySQL
在刚才的黑框中敲入mysqld --initialize-insecure
,回车,稍微等待一会,如果出现没有出现报错信息(如下图)则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。
mysqld --initialize-insecure
tips:如果出现如下错误
是由于权限不足导致的,去C:\Windows\System32
下以管理员方式运行 cmd.exe
2.3.4 注册MySQL服务
在黑框里敲入mysqld -install
,回车。
mysqld -install
现在你的计算机上已经安装好了MySQL服务了。
MySQL服务器
2.3.5 启动MySQL服务
在黑框里敲入net start mysql
,回车。
net start mysql // 启动mysql服务
net stop mysql // 停止mysql服务
2.3.6 修改默认账户密码
在黑框里敲入mysqladmin -u root password 1234
,这里的1234
就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。
mysqladmin -u root password 1234
至此,MySQL 5.7 解压版安装完毕!
2.4 MySQL登陆和退出
2.4.1 登陆
右键开始菜单,选择命令提示符
,打开黑框。
在黑框中输入,mysql -uroot -p1234
,回车,出现下图且左下角为mysql>
,则登录成功。
mysql -uroot -p1234
到这里你就可以开始你的MySQL之旅了!
登陆参数:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
2.4.2 退出
退出mysql:
exit
quit
MySQL数据模型
关系型数据库
- 建立在关系模型上的数据库,简单来说,关系型数据库就是由多张能相互连接的 二维表 组成的数据库
数据库的优点:
-
都是使用表结构,格式一致,易于维护。
-
使用通用的SQL语言操作,使用方便,可用于复杂查询
- 关系型数据库可以通过SQL进行操作,所以使用方便
- 复杂查询
-
数据存储在磁盘中,安全。
数据模型:
![image-20210721212754568](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20210721212754568.png)
- MySQL中可以创建多个数据库,每个数据库对应到磁盘上的一个文件夹
- 在每个数据库中可以创建多个表,每张都对应磁盘上一个frm文件
- 每张表可以存储多个数据,数据会被存储到磁盘中 MYD 文件中
SQL概述
了解了数据模型后,接下来我们就学习SQL语句,通过SQL语句对数据库、表、数据进行增删改查操作。
3.1 SQL简介
- 英文:Structured Query Language,简称 SQL
- 结构化查询语言,一门操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
- 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
3.2 通用语法
- SQL语句可以单行 或者 多行书写,以分号结尾。
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
- 注释
- 单行注释: – 注释内容 #注释内容(MySQL特有)
- 多行注释: /* 注释内容 */
3.3 SQL分类
-
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:数据库,表,列等
DDL简单理解就是用来操作数据库,表等
![image-20210721220032047](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20210721220032047.png)
-
DM(Manipulation)L:数据操作语言,用来对数据库中表的数据进行增删改
DML简单理解就是对表中数据进行增删改
![image-20210721220132919](https://csdn-pic-1315176915.cos.ap-guangzhou.myqcloud.com/image-20210721220132919.png)
-
DQ(Query)L:数据查询语言
-
DC(Control)L:数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
DML简单理解就是对数据库进行权限控制。
tips:以后我们最常用的操作就是DML和DQL,因为开发中最常操作的就是数据。
4.DDL操作数据库
4.1查询
show databases;
4.2 创建数据库
create database 数据库名称;
在创建数据库的时候,我们并不知道数据库有没有重名的,为了避免,在创建数据库的时候先做判断,如果不存在再创建。
create database if not exists 数据库名称;
4.3 删除数据库
drop database 数据库名称;
drop database if exists 数据库名称;
4.4 使用数据库
- 使用数据库
use 数据库
- 查看当前使用的数据库
select database();
5.DDL操作表
show tables; -- 查询当前数据库下所有表名称
desc 表名称; -- 查询表结构
create table 表名 (
字段名称1 数据类型1,
字段名称2 数据类型2,
...
字段名称n 数据类型n
); -- 创建表