【Python】进阶之 MySQL入门教程

2023-10-26

数据库概述

  • 数据库的由来

    发展历程 说明
    人工管理阶段 用纸带等进行数据的存储
    文件系统阶段 数据存储在文件中
    数据库阶段 解决了文件系统问题
    高级数据库阶段 分布式数据库
  • 数据库的分类

    数据库分类 说明 常用库
    关系型数据库 采用了关系模型来组织数据的数据库:关系模型指的就星二维表格模型 Oracle
    Microsoft SQL Server
    MySQL
    SQLite
    非关系型数据库 Not Only SQL
    强调Key-Value的方式存储数据
    Mongodb
    redis
  • 关系型数据库的使用场景
    Web网站系统、日志记录系统、数据仓库系统、嵌入式系统

Mysql概述

MySQL是一个 关系型数据库管理系统 \color{red}{关系型数据库管理系统} 关系型数据库管理系统软件。

  • 关系型数据库管理系统-RDBMS
    MySQL是一个关系型数据库管理系统软件,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System, 关系数据库管理系统)应用软件,它是由瑞典MySQL AB司开发,目前属于Oracle旗下产品,MySQL是最流行的关系型数据库管理系统中的一个。

  • 关系型数据库管理系统可以分为:

    1. 关系型数据库服务端软件-Server
    2. 关系型数据库客户端软件-Client
  • 关系型数据库管理系统的流程图:
    在这里插入图片描述

  • 关系型数据库管理系统的通信流程效果图:
    在这里插入图片描述

  • SQL介绍
    SQL(Structured Query Language)是 结构化查询语言 \color{red}{结构化查询语言} 结构化查询语言,是一种用来操作 R D B M S \color{red}{RDBMS} RDBMS的数据库的语言,也就是说通过SQL可以操作oracle, sql server, mysql, sqlite等关系型的数据库。

  • SQL语言的分类

    简写 语义 说明
    DQL 数据查询语句 select
    DML 数据操作语句 insert
    update
    delete
    DDL 数据定义语句 creat
    drop
    TPL 事务处理语言 begin transaction
    commit
    rollback
    DCL 数据控制语言 grant
    revoke
  • MySQL的特点

    1. MySQL是开源的,所以你不需要支付额外的费用。
    2. M小ySQL支持大型的数据库。可以处理拥有上干万条记录的大型数据库。
    3. MySQL使用标准的SQL数据语言形式。
    4. MySQL可以安装在不同的操作系统,并且提供多种编程语言的操作接口。这些编程语言包括C、C++、Python、Java、Ruby等等。
  • MySQL的数据类型

    数据类型 说明
    int, bit 整数
    decimal 小数
    varchar, char 字符串
    date, time, datetime 日期和时间
    enum 枚举类型
  • MySQL的字段约束

    约束参数 说明
    primary key 主键约束
    not null 非空约束
    unique 唯一约束
    default 默认约束

Mysql安装与使用

  • Mysql安装
    MySQL数据库 服务 \color{red}{服务} 服务端软件的安装:sudo apt-get install mysql-server
    MySQL数据库 客户 \color{red}{客户} 客户端软件的安装:sudo apt-get insatll mysql-client
  • Mysql数据库服务端启动
    查看MySQL服务状态:sudo service mysql status
    停止MySQL服务:sudo service mysql stop
    启动MySQL服务:sudo service mysql start
    重启MySQL服务:sudo service mysql restart
  • Mysql的配置文件
    1. mqsql配置文件的路径:/etc/mysql/mysql.conf.d/
      在这里插入图片描述
    2. 配置项介绍
      <1> port表示端口,默认为3306;
      <2> bind-address表示服务器绑定的ip,默认为127.0.0.1;
      <3> datadir表示数据库保存路径,默认为/var/lib/mysql;
      <4> log_error表示错误日志,默认为/var/log/mysql/error.log;

Navicat安装和使用

  • Navicat介绍
    Navicat是一款图形化界面的数据库客户端软件。
  • Navicat的安装——基于Linux操作系统
    1. 官网下载安装包:https://www.navicat.com.cn
    2. 解压navicat安装包:tar -zxvf navicat112_mysql_cs_x64.tar.gz
    3. cd到navicat安装包文件夹目录:cd navicate112_mysql_cs_x64
    4. 运行navicat:./start_navicat

    安装包及破解工具下载: 百度网盘 【提取码:4KaE】
    破解教程:Navicat Premium15永久破解版安装教程

  • Navicat的连接mysql服务
    在这里插入图片描述

Mysql终端指令操作

  • Mysql登录登出客户端
    连接mysql服务端指令:mysql -uroot -p
    显示当前时间:select now();
    退出连接:exit/quit/[control+d]
    在这里插入图片描述
  • Mysql数据库操作
    查看所有数据库:show databases;
    创建数据库:create database 数据库名 charset=utf-8;
    使用数据库:use 数据库名;
    查看当前使用的数据库:select database();
    删除数据库:drop database 数据库名;
    在这里插入图片描述
  • Mysql表操作
    查看所有当前库中的所有表:show tables;
    创建表:create table 表名(字段名称 数据类型 可选的约束条件, column1 datatype contral, ...);
    修改表字段类型:alter table 表名 modify 列名 类型 约束;
    删除表:drop table 表名;
    查看表结构:desc 表名;
    在这里插入图片描述
  • Mysql -CRUD操作
    1. 查询数据
      查询所有列:select * from 表名;
      查询指定列:select 列名1, 列名2,... from 表名;
      在这里插入图片描述
    2. 增加数据
      全列插入 - 值的顺序必须和字段顺序完全一致:insert into 表名 values(...);
      部分列插入 - 值的顺序和给出的列的顺序对应:insert into 表名(列1, 列2,...) values(值1, 值2,...)
      全列多行插入:insert into 表名 values(...), (...), (...);
      部分列多行插入:insert into 表名(列1, 列2,...) values(值1,...), (值1,...), (值1,...)
      在这里插入图片描述
    3. 修改数据update 表名 set 列1=值1, 列2=值2,... where 条件;
      在这里插入图片描述
    4. 删除数据delete from 表名 where 条件;
      在这里插入图片描述
  • Mysql数据库备份和恢复
    1. 备份导出:mysqldump -u用户名 -p密码 数据库名 表名 > data.sql (注意:不写表名默认导出所有数据表)
      在这里插入图片描述

    2. 恢复导入:

      cd 到数据文件路径下
      mysql -u用户名 -p密码
      use 数据库
      source data.sql
      

      在这里插入图片描述

Mysql和python交互

  • pymysql的安装
    安装pymysql:sudo pip3 install pymysql
    查看安装情况:pip show pymysql / pip3 list
    卸载pymysql:sudo pip3 uninstall pymysql
    在这里插入图片描述

  • pymysql的使用

    1. 导包:import pymysql
    2. 创建和mysql服务端的连接对象:conn = pymysql.connect(参数列表)
    3. 获取游标对象:cursor = conn.cursor()
    4. 执行sql语句:row_count = cursor.execute(sql)
    5. 获取查询结果集:result = cursor.fetchall()
    6. 将增加和修改操作提交到数据库:conn.commit()
    7. 回滚数据:conn.rollback()
    8. 关闭游标对象:cursor.close()
    9. 关闭连接:conn.close()
  • pymysql查询数据

    # 查询数据库goods下student表中的所有数据
    # 1. 导包
    import pymysql
    
    try:
        # 2. 连接mysql数据库的服务
        conn = pymysql.Connect(
            # mysql服务端的IP,默认127.0.0.1/localhost,也可填真实ip
            host='192.168.90.172',
            user='root',
            password='mysql',
            database='goods',
            port=3306,
            charset='utf8'
        )
        # 3. 创建游标对象
        cur = conn.cursor()
        # 4. 编写sql语句
        sql = 'select * from students;'
        # 5. 使用游标对象去调用sql
        cur.execute(sql)
        # 6. 获取查询的结果并打印
        result = cur.fetchall()
        print(result)
        # 7. 关闭游标对象
        cur.close()
        # 8. 关闭连接
        conn.close()
    except Exception as e:
        print(e)
    

    结果如下:
    在这里插入图片描述

  • pymysql增删改数据

    '''
    对数据库goods下的students表进行如下操作:
    1. 增加数据:李磊 35 男
    2. 修改数据:李磊的名字改为王磊
    3. 删除数据:王磊
    '''
    
    # 1. 导包
    import pymysql
    
    
    # 2. 连接mysql数据库的服务
    conn = pymysql.Connect(
        # mysql服务端的IP,默认127.0.0.1/localhost,也可填真实ip
        host='192.168.90.172',
        user='root',
        password='mysql',
        database='goods',
        port=3306,
        charset='utf8'
    )
    # 3. 创建游标对象
    cur = conn.cursor()
    try:
        # 4. 编写增加、修改、删除的sql语句
        add_sql = 'insert into students values(%s, %s, %s, %s);'
        add_data = [0, '李磊', 35, '男']
        
        update_sql = 'update students set name=%s where name = "李磊";'
        update_data = ['王磊']
        
        delete_sql = 'delete from students where name=%s;'
        delete_data = ['王磊']
        # 5. 使用游标对象执行sql
        cur.execute(add_sql, add_data)
        cur.execute(update_sql, update_data)
        cur.execute(delete_sql, delete_data)
        # 6. 提交操作
        conn.commit()
    except Exception as e:
        print(e)
        # 数据回滚
        conn.rollback()
    finally:
        # 7. 关闭游标对象
        cur.close()
        # 8. 关闭连接
        conn.close()
    

订单管理案例实现

  • 需求分析
    在这里插入图片描述
    ① 创建数据库orders
    ② 创建orders订单表
    ③ 插入测试数据orders.sql
    ④ Python和Mysql交互
    ⑤ 查询订单数据
    ⑥ 增加订单数据
    ⑦ 删除订单数据
    ⑧ 修改订单数据

  • 实现步骤

    1. 建库和建表

      --创建数据库
      create database orders charset=utf8;
      
      --创建数据表
      create table orders(
      		id int not null auto_increment primary key,
      		count int not null,
      		price decimal(10,2) not null,
      		freight decimal(10,2) not null,
      		user varchar(50) not null,
      		status enum('待支付','待发货','待收货') default '待支付' not null,
      		time date not null
      		);
      
    2. 插入测试数据
      ① cd素材的目录下
      ② 登录mysql客户端:mysql -uroot -p
      ③ 切换数据库: use orders
      ④ 导入测试数据:source orders.sql
      在这里插入图片描述

    3. 实现订单查询功能
      ① 导包pymysql
      ② 连接mysql服务
      ③ 创建游标对象
      ④ 编写查询所有订单SQL语句
      ⑤ 执行SQL语句
      ⑥ 获取所有查询的结果
      ⑦ 将获取结果转换成列表字典格式
      ⑧ 对Mysql的操作加Try处理

      # 1 导包
      import pymysql
      
      def order()
          # 2 链接mysql的服务端
          conn = pymysql.Connect(
              user='root',
              password='mysql',
              host='192.168.90.172',
              database='orders',
              port=3306,
              charset='utf8'
          )
          # 3 创建游标对象
          cur = conn.cursor()
          try:
              # 4 编写 查询orders表的所有数据SQL
              sql = 'select * from orders;'
              # 5 使用游标对象执行SQL
              cur.execute(sql)
              # 6 获取查询的所有数据 fetchall() ==>元组
              result = cur.fetchall()
              print('查询数据:', result)
              # 打印结果如下:
              # 查询数据:((1, 2, Decimal('100.00'), Decimal('10.00'), '老王', ‘待收货', datetime.data(2020, 1, 1)), (2, 3, Decimal('200.00'), Decimal('25.00'), '钱红', ’待支付', datatime.date(2020, 4,1)))
              # 7 将数据转换成[{}, {}]
              data_lst = []
              for row in result:
                  data_lst.append({
                      'id': row[0],
                      'count': row[1],
                      'price': str(row[2]),
                      'freight': str(row[3]),
                      'user': row[4],
                      'status': row[5],
                      'time': str(row[6])
                  })
          # 8 加个try优化下
          except Exception as e:
              print('报错信息:', e)
          finally:
              # 关闭游标对象
              cur.close()
              # 关闭连接
              conn.close()
      
    4. 实现订单增加功能
      ① 导包pymysql
      ② 连接mysql服务
      ③ 创建游标对象
      ④ 编写增加订单的SQL语句
      ⑤ 执行SQL语句并提交
      ⑥ 对Mysql的操作加Try处理

      # 1 导包
      import pymysql
      
      def add(data):
          # 2 链接mysql的服务端
          conn = pymysql.Connect(
                  user='root',
                  password='mysql',
                  host='192.168.90.172',
                  database='orders',
                  port=3306,
                  charset='utf8'
          )
          # 3 创建游标对象
          cur =conn.cursor()
          try:
              # 4 编写 增加数据的SQL
              sql = 'insert into orders values(%s,%s,%s,%s,%s,%s,%s)'
              # 5 使用游标对象执行SQL并提交
              cur.execute(sql, data)
              conn.commit()
          # 6 加个try优化下
          except Exception as e:
              print('报错信息:', e)
              # 回滚数据
              conn.rollback()
          finally:
              # 关闭游标对象
              cur.close()
              # 关闭连接
              conn.close()
      
    5. 实现封装功能函数
      查询和增加的功能重复度比较高,均有:导包、连接mysql、创建游标对象、执行SQL语句、Try语句。实现封装函数的操作:
      ① 定义封装函数的名字
      ② 粘贴重复度高的代码
      ③ 提交参数
      ④ 测试

      # 1 导包
      import pymysql
      
      # 封装一个执行CRUD的函数
      def execute_crud_sql(sql,data):
          # 2 链接mysql的服务端
          conn = pymysql.Connect(
              user='root',
              password='mysql',
              host='192.168.90.172',
              database='orders',
              port=3306,
              charset='utf8'
          )
          # 3 创建游标对象
          cur = conn.cursor()
          try:
              # 4 编写 查询orders表的所有数据SQL
              # 5 使用游标对象执行SQL
              cur.execute(sql, data)
              # 6 提交操作
              conn.commit()
          # 8 加个try优化下
          except Exception as e:
              print('报错信息:', e)
              # 回滚数据
              conn.rollback()
          finally:
              # 关闭游标对象
              cur.close()
              # 关闭连接
              conn.close()
      
      def add(data):
          sql = 'insert into orders values(%s,%s,%s,%s,%s,%s,%s)'
          execute_crud_sql(sql, data)
      
    6. 实现订单修改和删除功能

      # 修改的SQL语句
      update orders set count=%s, price=%s, freight=%s, user=%s, status=%s, time=%s where id=%s;
      # 将参数中id的顺序从第一个颠倒到最后一个
      data.append(data.pop(0))
      
      # 删除的SQL语句
      delete from orders where id=%s;
      
      # 1 导包
      import pymysql
      
      # 封装一个执行CRUD的函数
      def execute_crud_sql(sql,data):
          # 2 链接mysql的服务端
          conn = pymysql.Connect(
              user='root',
              password='mysql',
              host='192.168.90.172',
              database='orders',
              port=3306,
              charset='utf8'
          )
          # 3 创建游标对象
          cur = conn.cursor()
          try:
              # 4 编写 查询orders表的所有数据SQL
              # 5 使用游标对象执行SQL
              cur.execute(sql, data)
              # 6 提交操作
              conn.commit()
          # 8 加个try优化下
          except Exception as e:
              print('报错信息:', e)
              # 回滚数据
              conn.rollback()
          finally:
              # 关闭游标对象
              cur.close()
              # 关闭连接
              conn.close()
      
      # 修改订单数据
      def update(data):
          print('修改的数据:', data)   # ['7', '99', '9.90', '1.00', '明明','待收货', '2020-03-29']
          data.append(data.pop(0))
          # 1. 修改的SQL语句
          sql = 'update orders set count=%s, price=%s, freight=%s, user=%s, status=%s, time=%s where id=%s'
          # 2. 执行调用
          execute_crud_sql(sql, data)
      
      # 删除订单数据    
      def delete(data):
          # 1. 删除的SQL数据
          sql = 'delete from orders where id=%s;'
          # 2. 执行
          execute_crud_sql(sql, data)
      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】进阶之 MySQL入门教程 的相关文章

  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1问题总结及解决方案

    原文地址 http blog csdn net dream it life article details 5488121 最近因为需要 要用C C Objective C三种C语言3C混编的开发程序 在当然方法也和大家说一下吧 就是在Xc
  • 【PaddleDetection】基于PaddleDetection的齿轮瑕疵检测:从模型训练到部署中的那些坑

    目录 0 题目简介 1 Baseline项目的本地化 1 1 飞桨环境配置 飞桨安装注意事项 1 2 PaddleDetection安装 PaddleDetection注意事项 1 3 数据集下载与配置 PaddleX安装注意事项 1 4
  • windows下编译caffe

    windows在编译caffe有两种途径 第一直接从github上clone windows分支的源码 根据提供的cmakeLIsts开始编译 这种方法自由选择编译器 依赖的库文件版本等 可能自由度更大 但是也有比较多的问题 https g
  • 介绍Flex UI 测试工具:FlexMonkey

    相信许多人都知道Flex的单元测试工具 FlexUnit或者ASUnit 但是对于UI测试工具可能很少有人了解 那么目前有什么FlexUI测试工具呢 答案是FlexMonkey FlexMonkey是一个Flex应用的测试框架 他可以提供对
  • 交叉编译mbedtls

    交叉编译mbedtls 使用INTEL工具链编译 编译流程 编译成功文件默认的存放位置 使用mipsel 24kec linux uclibc工具链编译 编译流程 编译成功文件默认的存放位置 使用INTEL工具链编译 编译流程 make C
  • 最牛B的编码套路

    最近 我大量阅读了Steve Yegge的文章 其中有一篇叫 Practicing Programming 练习编程 写成于2005年 读后令我惊讶不已 与你所相信的恰恰相反 单纯地每天埋头于工作并不能算是真正意义上的锻炼 参加会议并不能锻
  • js 字符串函数总结(splice()、split()·····)

    1 自己比较易混淆的splice substring substr slice方法 第一个参数指定子字符串开始位置 第二个参数表示子字符串最后一个字符后面的位置 substring方法 第一个参数指定子字符串开始位置 第二个参数表示子字符串
  • C++执行程序的过程

    C 执行程序的过程 C 的源程序是以 cpp作为后缀的 C语言则是 c cpp保存也可以兼容 为了使计算机能够执行高级语言的代码 必须对源程序做个处理 用编译器把源程序处理成计算机可以识别的二进制目标程序 一般目标程序的后缀为 obj 编译
  • 新手必看,10个常见的Python运行时错误

    初入门的 Python小白 在运行代码时免不了会遇到一些错误 刚开始可能看起来比较费劲 随着代码量的积累 熟能生巧 当遇到一些运行时错误时能够很快的定位问题原题 我整理了常见的 10 个错误 希望能够帮助到大家 1 忘记在 if for d
  • C/C++将数据读写到指定地址

    0 背景 外设私有 内部 DMA在访问core内sram时 发现没有权限 也就是说 core不可作为slave设备被访问 导致外设的dma模式无法使用 但这并没有问题 我们可以将数据写到固定的地址 外部sram上 即可 下面介绍几种常用的方
  • 那个当年的三本学渣,为啥最后进了大厂?

    自我介绍 我是一名普通的三本大学生 自学开发 相继经历了接外包 创业 合伙人跑路等一系列事情 从一开始对于计算机的一无所知到现在拿到了一线互联网企业的special offer 磕磕碰碰 一路走来 可谓辛酸苦辣 大一小白 我就读的专业偏计算
  • ELK介绍及部署安装运用

    1 ELK简介 ELK表示 Elasticsearch Logstash Kibana 三个开源软件的缩写 是集成这三个软件于一体的日志分析及全文搜索解决方案 被广泛应用于实时日志处理 文档索引和搜索 以及数据的多维查询和统计分析等领域 数
  • 每日一题:二分答案

    二分答案 题目 Daimayuan Online Judge 首先读入 n 和 k 然后读入序列 a 接下来使用 l 和 r 表示最小值的猜测区间 由于题目中规定了最小值和元素范围 因此我们可以将上界设置为 1e18 下界设置为 1 二分查
  • 开机无法进入,chroot无法切换真实根环境

    1 开机效果图 2 关机 调整开机顺序 从光驱启动 进入挽救模式 3 尝试切换到真实根环境 失败 错误提示说 进入shell失败了 没有这个文件 4 ls查看发现这个文件是有的 但是这个文件是在挽救模式下的 真实根下面是没有的 5 真实根的
  • linux spi设备使用,linux spi驱动开发学习(一)-----spi子系统架构

    linux spi驱动开发学习 一 spi子系统架构 一 spi设备 各定义在include linux spi h structspi device structdevice dev 设备文件 structspi master maste
  • 蒙特卡洛法简述

    蒙特卡洛法简述 一 简介 1 蒙特卡洛方法又称随机模拟法 随机抽样技术 是一种随机模拟方法 蒙特卡洛法使用随机数 伪随机数 以概率和统计理论方法为基础 将所要求解的问题同一定的概率模型相互联系 用计算机实现统计模拟和抽样 以获得问题近似解的
  • LabVIEW FPGA PCIe开发讲解-实战篇:实验61:PCIe DMA+8位ADC(模拟数据采集卡)

    1 实验内容 现在很多电脑PC或者工控机主板上面都集成了PCIe插座 可以直接插入PCIe板卡 优点是卡槽标准 插拔简单 传输速度极快 对于高速采集测试测量领域 PCIe用途非常广泛 最大极限带宽可以到6 6GB s 这个速度可以直接用来做
  • Qt:依据ChatGpt生成Qt可选择扇形按钮

    目录 引言 1 生成过程 1 1 饼图 2 2 扇形图 3 3 可选择扇形按钮 1 4 新的扇形画法 GraphicItem 2 训练过程 3 错误原因 4 涉及知识点 引言 因为项目需要绘制一个中间为圆心 包含数个扇形的可选择按钮 正好C
  • php16进制转换为字符串

    因项目需求对接一个java的接口 密匙是16进制 使用php内置函数 hex2bin str abc key XXXXX res hash hmac sha1 str hex2bin key false hash hmac最后一个参数tru
  • 【Python】进阶之 MySQL入门教程

    文章目录 数据库概述 Mysql概述 Mysql安装与使用 Navicat安装和使用 Mysql终端指令操作 Mysql和python交互 订单管理案例实现 数据库概述 数据库的由来 发展历程 说明 人工管理阶段 用纸带等进行数据的存储 文