数据库简介
说起数据库,我们先来说一说数据,数据(Data)就表示描述事物的符号记录,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机。
数据库(DataBase, 简称DB)则表示存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库是长期存放在计算机内、有组织、可共享的数据集合。
说完了数据和数据库,那么该如何管理这些数据,这就用到了一个系统软件——数据库管理系统(DataBase Management System 简称DBMS)。比如:MySQL、Oracle、SQLite、Access、MS SQL Server等。
补充:数据库服务器、数据管理系统、数据库、表与记录的关系?
- 数据库服务器:运行数据库管理软件(可以说是一台计算机)
- 数据库管理软件:管理数据库(如MySQL)
- 数据库:即文件夹,用来组织文件/表
- 表:即文件,用来存放多行内容/多条记录
- 记录:即为存储的一条条数据
注意:数据库和开发语言没有关系,只不过是使用不同的语言来操作数据库而已。
数据库的分类
管理数据的工具有很多种,不止MySQL一个。我们最常使用的分类方式是根据他们存取数据的特点来划分的,主要分为关系型和非关系型。
-
关系型数据库:有固定的表结构,并且表与表之间可以建立关系。
常见的关系型数据库有:MySQL,Oracle,SqlServer,db2,access …
-
非关系型数据库:没有固定的表结构,存在的形式是key:value键值对
常见的非关系型数据库有:redis、memcache、mongodb …
下面我们来学习最常用的数据库MySQL!
MySQL
简介
MySQL是一个关系型数据库管理系统 ,本质上就是一款基于网络通信的软件。既然是基于网络通信,那么它一定有服务端和客户端之分。对于MySQL的服务端和客户端有以下几个特点:
- MySQL自带有服务端,并且只能是MySQL的服务端
- MySQL也自带客户端,但是MySQLl的客户端可以有很多个,不仅仅局限于自带的
- 服务端启动,客户端去连接,一个MySQL服务端可以服务多个客户端(必须是服务端先启动)
既然客户端可以有多个,那么我们既可以使用python语言去连接,也可以用java语言去连接,这样就很不统一,为了解决这个问题,就出现了SQL语句和NoSQL语句,SQL语句使用在所有的关系型数据库中,而NoSQL语句则使用在所有的非关系型数据库中。
下载与安装
第一步:打开网址,https://www.mysql.com ,点击downloads之后跳转到https://www.mysql.com/downloads
第二步 :跳转至网址https://dev.mysql.com/downloads/ ,拉到最下方,下载社区版
第三步 :进入地址:https://dev.mysql.com/downloads/
第四步:https://dev.mysql.com/downloads/mysql/,这里我们看到的是最新版本,点击Archives,选择windows版,然后选择自己需要下载的版本,下载即可。
补充:版本问题
- 5.6 :目前大部分项目使用的都是这个版本
- 5.7 :新项目一般选择使用
- 8.0: MySQL的最新版本,一般不推荐,但是可以学习使用
无论是哪个版本,SQL语句都是一致的。
第五步:解压下载的zip文件,将解压后的文件夹放到任意目录下,这个目录就是mysql的安装目录。
第六步:配置文件,打开mysql目录,新建文件名为my.ini,内容如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录,注意是自己的安装路径
# basedir=D:\My_download\mysql-5.6.44-winx64
# 设置mysql数据库的数据的存放目录
# datadir=D:\My_download\mysql-5.6.44-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
补充:输入\s : 查看MySQL的基本信息
第七步:安装并初始化
1. 打开cmd
2. 通过cd切换到自己的安装路径,例如:cd D:\My_download\mysql-5.6.44-winx64\bin
3. mysqld --initialize-insecure # 执行该命令初始化
执行完后,打开data目录,会看到 xx.err,初始密码就在这个文件中
第八步:配置为系统服务,就是可以关闭服务端cmd窗口,并且客户端也可以正常连接。
# 以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld install回车运行
mysqld –install
mysqld –install MySQL56 # 指定服务名
第八步:配置环境变量
在系统变量PATH后面添加: 你的mysql bin文件夹的路径(如D:\My_download\mysql-5.6.44-winx64\bin)
这样在任意位置敲击 mysql,都能找到该命令
第九步:启动mysql服务
以管理员身份在cmd中输入:net start mysql
服务启动成功之后,就可以登录了,输入mysql -u root -p
(密码在data目录下xx.err文件中)
补充:
停止mysql服务:以管理员身份在cmd中输入net stop mysql
卸载系统服务:以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld --remove
即可。
注意:
- 在windows操作系统上没有重启mysql服务的命令,如果要重启服务,只能先stop再start。
- 卸载服务之前,先关闭服务,再去卸载。
用户登录
# 默认情况下,直接输入mysql即可进入
直接输入mysql进入代表的是游客模式有些功能没有权限执行
# 管理员登录
管理员登录:mysql -u root -p
修改密码
update mysql.user set password=password(root) where user='root' and host='localhost'
或者
alter user 'root'@'localhost' identified by '123456';
# 然后退出
exit
忘记root密码
# mysqld启动时,跳过授权表,跳过tcp/ip连接
--skip-grant-tables 跳过授权表
--skip-networking 跳过tcp/ip连接,不让远程用户登录,否则远程用户不用密码可以直接登录
1. 关闭服务端,重新启动:
# 跳过授权表:客户端在登录不需要密码了
mysqld --skip-grant-tables
2. 再打开一个cmd窗口,进入mysql,正常修改密码即可
mysql
3. 修改密码
update mysql.user set password=password(root) where user='root' and host='localhost'
或者手工把授权表加载到内存
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
3. 修改完成之后,正常退出,重新启动
4. 正常登录,就需要密码了