存取数据的演变

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

数据库软件的应用史

  1. 1.单机游戏
  2. 数据存储于各个计算机的本地 无法共享
  3. 2.网络游戏
  4. 数据存储于网络中 可以共享(数据库服务 网络游戏公司的数据机房内服务器集群)
  5. """
  6. 数据库服务集群:提升数据的安全性
  7. """

数据库的本质

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

数据库的分类

  1. 1.关系型数据库
  2. 特征1:拥有固定的表结构(字段名 字段类型)
  3. id name pwd
  4. 特征2:数据之间可以建立数据库层面关系
  5. 用户表数据
  6. 豪车表数据
  7. 豪宅表数据
  8. MySQLOracleMariaDBPostgreSQLsqlserversqlitedb2access
  9. 1.MySQL:开源免费 使用最广 性价比贼高
  10. 2.Oracle:收费 使用成本较高但是安全性也最高
  11. 3.PostgreSQL:开源免费 支持二次开发 兼容性极高
  12. 4.MariaDB:跟MySQL是一个作者 开源免费
  13. 5.sqlite:小型数据库 主要用于本地测试
  14. 2.非关系型数据库
  15. 特征1:没有固定的表结构 数据存储采用K:V键值对的形式
  16. {'name':'jason'}
  17. {'username':'kevin','pwd':123}
  18. 特征2:数据之间无法建立数据库层面的关系
  19. 可以自己编写代码建立逻辑层面的关系
  20. redismongoDBmemcache
  21. 1.redis:目前最火 使用频率最高的非关系型数据库(缓存数据库)
  22. 虽然缓存数据库是基于内存做数据存取但是拥有持久化的功能
  23. 2.mongoDB:文档型数据库 最像关系型数据库的非关系型数据库
  24. 主要用在爬虫以及大数据领域
  25. 3.memcache:已经被redis淘汰
  26. """
  27. 虽然数据库软件很多 但是操作方式基本类似 学会一个几乎就可以学会所有
  28. 其中以MySQL 最为典型
  29. """

MySQL简介

  1. 1.版本问题
  2. 8.0:最新版
  3. 5.7:使用频率较高
  4. 5.6:学习推荐使用
  5. ps:站在开发的角度使用哪个版本学习都没有关系
  • 2.下载流程

    1.访问官网

    https://www.mysql.com/

    2.点击DOWNLOADS并下拉点击GPL

    3.点击community server



    4.点击Archives

    5.选择对应系统的对应版本下载即可(zip压缩包)

  • 3.主要目录介绍

    bin目录: 存放启动文件 mysqld.exe(服务端) mysql.exe(客户端)

    data目录: 存放核心数据

    my—default.ini:(这个最初没有后续配置) 默认的配置文件

    readme: 软件说明

MySQL基本使用

  1. cmd 使用管理员 身份打开
  2. 1.切换到mysqlbin目录下先启动服务端
  3. mysqld
  4. 2.保持窗口不关闭 重新打开一个新的cmd窗口
  5. 3.切换到mysqlbin目录下启动客户端
  6. mysql
  7. """
  8. 直接使用mysql命令默认是游客模式 权限和功能都很少
  9. mysql -u用户名 -p密码
  10. 管理员默认没有密码 连续回车即可
  11. mysql -uroot -p
  12. """
  13. '''
  14. 在启动服务端的时候有可能报错 拷贝报错信息 百度搜索
  15. mysql启动报错粘贴错误信息
  16. '''

系统服务的制作

1.先把bin目录添加到环境变量







2.将mysql添加到系统服务中

1.如何查看系统服务

鼠标右键任务栏选择服务

win+R输入services.msc回车





2.以管理员身份打开cmd窗口

mysqld --install 安装服务 可以手动启动 ,也可以根据命令, 启动服务服务命令: net start mysql

  1. """
  2. 如果想卸载重新按照
  3. 1.先关闭服务端
  4. net stop mysql
  5. 2.移除系统服务
  6. mysqld --remove
  7. """

密码的相关操作

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

SQL与NoSQL

  1. 数据库服务端是可以服务多种类型的客户端
  2. 客户端可以是自己开发的 也可以是python代码编写也可以是java代码编写
  3. SQL
  4. 操作关系型数据库的语言
  5. NoSQL
  6. 操作非关系型数据库的语言
  7. ps:要想跟数据库交互就必须使用数据库指定的语言
  8. """
  9. SQL有时候也指代关系型数据库
  10. NoSQL有时候也指代非关系型数据库
  11. """

数据库重要概念

  1. """
  2. 强调:小白阶段为了更加方便的理解 做了以下比喻 本质其实有一点点的区别
  3. """
  4. 就相当于是 文件夹
  5. 就相当于是 文件夹里面的文件
  6. 记录 就相当于是 文件夹里面的文件中的一行行数据

管理员模式下的cmd

1.查看所有的库名称

show databases;



2.查看所有的表名称

show tables;

3.查看所有的记录

select * from mysql.user;

基本SQL语句

  1. 1.sql语句必须以分号结尾
  2. 2.数据展示错乱可以在SQL语句结尾加\G
  3. 3.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 表名; 查询表中所有的数据

select name,pwd from 表名; 查询指定数据

3.编辑数据

update 表名 set 字段名=新数据 where 筛选条件;

4.删除数据

delete from 表名;

delete from 表名 where id=2;

以下显示为空记录的 显示 Empty 关键字



python之路33 MySQL 1的更多相关文章

  1. 【python之路33】开发模式单例模式及简单的服务器请求框架原理

    1.单例模式指的是创建单个实例,例如:数据库连接池中包含10个数据库连接,用户访问数据时随机从连接池中拿出一个进行连接,其他用户再次访问时不再创建对象进行连接 #!usr/bin/env python ...

  2. python 之路,Day11(上) - python mysql and ORM

    python 之路,Day11 - python mysql and ORM   本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 ...

  3. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

  4. Python之路【第八篇】:堡垒机实例以及数据库操作

    Python之路[第八篇]:堡垒机实例以及数据库操作   堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...

  5. Python之路,Day20 - 分布式监控系统开发

    Python之路,Day20 - 分布式监控系统开发   本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个 ...

  6. Python之路,Day12 - 那就做个堡垒机吧

    Python之路,Day12 - 那就做个堡垒机吧   本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...

  7. Python之路,Day10 - 异步IO\数据库\队列\缓存

    Python之路,Day9 - 异步IO\数据库\队列\缓存   本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitM ...

  8. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  9. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  10. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

随机推荐

  1. Vue3.x+element-plus+ts踩坑笔记

    闲聊 前段时间小颖在B站找了个学习vue3+TS的视频,自己尝试着搭建了一些基础代码,在实现功能的过程中遇到了一些问题,为了防止自己遗忘,写个随笔记录一下嘻嘻 项目代码 git地址:vue3.x-ts ...

  2. go-zero docker-compose 搭建课件服务(八):集成jaeger链路追踪

    0.转载 go-zero docker-compose 搭建课件服务(八):集成jaeger链路追踪 0.1源码地址 https://github.com/liuyuede123/go-zero-co ...

  3. 9.异步redis

    在使用Python代码操作redis时候,连接.操作.断开都是网络IO #安装支持异步redis的模块 pip3 install aioredis async def execute(address, ...

  4. idea如何生成jar包

    最近在研究RMI反序列化命令执行的漏洞,让我这个java新手吃尽了苦头,能多学习一些是一些吧. 记录一下写好的java文件生成jar包的过程. 环境: Win10,jdk1.7, idea2016.2 ...

  5. 【Bluetooth|蓝牙开发】二、蓝牙开发入门

    个人主页:董哥聊技术 我是董哥,嵌入式领域新星创作者 创作理念:专注分享高质量嵌入式文章,让大家读有所得! [所有文章汇总] 1.蓝牙基础概念 蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电 ...

  6. Codeforces Round #786 (Div. 3) 补题记录

    小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transforma ...

  7. perl大小写转换函数uc和lc

    $side = uc $attrs[0]; #把attrs[0]转换成大写,然后给side变量赋值. $gender = lc $attrs[1]; #把attrs[1]转换成小写,然后给gender ...

  8. 8、将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数。如果s1 = s2,输出零。如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是比较两字符串相应字符的ascii码的差值。

    /* 将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数.如果s1 = s2,输出零.如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是 ...

  9. 关于小米mini路由器开启ssh红灯解决

    前言 小米 后续版本 对 ssh固件校验失败导致的,下载路由器旧版开发版固件,然后用后台web升级成老版本后,再采用官方方法刷入即可. 旧版路由器固件下载 地址 其他 后续的刷机可以参考我的文章

  10. 关于sublime text 3写一个插件

    前言 我之前一直想写一个记录自己笔记的软件,可以给因为我都记录在桌面的便签上很乱,以至于便签上满满的全是字母,很难看,但是我有不想写图形化界面,所以最终我选择了写一个sublime 插件,功能就是记录 ...