MySQL数据库(一)

文章目录

  • MySQL数据库
    • 一、数据存取演变历史
    • 二、数据存储的发展史
    • 三、数据库的本质
    • 四、数据库的分类
    • 五、基本使用
    • 六、系统服务的制作
    • 七、SQL与nosql的介绍
    • 八、MySQL数据库的介绍
      • 1.什么是数据库?
      • 2.数据库的作用
    • 十、密码相关操作
    • 九、数据库的重要概念
    • 十一、针对库的基本SQL语句
    • 十二、针对表的基本SQL语句
    • 十三、针对记录的基本SQL语句

MySQL数据库

一、数据存取演变历史

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

二、数据存储的发展史

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

三、数据库的本质

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

四、数据库的分类

	关系型数据库
	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. 查看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
	移除系统服务(先确保服务以及关闭)

七、SQL与nosql的介绍

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

八、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 输入新密码即可登录成功

九、数据库的重要概念

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

	数据库管理系统(DataBase Management System 简称DBMS)
	管理数据的套接字软件,C/S架构

	数据库服务器:
		运行有DBMS服务端的计算机,该计算机对内存和硬盘要求都 相对较高
		
	'''顺序:库 >>> 表 >>> 记录 >>> 字段'''
	一个库中可以有多张表,一个表中可以有很多条记录,也可以有多个字段
	
	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
		eg:create table u1s1(id int ,name varchar(32),gender)
	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 筛选条件 				# 按照条件删选数据

你可能感兴趣的:(Python进阶,数据库,mysql)