• MySQL数据库(一)


    MySQL数据库

    一、数据存取演变历史

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

    二、数据存储的发展史

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

    三、数据库的本质

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

    四、数据库的分类

    	关系型数据库
    	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淘汰(支持一种字符串类型的K:V键值对)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    五、基本使用

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

    六、系统服务的制作

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

    七、SQL与nosql的介绍

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

    八、MySQL数据库的介绍

    1.什么是数据库?

    数据库是"按照数据结构来组织、存储和管理数据的仓库"。是一个长期存储在计算机内的、有组织的、可共享的,统一管理的大量数据的集合。数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、乃至上亿条数据。

    在数据库的发展史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展,数据库技术在各个方面的快速的发展。特别是关系型数据库已经成为目前数据库产品中最重要的一员,80年代以来,几乎所有的数据库厂商新出的数据库产品都支持关系型数据库,即使一些非关系数据库的产品也几乎都有支持关系数据库的接口。随着云计算的发展和大数据时代,引入了其它分布式技术,这类数据库一般称为N哦SQL数据库。

    简单总结:

    1.1 数据库(DB ,database)是按照数据结构来组织、存储和管理数据的"仓库"
    1.2 数据库是一定方式储存在一起、能为多个用户共享、统一管理的大数据集合
    1.3 数据库可以通过一些指令对数据库进行赠、删、改、查(Create/Retrive/Updata/Delete)等操作

    2.数据库的作用

    2.1 实现数据共享:可以存取数据库中的数据,也可以通过接口连接数据库并共享数据
    2.2 减少数据的冗余度:由于可以直接想数据库存拿以及共享数据,避免了用户各自建立应用文件,减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
    2.3 保持了数据的独立性:数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(谁物理结构的变化不影响数据的逻辑结构)。
    2.4 数据实现集中控制:数据库可对数据进行集中控制和管理,并通过数据模型表示各种谁的组织以及数据间的关系。
    2.5 数据一致性和可维护性:以确保数据的安全性和可靠性:主要包括(安全性控制、完整性控制、并发控制,便在同一时间周期内,运行多数据实行多路存取,又能防止用户之间的不正常交互作用。)
    2.6 故障恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复,数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统误操作造成的数据错误等。

    十、密码相关操作

    	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 输入新密码即可登录成功
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    九、数据库的重要概念

    	下述概念仅仅是为了小白更快的理解 并不是完全正确
    	
    	数据(data)					事物的状态
    	库(DataBase,简称DB)		文件夹
    	表							文件夹里的文件
    	记录						文件里的一行一行的数据
    	(库表记录就像是一个文件夹里面有一个文件,文件里面有内容)
    
    	数据库管理系统(DataBase Management System 简称DBMS)
    	管理数据的套接字软件,C/S架构
    
    	数据库服务器:
    		运行有DBMS服务端的计算机,该计算机对内存和硬盘要求都 相对较高
    		
    	'''顺序:库 >>> 表 >>> 记录 >>> 字段'''
    	一个库中可以有多张表,一个表中可以有很多条记录,也可以有多个字段
    	
    	SQL语句结束符号是分号(;)
    	取消SQL语句的执行(\c)
    
    	show databases;	查看所有的数据库
    	show tables;	查看所有的表
    	sleect * from mysql.user;	查看user表里面所有的记录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

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

    	1.增加库
    		create database 库名;(不能使用到SQL关键词)
    	2.查看库
    		show databases;(库列表)
    		show create database 库名;(单个库数据)
    	3.修改库的语言(基本上不用,直接删除重新创建)
    		alter database 库名 charset='gbk';
    	4.删除库
    		drop database 库名;
    	5.选择库
    		use 库名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

    	查看当前所在的库名 select database();
    	如果没有切换制定库 那么默认是NULL
    	指定进入 use 库名;
    
    	1.添加表
    		create table 表名(字段名 字段类型,字段名 字段类型)#字段名表示数据名称的统一称呼 类型表示int str
    		eg:create table u1s1(id int ,name varchar(32))
    	2.查看表
    		show tables;
    		show create table 表名;# (可以看到创建的格式)表结构
    		describe 表名;
    		desc 表名; # (查看表结构,格式化了)
    	3.修改表名
    		alter table 旧表名 rename 新表名;
    	4.删除表
    		drop table 表名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    	既然想要操作记录 那么肯定要有库和表 要不然操作不了
    	'记录:表中的一行一行的数据称之为是一条记录'
    
    	1.增加记录
    		insert into 表名 values(数据,数据); 		# 全字段增加,单条增加
    		insert into 表名 values(数据,数据)(数据,数据)  # 全字段增加,批量增加
    	2.查看记录
    		select * from 表名; 						# * 表示查看所有的字段记录
    		select 字段1,字段2 from 表名; 				# 查看单独两个字段记录
    		ps:如果表中字段较多出现了错乱 可以结尾写\G
    	3.修改记录
    		update 表名 set 字段名=新数据 where 筛选条件;   # 筛选条件就是字段名
    	4.删除记录
    		delete from 表名; 							# 删除标中所有的数据
    		delete from 表名 where 筛选条件 				# 按照条件删选数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    云原生应用综合练习上
    《docker基础篇:Docker常规安装简介》包括docker常规安装总体步骤、安装tomcat、安装mysql、安装redis、安装nginx
    超好用的IDEA插件推荐
    fastapi定时任务,增量构建可转债交易数据入mongo和qlib
    七、golang基础之interface与类型断言
    Java后端接口编写流程
    Edge的使用心得与深度探索
    LeetCode 2455. Average Value of Even Numbers That Are Divisible by Three【数学】简单
    AI绘画到底有多惊艳,看了这组照片后真正自叹不如
    【ASM】字节码操作 工具类与常用类 AdviceAdapter 介绍 打印方法进入 和 方法退出 的参数
  • 原文地址:https://blog.csdn.net/achen_m/article/details/133952291