带你了解MySQL数据库(一)

发布于:2023-01-18 ⋅ 阅读:(525) ⋅ 点赞:(0)

一、数据存取演变历史

		文本文件(每个程序的数据 存放的位置都不一样)
			文件路径不一致: 一个C盘 一个D盘
			数据格式不一致: Lebron|123  LIke@123
		软件开发目录规范
			规定了数据文件的大致存储位置: DB文件夹
			针对数据格式还是没有完全统一 : 比如统一json文件但是内部键值对不同
		数据库服务
			统一了存取位置 也统一了数据格式(完全统一)

二、数据库软件应用史

		单机游戏
			我们都知道单机游戏在没有网络的时候也可以启动保存
			因为它的数据库服务全部在本地 下载的时候顺带了数据库
		网络游戏
			不同的计算机上相同的程序。数据之间可以共享
			数据库服务单独在网络架设(远程数据库服务)
		远程数据库服务
			可以不用担心数据安全性问题 服务器负载问题
			数据库都是有多台服务器运行相同的数据库服务

三、数据库的本质

		数据库三个字在不同的角度下描述的意思也不一样
		1.站在底层原理的角度
			数据库指的是专用用于操作数据的进程(运行在内存中的代码)
		2.	站在现实应用的角度
			数据库指的是拥有操作界面的应用程序(用于操作进程的界面)
		
		我们不做特殊说明的情况下 提数据库其实都是指数据库软件
		我们也称数据库软件本质就是一款CS架构的应用程序
		言外之意所有的程序员理论上都可以编写(市面上已经有了很多数据库软件)

四、数据库的分类

		关系型数据库
			1.数据的组织方式有明确的表结构
				ID NAME GENDER 数据是隔离的 统一结构
				关系型数据库存取数据的方式可以看成表格 每个数据都是对称的
				(id就是id编号 名字就是名字 性别就是性别 统一格式)
				
			2. 表与表之间可以建立数据库层面的关系
				男友表 女友表	只要获取到男友表的一条数据 就可以获取到与之相关的女友表数据
			
			关系型数据库的软件 MySQL PostgreSQL MariaDB Oracle Sqlite db2 sql server
				MySQL: 		开源 使用最为广泛 数据库学习必学
				PostgreSQL: 开源 支持二次开发
				MariaDB: 	开源 与MySQL是同一个作者 用法也极其相似
				Oracle:		收费 安全性极高 主要用于银行及各大重要机关
				sqlite:		小型数据库 主要用于本地测试(django框架自带该数据库)
				
		非关系型数据库
			1.数据的组织方式没有明确的表结构 是以k:v键值对的形式组织的
			   {'name':'jason'}   {'username':'kevin','pwd':123}
			2.数据之间无法直接建立数据库层面的关系
			   	
			关系型数据库的软件 redis、mongoDB、memcache
		 		redis:		目前最火 使用频率最高的缓存型数据库
		 		mongoDB:	稳定型数据库 最像关系型的非关系型 主要用于爬虫、大数据
		     	memcache:	已经被redis淘汰

五、基本使用

		1. 先启动服务端
		2. 查看Mysql文件位置以及Mysqld
		3. 再次开启新的Cmd窗口(直接回车会以游客模式进入 功能很少)
		4. 用户名密码登录 MySQL -u root -p (root = 用户名)
				mysql默认管理员账号 用户名是root 密码是你安装的时候设置的密码
		5. 推出MySQL命令(exit  quit)

六、系统服务制作

		1. 如何解决每次都需要切换路径查找文件的缺陷
				添加环境变量	 export PATH = /usr/local/mysql/bin
		2. 将MySQL服务端制作完成系统服务 (随着计算机的开启而启动 关闭而结束)
				以管理员身份打开Cmd窗口
				执行系统服务命令 mysqld --install
				启动服务端 任务管理器服务右键直接点击启动
				命令启动 net start mysql
		查看系统服务的命令 services.msc
		关闭mysql服务端 net stop mysql
		移除系统服务(先确保服务以及关闭)

七、密码相关操作

		1.修改密码(直接在Cmd中运行管理员模式)
			mysqladmin -u(需要修的用户名)  -p(原密码) passwrod 新密码
			第一次修改	mysqladmin -u root -p password 123	# 第一次修改默认密码是没有的
			第二次修改	mysqladmin -u root -p123 password 321	# 第二次修改就需要输入上次密码 修改新的
			偏门方式(有些版本无法使用):  # 需要先登录mysql用户 set password= PASSWORD(新密码);
		2.忘记密码
			方式1:直接重装\或者直接拷贝别人对应的文件
			方式2:Cmd窗口管理员运行
				1> net stop mysql				# 关闭MySql服务端服务
				2> mysql --skip-grant-tables	# 重启Mysql
				3> mysql -u root -p				# 免密码登录(需要新建一个Cmd窗口运行)
				4> udate mysql.user set password=password(新密码) where Host='localhost' and User='root';
				5> quit 或者 exit (退出当前Cmd窗口运行)
				6> 到原本第一个Cmd窗口清空命令(Ctrl+ C)
				7> net start mysql 开启mysql服务 
				8> mysql -u root -p 输入新密码即可登录成功

八、SQL与NOSQL

		数据库的服务端支持各种语言充当客户端
		ex: 以MySQL服务端为例
			MySQL客户端、python代码编写的客户端、java代码编写的客户端(各种语言都能兼容)
			为了能够兼容所有类型的客户端 有两种策略
				服务端兼容
					不合理 消耗数据库服务端资源!!!
				制定统一标准
					SQL语句 NoSQL语句
		SQL与NoSQL
			SQL语句的意思就是用来操作关系型数据库的语法
			NOSQ语句的意思操作非关系型数据库的语法
		ps:SQL有时候也用来表示关系型数据库 NoSQL也用来表示非关系型数据库

九、 数据库重要概念

		下述概念仅仅是为了小白更快的理解 并不是完全正确
		
		库 文件夹
		表 文件夹里面的文件
		记录 文件里一行一行的数据
		(库表记录就像是一个文件夹里面有一个文件文件里面有内容)

		SQL语句结束符号是分号(;)
		取消SQL语句的执行(\c)
		
		show databases; 查看所有的数据库
		show tables; 查看所有的表
		sleect * from mysql.user; 查看user表里面所有的记录

十、针对库的基本SQL语句

		1.增加库
			create database 库名;(不能使用到SQL关键词)
		2.查看库
			show databases;
			show create database 库名;
		3.修改库的语言
			alter database 库名 charset='gbk';
		4.删除库
			drop database 库名;

十一、针对表的基本SQL语句

		查看当前所在的库名 select database();
		如果没有切换制定库 那么默认是NULL
		指定进入 use 库名;

		1.添加表
			create table 表名(字段名 字段类型,字段名 字段类型); # 字段名表示数据名称的统一称呼 类型表示int str
		2.查看表
			show tables;
			show create table 表名;							#  (可以看到创建的格式)
			describe 表名;
			desc 表名;
		3.修改表名
			alter table 旧表名 rename 新表名;
		4.删除表
			drop table 表名;

十二、针对记录的基本SQL语句

	既然想要操作记录 那么肯定要有库和表 要不然操作不了

	1.增加记录
		insert into 表名 values(数据,数据); 			# 数据根据自己的字段名输入对应的数据就好了
	2.查看记录
		select * from 表名; 						# * 表示查看所有的字段记录
		select 字段1,字段2 from 表名; 				# 查看单独两个字段记录
		ps:如果表中字段较多出现了错乱 可以结尾写\G
	3.修改记录
		update 表明 set 字段名=新数据 where 筛选条件;   # 筛选条件就是字段名
	4.删除记录
		delete from 表名; 							# 删除标中所有的数据
		delete from 表名 where 筛选条件 				# 按照条件删选数据

技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点点赞收藏+关注 谢谢支持 !!!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到