搜索

python基础入门之MySQL - 知了了了了 -


发布时间: 2022-11-24 19:45:00    浏览次数:99 次

python基础入门之MySQL

存取数据的演变史

1.文本文件
	文件路径不固定:C:\aaa.txt  D:\bbb.txt  E:\ccc.txt
    数据格式不统一:jason|123  jason$123  jason 123
2.软件开发目录规范
	规定了数据应该保存在db目录下>>>:路径偏向统一
        db/user.txt  db/userinfo.txt  db/jason.json  db/json
	数据格式还是没有得到统一
    	文本 json格式 对象
3.数据库服务
	统一路径,统一操作方式
    降低学习成本,提高开发效率

数据库软件应用史

1.单机模式
在不同计算机上的相同程序,数据是无法共享,因为数据库服务全部在本地完成。
2.网络游戏
在不同计算机上的相同程序,数据可以共享,因为数据库服务单独在网络架构(远程数据库服务)
"""
数据库服务集群:提升数据的安全性
"""
ps:远程数据库服务含有数据库集群,数据库集群可以解决数据安全问题、服务器负载问题,让多台服务器运行相同的数据库服务。

数据库的本质

1.站在底层原理的角度
	数据库指的是操作数据的进程(一堆代码)
2.站在实际应用的角度
	数据库指的是可视化操作界面(一些软件)
ps:以后不做特殊说明的情况下讲数据库其实指的是数据库软件
3.数据库软件本质也是CS架构的程序
	意味着所有的程序员其实都有资格编写一款数据库软件

数据库的分类

  • 数据库分为关系型数据库和非关系数据库
#关系型数据库
1.数据的组织方式有明确的表结构
eg: id name password
ps:关系型数据库存取数据的方式可以看成是表格

2.表与表之间可以建立数据层面上的关系
eg:用户表 房屋表
ps:只要获取到某一表的一条数据,就可以获取到与之相关的其他表数据

3.常用的关系型数据库:MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、SQL、server
MySQL:是开源的,使用最为广泛的,数据库学习必须要学习的
PostgreSQL:是开源的,支持二次开发的
MariaDB:是开源的,与MySQL是同一作者,用法也极其相似
Oracle:收费,安全性极高,主要用于银行及各大重要机关
sqlite:小型数据库,主要用于本地测试(Django框架自带该数据库)

#非关系型数据库
1.数据的组织方式没有明确的表结构,是以K:V键值对的形式组织的
    eg:{'name':'jason','pwd':123}
    	{'username':'liz'}
2.数据之间无法直接建立数据库层面的关系
3.常用的非关系数据库:redis、MongoDB、memcache
	redis:目前最火的,使用频率最高的缓存型数据库
	MongoDB:稳定型数据库,最像关系型的非关系型,主要用于爬虫、大数据
	memcache:已经被redis淘汰

MySQL简介

  • MySQL版本问题

    5.6x是前几年使用频率最高的版本;

    5.7x是最近尝试迁移的版本(频率+);

    8.0x是最新版,功能强大,但是线上环境几乎不用(本地自己使用好用)

MySQL的下载与安装

1.访问官网
https://www.mysql.com/
2、点击DOWNLOADS

在这里插入图片描述

3.点击MySQL Community(GPL) Downloads

在这里插入图片描述

4.点击MySQL Community Server
在这里插入图片描述
5.点击Archives(选择版本)
在这里插入图片描述
6.点击Download

在这里插入图片描述

7.解压

将下好的压缩包解压到D盘根目录(下载的压缩包里面有服务端和客户端,支持本地操作)

MySQL主要文件介绍

1.bin文件夹
里面有mysqld.exe是服务端启动程序;mysql.exe是客户端启动程序
2.data文件夹
data文件夹是用来存取数据
3.my-default.ini
my-default.ini是默认的配置文件
4.readme
软件说明

MySQL基本使用

cmd建议使用管理员身份打开
1.先启动服务端(需要知道mysqld文件位置)
	在cmd命令提示符窗口中启动服务端,可能会报错(百度解决);启动之后不要关	 闭,此时cmd窗口就是服务端
2.再次进入cmd窗口,进入mysql的文件路路径
	直接mysql回车,会以游客的模式进入,功能很少
3.用户名密码登陆
	输入:mysql-u用户名/-p密码;
    那mysql默认管理员账号:用户名是root,密码是空
4.退出
	直接输入exit或者quit
    

系统服务的制作

1.如何解决每次都需要切换路径查找文件的缺陷
	将bin文件夹路径添加到添加环境变量(属性、高级系统设置、环境变量、系统变量里的Path、编辑、新建、输入bin文件夹路径)
2.将mysql服务端制作成系统服务(随着计算机的开启而启动,关闭而结束)
	2.1 以管理员身份打开cmd窗口
	2.2 执行系统服务命令mysqld --install
	ps:可通过查看系统服务的命令(services.msc)有没有MySQL自动运行
	2.3 启动服务端
		方式一:右键直接点击启动
		方式二:命令启动:直接输入:net start mysql
3.补充知识:
	3.1 查看系统服务的命令:services.msc
	3.2 关闭mysql服务端:net stop mysql
	3.3 移除系统服务
		3.3.1 先确保服务已经关闭
		3.3.2 执行移除命令:mysql --remove	

密码相关操作

1.修改密码
	方式1:mysqladmin 
		mysqladmin -u用户名 -p原密码 password 新密码
	方式2:直接修改存储用户数据的表
	方式3:冷门操作 有些版本可能还不支持 
       set password=password('新密码')  # 修改当前登录用户的密码
     
2.忘记密码
	方式1:卸载重新装
  	方式2:把data目录删除 拷贝同桌的目录
 	方式3:小把戏操作
		1.关闭正常的服务端
   		2.以跳过授权表的方式重启服务端(不校验密码)
    	3.以管理员身份进入然后修改mysql.user表数据即可
   			net stop mysql
          mysqld --skip-grant-table
          mysql -uroot -p
          update mysql.user set password=password('123') where Host='localhost' and User='root';
  		4.关闭服务端 然后以正常方式启动即可

SQL与NoSQL

1.数据库的服务端支持各种语言充当客户端
	eg:以MySQL服务端为例,可以有MySQL客户端python代码编写的客户端,java代码编写的客户端,为了能够兼容所有类型的客户端,有两种策略:
	1.1 服务端兼容:是不合理的,消耗数据库服务daunt资源
	1.2指定统一标准:SQL语句、Nosql语句
2.SQL与NoSQL
	SQL语句的意思是操作关系型数据库的语法
	NoSQL语句的意思是操作非关系型数据库的语法
ps:SQL有时候也用来表示关系型数据库,NoSQL也用来表示非关系型数据库
    

数据库重要概念

1.库,表示文件夹,用(show databases)查看所有数据库
2.表,表示文件夹里面的文件,用(show tables)查看所有的表
3.记录,表示文件里一行行的数据,用(select*from mysql.表名)来查看表里面所有的记录
4.SQL语句结束符是分号( ;)
5.取消SQL语句的执行 (\c)
6.查看当前所在的库名:select database();
	如果没有切换指定的库,那么默认就是none
7.切换库:use 库名;

基本SQL语句

1.sql语句必须以分号结尾
2.sql语句编写错误之后不用担心 可以直接执行报错即可

'''基于库的增删改查'''
1.创建库
	create database 库名;
2.查看库
	show databases;  #查看所有的库名称
 	show create database 库名;  #查看指定库信息
3.编辑库
	alter database 库名 charset='utf8';
4.删除库
	drop database 库名;
 
'''基于表的增删改查'''
操作表之前需要先确定库
	create database db1;
切换操作库
	use db1;
1.创建表
	create table 表名(字段名 字段类型,字段名 字段类型);
2.查看表
	show tables;  #查看库下所有的表名称
	show create table 表名;  #查看指定表信息
	describe 表名;  #查看表结构
	desc 表名;
 	"""
 	ps:如果想跨库操作其他表只需要在表名前加库名即可
        desc mysql.user;
    """
3.编辑表
	alter table 表名 rename 新表名;
4.删除表
	drop table 表名;
    
'''基于记录的增删改查'''
1.插入数据
	insert into 表名 values(数据值1,数据值2);
2.查询数据
	select * from 表名; #查询表中所有的数据
3.编辑数据
	update 表名 set 字段名=新数据 where 筛选条件;
4.删除数据
	delete from 表名;
	delete from 表名 where id=2;
免责声明 python基础入门之MySQL - 知了了了了 - ,资源类别:文本, 浏览次数:99 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 07:45:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/zhiliaowang/p/16915871.html