数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:
(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
数据库作为最重要的基础软件,是确保计算机系统稳定运行的基石。
我们知道早期数据存储直接保存在本地硬盘上,无法实现共享。打个比方,在家里下载的单机游戏,到朋友家玩同样的游戏,游戏进度是没办法同步的。如果要同步,是不是需要把进度放到某个固定的服务器(计算机),然后我们登录账号去同步那台计算机的游戏进度。
数据库存储的数据可以在任何一台计算机上访问,那么数据库所在计算机时服务器,其他访问数据库的计算机都是客户端,可以说数据库时C/S架构的软件。
数据库大致分为关系型数据库和非关系型数据库。
区别(简单理解):
关系型数据库有表结构,非关系型数据库是以key - value
存储的,没有表结构。
常见数据库:
关系型数据库(又称RDBMS:Relational Database Management System)
MySQL - 主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码
因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
Oracle - 主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。
也是甲骨文公司的产品。
PostgreSQL - PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。
MariaDB - SUN被甲骨文收购后,MySQL 的原创人员有拉出另外一个分支,
命名MariaDB 。该数据库被维基百科,Facebook 甚至 Google
等技术巨头使用。 MariaDB 是一种可为 MySQL 提供插件替换功能的
数据库服务器。开发人员的首要关注点是安全性,在每个版本发布时,
开发人员还会合并所有 MySQL 的安全修补程序,
并在需要时对其进行增强。
sqlite
sql server
db2
非关系型数据库
mongodb - MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前noSql数据库产品中最热门的一种。它在许多场景下用于替代传统的关系型数据库或键值对存储方式,MongoDB是用C++开发。
redis - redis是一款内存高速缓存数据库。是完全开源免费的,用C语言编写的,遵守BSD协议,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。
memcache
下载地址: https://downloads.mysql.com/archives/community/
下载对应版本后解压到文件夹
将文件夹内的bin目录添加到环境变量:
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --》 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
bin文件夹
mysqld.exe 服务端
mysql.exe 客服端
data文件夹
存储使用过程中需要保存的数据
my-default.ini
配置文件
redadme
说明文件
为了学习方便需要将服务端和客户端都在本地启动,公司服务端会专门跑在一台服务器上,所有人基于网络连接服务端操作。
为了不必每次开机都重新启动服务端,可以将服务端制作成系统服务,开机自动启动
1.查看当前计算机系统服务列表
services.msc
2.以管理员身份运行cmd并制作系统服务
mysqld --install # 仅仅是添加到了系统服务 第一次需要手动启动
3.启动服务
方式1:鼠标右键选择启动即可
方式2:命令行方式启动
net start mysql
停止服务
net stop mysql
移除系统服务
mysqld --remove
1.游客模式登陆
mysql
2.账号登录(本地使用)
mysql -u用户名 -p密码
第一次登录 root用户没有密码 直接连续回车即可
3.完整命令
mysql -hIP地址 -P端口号 -u用户名 -p密码
常见软件的默认端口号 MySQL 3306 redis 6379 mongodb 27017 django 8000 flask 5000
方式1:直接在cmd窗口内使用mysqladmin命令
mysqladmin -uroot -p原密码 password 新密码
eg:
mysqladmin -uroot -p password 123
mysqladmin -uroot -p123 password 666
方式2:直接在登录状态下修改当前登录用户的密码
set password=PASSWORD('密码')
1.关闭服务端
2.以跳过授权表的方式重新启动服务端
只需要提供用户名就可以登录
mysqld --skip-grant-tables
3.以管理员身份登录
mysql -uroot -p
4.修改管理员用户密码
update mysql.user set password=password(123) where user="root" and host="localhost";
5.关闭服务端再正常启动
ctrl + C
net start mysql
6.使用修改之后的密码登录
查看MySQL内部默认的编码情况
命令:\s
修改配置文件(默认为mydefault.ini)
1.拷贝默认的配置文件并且重新命名为my.ini
2.拷贝固定的配置信息
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3.重启MySQL服务端
为了方便可以将用户名和密码也加在配置文件中,以后登录就不用输了
user="root"
password=123456