数据库
存储数据的演变过程
'''
随意的存到一个文件中,数据格式也是千差万别的,完全取决于我们自己
小李
jason | 123 | NB
小王
egon - 123 - DBJ
小红
tank~123~hecha
软件开发目录规范
限制了存储数据的具体位置(db目录)
---Appname
---bin启动文件
---conf配置文件
---lib公共方法
---core业务逻辑(核心代码)
---db存储数据
---log日志
---readme.txt(产品说明)
假设上述是一个单机游戏
那么每个人的游戏记录置只会在自己的计算机上面保存
注册登录的账号也只能在自己的计算机上有效
如何将单机变成联网?
将所有用户数据存储到数据库服务端,通过网络通信来交互数据;就一台数据库如果挂了就麻烦,所以可以有多台数据库进行备份,其中
一台挂了影响不是太大,这就叫数据库集群。
'''
数据库的本质
'''
本质其实就是一款基于网络通信的应用程序
那其实每个人能可以开发一款数据库软件,因为它仅仅就是一个基于网络通信的应用程序
也就意味着数据库软件有很多很多
关系型数据库(存储数据)
MySQL / oracle / db2 / access / sql server
非关系型数据库(主要用来做缓存)
redis / mongodb / memcache...
关系型:
数据之间彼此有关系或约束
女生表和前男友表(一个女生可能对应多个不同前男友)
存储数据的表现形式通常是以表格存储
name password hobby
jack 123 read
mike 123 study
每个字段还会有存储类型的限制
比如姓名只能存字符串...
非关系型:
存储数据通常都是以k,v键值对的形式
'''
MySQL
'''
任何基于网络通信的应用程序,底层用的都是socket
---服务端
---基于socket通信
---收发消息
---SQL语句
---客户端
---基于socket通信
---收发消息
---SQL语句
MySQL不单单支持MySQL自己的客户端app,还支持其它编程语言来充当客户端操作,如何解决语言沟通的障碍?
1:让服务端兼容所有的语言(一个人精通多国语言)
2:采用统一的语言(SQL语句)
'''
重要概念介绍
'''
库 》》》 文件夹
表 》》》 文件
记录 》》》 文件内一行行的数据
表头:表格的第一行字段(name,password,hobby)
字段:name字段、password字段、hobby字段
表单:表头除外,下面的信息都叫表单(jack,123,read...)
name password hobby
jack 123 read
mike 123 study
'''
MySQL的安装
'''
TIPS:在IT,一般都不会轻易的使用最新版本的软件;因为新版本可能会出现各种问题(你原本项目跑的好好的,非要画蛇添足更新版本,然后项目崩溃)
小段子:更新完没事,那么你还是一个普通员工;更新完出事,那么你就是一名'烈士'
MySQL有很多版本(5.6/5.7/8.0),目前企业里面用的比较多的还是5.6左右
MySQL下载网站:https://www.mysql.com/ > DOWNLOADS > MySQL Community (GPL) Downloads > MySQL Community Server > Looking for previous GA versions? > 选择对应操作系统即可选择5.7版本进行Download下载
按照此方式下载,会将服务端和客户端一并下载到本地
为了学习方便,所以服务端和客户端都在本地启动,后期公司会把服务端专门跑在一台服务器上,所有人基于网络连接服务端操作
'''
MySQL服务端与客户端
'''
服务端
bin/mysqld.exe
客户端
bin/mysql.exe
注意:
安装完后,第一步先添加系统变量Path(windows安装并配置mysql具体教程:https://www.cnblogs.com/alan-lin/p/9966917.html) # 先安装,再添加系统环境变量,然后设置配置文件,然后初始化MySQL(mysql命令),再进行安装(mysql命令),最后启动MySQL(mysql命令)
MySQL安装后,先要进行my.ini(没有就新建,放在MySQL安装的目录下(mysql-5.7.35-winx64目录下))配置文件的设置,样式如下:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
basedir=C:\Program Files\mysql-5.7.35-winx64 --mysql安装路径
datadir=C:\Program Files\mysql-5.7.35-winx64\data
port=3306
default-storage-engine=INNODB
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
在前期配置MySQL的时候,cmd终端尽量以管理员的身份运行
windows+r,输入cmd进入的是普通用户终端,有一些命令是无法执行的
左下角搜索cmd,然后右键点击,选择以管理员身份运行
'''
启动
'''
cmd终端先切换到mysqld所在的bin目录下,然后输入mysqld即可
保留原来的cmd窗口,重新打开一个
常见软件的默认端口号
MySQL 3306
redis 6379
mongodb 27017
django 8000
flask 5000
tomcat 8080
...
MySQL用户端第一次以管理员身份进入是没有密码的,(命令:mysql -h 127.0.0.1 -P 3306 -uroot -p)输入命令直接回车即可
'''
sql语句初识
'''
1:MySQL中的sql语句是以分号作为结束的标志
2:基本命令
show databases;---查看所有库名
3:连接服务端的命令可以简写
mysql -uroot -p
4:当你输入的命令不对,又不想让服务端执行并返回报错信息,可以后面接c取消
5:客户端退出,退出命令加不加分号都可以执行
quit
exit
6:当你在连接服务端的时候,发现只输入mysql也能连接,但是你不是管理员身份,而只是一个游客模式(游客模式输入show databases;展示的默认库只有两个,而管理员输入show databases;展示的默认库有4个)
'''