数据库简介

"""
本学习笔记来自哔哩哔哩--老男孩Python全栈开发29期全套
https://www.bilibili.com/video/BV1QE41147hU?p=519
主讲:Jason老师。
这里基于Mysql数据库进行讲解
"""

数据的本质

"""
本质其实就是一款集图网络通信的应用程序,它仅仅就是一个基于网络通信的应用程序。数据库的软件其实有很多,如:
		关系型数据库:
				MySQL, Oracle, db2, access, SQL Server
		非关系性数据库
				redis, mongodb, memcache
"""
# 关系型
		1 数据之间彼此有关系或者约束
  	2 存储数据的表现形式通常是以表格形式储存
# 非关系型
		1 储存数据通常以键值形式存在 key:values

MySQL

"""
任何基于网络通信的应用程序底层用的都是socket

- 服务端
		- 基于socket通信
		- 收发消息
		- SQL语句
- 客户端
		- 基于socket通信
		- 收发消息
		- SQL语句
"""

MySQL的安装

"""
在MySQL官网进行下载
"""
# 注明:在IT届,一般都不会轻易的使用最新版本的软件,因为新版本可能会出现各种问题。这里学习阶段推荐安装MySQL5.6版本。(目前企业里MySQL5.6左右的版本居多)

参考网站:https://www.mysql.com/

下载5.6版本即可,如果你下载了其他版本问题也不大,因为sql语句是一样的学

按照教学方式下载,会将服务端和客户端一并下载到本地

为了学习方便我们将服务端和客户端都在本地启动,后期到了公司服务端会专门跑在一台服务器上,所有人基于网络连接服务端操作

Mysql的服务端与客户端

# 服务端
mysqld.exe

# 客户端
mysql.exe

"""
注意:
	在前期配置Mysql的时候 cmd终端尽量以管理员的身份运行
	windows+r -> cmd 普通模式
	搜索cmd右键以管理员身份运行 管理员模式
"""

启动Mysql (windows)

  • 打开cmd终端窗口(用管理员模式打开),切换到mysqld所在bin目录下,输入mysqld启动。
  • 或者在环境变量中配置启动。
"""
常见软件的默认端口号:
		MySQL    3306
		redis    6379
		Mongodb 27017
"""
# MySQL第一次以管理员身份进入是没有密码的 直接回车即可

# 客户端连接服务端完整命令
		mysql -h 127.0.0.1 -P 3306 -uroot -p
"""
-h host 
-p post
-u user
-p password
"""

环境变量配置级系统服务制作

知识点补充

"""
1 如何查看当前具体进程
	tasklist
	tasklist | findstr mysqld

2 如何杀死具体进程(必须在管理员模式下的cmd)
	taskkill /F /PID PID号
	例如:
	taskkill /F /PID 25617
"""

环境变量配置

# 每次启动mysqld需要切到对应的文件路径下才能操作太多繁琐
# 将mysqld所在的文件路径添加到系统环境变量中
# 查看当前计算机的运行进程数
	services.msc
# 将MySQL制作成系统服务
	mysqld --install
# 移除MySQL系统服务
	mysqld --remove

设置密码

# mysqladmin -uroot -p原密码 password新密码
该命令直接在终端输入即可 无需进入客户端
"""
mysqladmin -uroot -p123 password 12345678
密码尽量使用自己常用密码
"""

破解密码

"""
你可以将mysql获取用户名和密码校验的功能看成是一个装饰器,装饰在了客户端请求访问的功能上,我们如果将该装饰器移除,那么mysql服务端就不会校验用户名和密码了。
"""

# 1 先关闭当前MySQL服务端
# 命令行的方式启动(让MySQL跳过用户名密码验证功能)
	mysqld --skip-grant-tables
# 2 直接以物密码的方式连接
	mysql -uroot -p
# 3 修改当前用户的密码
	update mysql.user set password=password(123456) where user='root' and host='localhost';
"""
真正储存用户表的密码字段,肯定是密文,只有用户自己知道明文是什么,其他人都不知道,这样更加的安全,密码比对也只能比对密文。
"""
# 4 立即将修改数据刷到硬盘
	flush privileges;
# 5 关闭当前服务端 然后以正常检验授权表的形式启动

统一编码

"""
MySQL的默认配置文件
my-default.ini (ini结尾的一般都是配置文件)
"""
[mysqld] # 一旦服务端启动立刻加载下面的配置
	sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql] # 一旦客户端启动立刻加载下面的配置
	sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# 需要你自己新建一个my.ini的配置文件

# 验证配置是否真的是自动加载
  [mysql]
  print('hello world')
  
  # 修改配置文件后一定要重启服务才能生效
  
  # 统一编码的配置 无需掌握 直接拷贝即可
  
  # 偷懒 将管理员的用户名和密码也添加到配置文件中
  [mysqld]
  character-set-server=utf8
  collation-server=utf8_general_ci
  [client]
  default-character-set=utf8
  [mysql]
  user="root"
  password=123456
  default-character-set=utf8

下篇:基本sql语句

posted on 2021-03-16 11:03  王科举  阅读(26)  评论(0编辑  收藏  举报