存取数据的演变

  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. Python学习笔记----列表、元组和字典的基础操作

    文章目录 一.列表的基本操作 1.1 修改列表中的某个数据 1.2 获取某个元素的返回值(返回的是索引) 1.3 在列表中插入新的元素 1.4 删除列表中的元素 1.5 +和* 二.内置的函数和方法 ...

  2. 驱动开发:内核枚举Registry注册表回调

    在笔者上一篇文章<驱动开发:内核枚举LoadImage映像回调>中LyShark教大家实现了枚举系统回调中的LoadImage通知消息,本章将实现对Registry注册表通知消息的枚举,与 ...

  3. 齐博x1再来个抛砖引玉 内容页根据关键词调用相关内容 新功能哦!

    昨天升级了一个隐藏的功能,今天就简单的做个说明怎么用,反正也不能浪费不是 那就用内容页面关键词读取相关内容为例吧. 前台是你模型中已经存在keywords字段  关键词支持 空格分割,号分割 那么就开 ...

  4. 齐博x1嵌套-循环栏目,并列出子栏目下的内容

    嵌套,循环栏目,并列出子栏目下的内容. 代码如下: <div class="channel-list"> <div class="row"&g ...

  5. python基础之open函数和路径处理

    前言 本次内容主要介绍文件处理open函数以及路径处理. 一.open函数 根据前面介绍的函数调用方式,调用open函数. #open函数调用 open() TypeError: open() mis ...

  6. F118校准(二)-- 操作步骤(使用任意品牌PG点屏,并使用PX01 PG校准F118)

    1. 准备工作 硬件连接: CA310通过USB线材连接PC PX01通过USB线材连接PC F118通过灰排线连接PX01左上角的GPIO扩展口(如下图所示) 启动LcdTools软件,点击&quo ...

  7. RDD(弹性分布式数据集)及常用算子

    RDD(弹性分布式数据集)及常用算子 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据 处理模型.代码中是一个抽象类,它代表一个 ...

  8. Codeforces 1670 E. Hemose on the Tree

    题意 给你个数p,n = 2^p: 有一棵树有n个节点,告诉你怎么连边: 每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值: 你需要选一个节点 ...

  9. 关于C#Section配置未初始化的问题

    转载 https://www.cnblogs.com/lxshwyan/p/10828305.html 如果使用了configSection节点,则configSection必须位于根节点的第0个.A ...

  10. 学习ASP.NET Core Blazor编程系列十三——路由(完)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...