当前位置: 首页 > news >正文

Python基础篇(十五)-- Python程序接入MySQL数据库

        程序运行时,数据都在内存中,程序终止时,需要将数据保存到磁盘上。为了便于程序保存和读取,并能直接通过条件快速查询到指定数据,数据库(Database)应运而生,本篇主要学习使用Python操作数据库,在 Python3 中,我们可以使用 mysqlclient或者 pymysql三方库来接入 MySQL 数据库并实现数据持久化操作。二者的用法完全相同,只是导入的模块名不一样。我们推荐大家使用纯 Python 的三方库 pymysql,因为它更容易安装成功。

1 数据库编程接口

        项目开发中,数据库应用必不可少。数据库种类包括:SQLite,MySQL,Oracle,SQL Server等,其基本功能都是一样的。为了对数据库进行统一操作,大多数语言都提供了简单的、标准化的数据库接口(API)。在Python Database 2.0规范中,定义了Python数据库API接口的各个部分,如模块接口,连接对象,类型对象等等。

1.1 连接对象

        数据库连接对象(Connection Object)主要提供获取数据库游标对象和提交、回滚事务的方法,以及关闭数据库连接。

1.获取连接对象

        如何获取连接对象呢?这就需要使用connect()函数。该函数有多个参数,具体使用哪个参数,取决于使用的数据库类型。例如,需要访问Oracle数据库和MySQL数据库,则必须同时下载Oracle和MySQL数据库模块。这些模块在获取连接对象时,都需要使用connect()函数。

        例如,使用PyMySql模块连接MySQL数据库,示例代码如下:

conn = pymysql.connect(host='localhost', port=3306,user='user', password='passwd',database='test', charset='utf8mb4')

2. 连接对象的方法

        Connect()函数返回连接对象。这个对象表示日前和数据库的会话,连接对象支持的方法如下表所示。

方法名说明
close()关闭数据库连接
commit()提交事务
rollback()回滚事务
cursor()获取游标对象,操作数据库,如执行DML操作,调用存储过程等

        commit()方法用于提交事务,事务主要用于处理数据量大、复杂度高的数据。如果操作的是一系列的动作,比如张三给李四转账,有如下2个操作:

  • 张三账户金额减少
  • 李四账户金额增加

        这时使用事务可以维护数据库的完整性,保证2个操作要么全部执行,要么全部不执行。

1.2 游标对象

        游标对象(Cursor Object)代表数据库中的游标,用于指示抓取数据操作的上下文,主要提供执行SQL语句、调用存储过程、获取查询结果等方法。

        如何获取游标对象呢?通过使用连接对象的cursor()方法,可以获取到游标对象。游标对象的属性如下所示:

  • description:数据库列类型和值的描述信息。
  • rowcount:回返结果的行数统计信息,如SELECT、UPDATE、CALLPROC等。

        游标对象的方法如下表所示。

方法名说明
callproc(procname,[, parameters])调用存储过程,需要数据库支持
close()关闭当前游标
execute(operation[, parameters])执行数据库操作,SQL语句或者数据库命令
executemany(operation, seq_of params)用于批量操作,如批量更新
fetchone()获取查询结果集中的下一条记录
fetchmany(size)获取指定数量的记录
fetchall()获取结果集的所有记录
nextset()跳至下一个可用的结果集
arraysize指定使用fetchmany()获取的行致,默认为1
setinputsizes(sizes)设置在调用cxecutc*()方法时分配的内存区域大小
setoutputsize(sizes)设置列缓冲区大小,对大数据列(如 LONGS和 BLOBS)尤其有用

小结:
        使用pymysql操作 MySQL 的步骤如下所示:

  • 创建连接。MySQL服务器启动后,提供了基于TCP(传输控制协议)的网络服务。我们可以通过pymysql模块的connect函数连接 MySQL 服务器。在调用connect函数时,需要指定主机(host)、端口(port)、用户名(user)、口令(password)、数据库(database)、字符集(charset)等参数,该函数会返回一个Connection对象。
  • 获取游标。连接 MySQL 服务器成功后,接下来要做的就是向数据库服务器发送 SQL 语句,MySQL 会执行接收到的 SQL 并将执行结果通过网络返回。要实现这项操作,需要先通过连接对象的cursor方法获取游标(Cursor)对象。
  • 发出 SQL。通过游标对象的execute方法,我们可以向数据库发出 SQL 语句。
  • 如果执行insert、delete或update操作,需要根据实际情况提交或回滚事务。因为创建连接时,默认开启了事务环境,在操作完成后,需要使用连接对象的commit或rollback方法,实现事务的提交或回滚,rollback方法通常会放在异常捕获代码块except中。如果执行select操作,需要通过游标对象抓取查询的结果,对应的方法有三个,分别是:fetchone、fetchmany和fetchall。其中fetchone方法会抓取到一条记录,并以元组或字典的方式返回;fetchmany和fetchall方法会抓取到多条记录,以嵌套元组或列表装字典的方式返回。
  • 关闭连接。在完成持久化操作后,请不要忘记关闭连接,释放外部资源。我们通常会在finally代码块中使用连接对象的close方法来关闭连接。

2 代码实战

2.1 创建表与插入数据

import pymysql# 1. 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306,user='guest', password='****',database='hrs', charset='utf8mb4', autocommit=True)# 2. 使用cursor()方法创建一个游标对象cursor
cursor = conn.cursor()# 使用execute()方法执行SQL,如果表存在则删除
cursor.execute('drop table if exists tb_dept')
# 使用预处理语句创建表
sql = '''
-- 创建部门表
create table `tb_dept`
(`dno` int not null comment '编号',`dname` varchar(10) not null comment '名称',`dloc` varchar(20) not null comment '所在地',primary key (`dno`)
);
'''
# 执行SQL语句
cursor.execute(sql)data = [(10, '会计部', '北京'),(20, '研发部', '成都'),(30, '销售部', '重庆'),(40, '运维部', '深圳')]try:# 3. 通过游标对象向数据库服务器发出SQL语句,插入多条数据affected_rows = cursor.executemany("insert into tb_dept (dno, dname, dloc) values (%s, %s, %s)", data)# 提交数据if affected_rows == 1:print("数据添加成功!!!")# 4. 提交事务conn.commit()
except pymysql.MySQLError as err:# 5. 发生错误时回滚conn.rollback()print(type(err), err)
finally:# 6. 关闭数据库连接释放资源conn.close()

         温馨提示: 上面的127.0.0.1称为回环地址,它代表的是本机。下面的guest是我提前创建好的用户,该用户拥有对hrs数据库的insert、delete、update和select权限。不建议大家在项目中直接使用root超级管理员账号访问数据库,这样做实在是太危险了。我们可以使用下面的命令创建名为guest的用户并为其授权。

create user 'guest'@'%' identified by '****';
grant insert, delete, update, select, create, drop on `hrs`.* to 'guest'@'%';

        如果要插入大量数据,建议使用游标对象的executemany方法做批处理(一个insert操作后面跟上多组数据)。游标对象的executemany方法第一个参数仍然是 SQL 语句,第二个参数可以是包含多组数据的列表或元组。

import pymysql# 1. 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306,user='guest', password='****',database='hrs', charset='utf8mb4', autocommit=True, cursorclass=pymysql.cursors.DictCursor)no = int(input("部门编号:"))
name = input("部门名称:")
location = input("部门所在地:")try:# 2. 使用cursor()方法创建一个游标对象cursorwith conn.cursor() as cursor:# 3. 通过游标对象向数据库服务器发出SQL语句affected_rows = cursor.execute('insert into `tb_dept` values (%s, %s, %s)', (no, name, location))if affected_rows == 1:print("新增部门成功!!!")# 4. 提交事务(transaction)conn.commit()
except pymysql.MySQLError as err:# 5. 回滚事务conn.rollback()print(type(err), err)
finally:# 6. 关闭连接释放资源conn.close()

2.2 删除数据

import pymysqldno = int(input("部门编号:"))# 1. 创建连接(Connection)
conn = pymysql.connect(host='127.0.0.1', port=3306, user='guest', passwd='****', database='hrs', charset='utf8mb4',autocommit=True)try:# 2. 获取游标对象(Cursor)with conn.cursor() as cursor:# 3. 通过游标对象向数据库服务器发出SQL语句affected_rows = cursor.execute('delete from tb_dept where dno=%s', (dno, ))if affected_rows == 1:print("删除部门成功!!!")
finally:# 4. 关闭连接释放资源conn.close()   

        温馨提示: 如果不希望每次 SQL 操作之后手动提交或回滚事务,可以connect函数中加一个名为autocommit的参数并将它的值设置为True,表示每次执行 SQL 成功后自动提交。但是我们建议大家手动提交或回滚,这样可以根据实际业务需要来构造事务环境。如果不愿意捕获异常并进行处理,可以在try代码块后直接跟finally块,省略except意味着发生异常时,代码会直接崩溃并将异常栈显示在终端中。

2.3 更新数据

import pymysqlno = int(input("部门编号:"))
name = input("部门名称:")
location = input("部门所在地:")# 1. 创建连接(Connection)
conn = pymysql.connect(host='127.0.0.1', port=3306,user='guest', passwd='****',database='hrs', charset='utf8mb4')try:# 2. 获取游标对象(Cursor)with conn.cursor() as cursor:# 3. 通过游标对象向数据库服务器发出SQL语句affected_rows = cursor.execute('update tb_dept set dname=%s, dloc=%s where dno=%s', (name, location, no))if affected_rows == 1:print("更新部门信息成功!!!")# 4. 回滚事务conn.commit()
except pymysql.MySQLError as err:conn.rollback()print(type(err), err)
finally:# 5. 关闭连接释放资源conn.close()

2.4 查询数据

import pymysql# 1. 创建连接(Connection)
conn = pymysql.connect(host='127.0.0.1', port=3306, user='guest', passwd='****', database='hrs', charset='utf8mb4',autocommit=True)try:# 2. 获取游标对象(Cursor)with conn.cursor() as cursor:# 3. 通过游标对象向数据库服务器发出SQL语句cursor.execute('select dno, dname, dloc from tb_dept')# 4. 通过游标对象抓取数据row = cursor.fetchone()while row:print(row)row = cursor.fetchone()
except pymysql.MySQLError as err:print(type(err), err)
finally:# 4. 关闭连接释放资源conn.close()    

        上面的代码中,我们通过构造一个while循环实现了逐行抓取查询结果的操作。这种方式特别适合查询结果有非常多行的场景。因为如果使用fetchall一次性将所有记录抓取到一个嵌套元组中,会造成非常大的内存开销,这在很多场景下并不是一个好主意。

2.5 案例讲解

        下面为大家讲解一个将数据库表数据导出到 Excel 文件的例子,我们需要先安装openpyxl三方库。首先建立员工表

-- 创建员工表
create table `tb_emp`
(
`eno` int not null comment '员工编号',
`ename` varchar(20) not null comment '员工姓名',
`job` varchar(20) not null comment '员工职位',
`mgr` int comment '主管编号',
`sal` int not null comment '员工月薪',
`comm` int comment '每月补贴',
`dno` int not null comment '所在部门编号',
primary key (`eno`),
constraint `fk_emp_mgr` foreign key (`mgr`) references tb_emp (`eno`),
constraint `fk_emp_dno` foreign key (`dno`) references tb_dept (`dno`)
);-- 插入14个员工
insert into `tb_emp` values (7800, '张三丰', '总裁', null, 9000, 1200, 20),(2056, '乔峰', '分析师', 7800, 5000, 1500, 20),(3088, '李莫愁', '设计师', 2056, 3500, 800, 20),(3211, '张无忌', '程序员', 2056, 3200, null, 20),(3233, '丘处机', '程序员', 2056, 3400, null, 20),(3251, '张翠山', '程序员', 2056, 4000, null, 20),(5566, '宋远桥', '会计师', 7800, 4000, 1000, 10),(5234, '郭靖', '出纳', 5566, 2000, null, 10),(3344, '黄蓉', '销售主管', 7800, 3000, 800, 30),(1359, '胡一刀', '销售员', 3344, 1800, 200, 30),(4466, '苗人凤', '销售员', 3344, 2500, null, 30),(3244, '欧阳锋', '程序员', 3088, 3200, null, 20),(3577, '杨过', '会计', 5566, 2200, null, 10),(3588, '朱九真', '会计', 5566, 2500, null, 10);

        接下来,我们通过下面的代码实现了将数据库hrs中所有员工的编号、姓名、职位、月薪、补贴和部门名称导出到一个 Excel 文件中。

import openpyxl
import pymysql# 创建工作簿对象
workbook = openpyxl.Workbook()
# 获得默认的工作表
sheet = workbook.active
# 修改工作表的标题
sheet.title = '员工基本信息'
# 给工作表添加表头
sheet.append(('工号', '姓名', '职位', '月薪', '补贴', '部门'))
# 创建连接(Connection)
conn = pymysql.connect(host='127.0.0.1', port=3306,user='guest', passwd='****',database='hrs', charset='utf8mb4')try:with conn.cursor() as cursor:cursor.execute('select eno, ename, job, sal, coalesce(comm, 0), dname ''from tb_emp natural join tb_dept')row = cursor.fetchone()while row:# 将数据逐行写入工作表中sheet.append(row)row = cursor.fetchone()# 保存工作簿workbook.save('hrs.xlsx')
except pymysql.MySQLError as err:print(err)
finally:cursor.close()

相关文章:

Python基础篇(十五)-- Python程序接入MySQL数据库

程序运行时,数据都在内存中,程序终止时,需要将数据保存到磁盘上。为了便于程序保存和读取,并能直接通过条件快速查询到指定数据,数据库(Database)应运而生,本篇主要学习使用Python操作数据库,在…...

程序员不得不知道的 API 接口常识

说实话,我非常希望自己能早点看到本篇文章,大学那个时候懵懵懂懂,跟着网上的免费教程做了一个购物商城就屁颠屁颠往简历上写。 至今我仍清晰地记得,那个电商教程是怎么定义接口的: 管它是增加、修改、删除、带参查询…...

【项目精选】基于Java的银行排号系统的设计与实现

银行排号系统是为解决一些服务业营业大厅排队问题而设计的,它能够有效地提高工作人员的工作效率,也能够使顾客合理的安排等待时间,让顾客感到服务的公平公正。论文首先讨论了排号系统的背景、意义、应用现状以及研究与开发现状。本文在对C/S架…...

前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传

文章目录一、前言二、后端部分新建Maven 项目后端pom.xml配置文件 application.ymlHttpStatus.javaAjaxResult.javaCommonConstant.javaWebConfig.javaCheckChunkVO.javaBackChunk.javaBackFileList.javaBackChunkMapper.javaBackFileListMapper.javaBackFileListMapper.xmlBac…...

解决报错: ERR! code 128npm ERR! An unknown git error occurred

在github下载的项目运行时,进行npm install安装依赖时,出现如下错误:npm ERR! code 128npm ERR! An unknown git error occurrednpm ERR! command git --no-replace-objects ls-remote ssh://gitgithub.com/nhn/raphael.gitnpm ERR! gitgithu…...

聊城高新技术企业认定7项需要注意的问题 山东同邦科技分享

聊城高新技术企业认定7项需要注意的问题 山东同邦科技分享 山东省高新技术企业认定办公室发布《关于开展2021年度本市高新技术企业认定管理工作的通知》,高企认定中有哪些问题需要注意呢?下面我们一起来看一下。 一、知识产权 知识产权数量和质量双达…...

菊乐食品更新IPO招股书:收入依赖单一地区,规模不及认养一头牛

近日,四川菊乐食品股份有限公司(下称“菊乐食品”)预披露更新招股书,准备在深圳证券交易所主板上市,保荐机构为中信建投证券。据贝多财经了解,这已经是菊乐食品第四次冲刺A股上市,此前三次均未能…...

Elasticsearch安装IK分词器、配置自定义分词词库

一、分词简介 在Elasticsearch中,假设搜索条件是“华为手机平板电脑”,要求是只要满足了其中任意一个词语组合的数据都要查询出来。借助 Elasticseach 的文本分析功能可以轻松将搜索条件进行分词处理,再结合倒排索引实现快速检索。Elasticse…...

Linux嵌入式开发——shell脚本

文章目录Linux嵌入式开发——shell脚本一、shell脚本基本原则二、shell脚本语法2.1、编写shell脚本2.2、交互式shell脚本2.3、shell脚本的数值计算2.4、test命令&&运算符||运算符2.5、中括号[]判断符2.6、默认变量三、shell脚本条件判断if thenif then elsecase四、she…...

CV【5】:Layer normalization

系列文章目录 Normalization 系列方法(一):CV【4】:Batch normalization Normalization 系列方法(二):CV【5】:Layer normalization 文章目录系列文章目录前言2. Layer normalizati…...

跳跃游戏 II 解析

题目描述给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i] i j < n返回到达 nums[n - 1] 的…...

易基因|猪肠道组织的表观基因组功能注释增强对复杂性状和人类疾病的生物学解释:Nature子刊

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2021年10月6日&#xff0c;《Nat Commun》杂志发表了题为“Pig genome functional annotation enhances the biological interpretation of complex traits and human disease”的研究论文…...

01- NumPy 数据库 (机器学习)

numpy 数据库重点: numpy的主要数据格式: ndarray 列表转化为ndarray格式: np.array() np.save(x_arr, x) # 使用save可以存一个 ndarray np.savetxt(arr.csv, arr, delimiter ,) # 存储为 txt 文件 np.array([1, 2, 5, 8, 19], dtype float32) # 转换…...

RapperBot僵尸网络最新进化:删除恶意软件后仍能访问主机

自 2022 年 6 月中旬以来&#xff0c;研究人员一直在跟踪一个快速发展的 IoT 僵尸网络 RapperBot。该僵尸网络大量借鉴了 Mirai 的源代码&#xff0c;新的样本增加了持久化的功能&#xff0c;保证即使在设备重新启动或者删除恶意软件后&#xff0c;攻击者仍然可以通过 SSH 继续…...

拦截器interceptor总结

拦截器一. 概念拦截器和AOP的区别&#xff1a;拦截器和过滤器的区别&#xff1a;二. 入门案例2.1 定义拦截器bean2.2 定义配置类2.3 执行流程2.4 简化配置类到SpringMvcConfig中一. 概念 引入&#xff1a; 消息从浏览器发送到后端&#xff0c;请求会先到达Tocmat服务器&#x…...

轻松实现微信小程序上传多文件/图片到腾讯云对象存储COS(免费额度)

概述 对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;是腾讯云提供的一种存储海量文件的分布式存储服务&#xff0c;用户可通过网络随时存储和查看数据。个人账户首次开通COS可以免费领取50GB 标准存储容量包6个月&#xff08;180天&#xff09;的额度。…...

Golang中defer和return的执行顺序 + 相关测试题(面试常考)

参考文章&#xff1a; 【Golang】defer陷阱和执行原理 GO语言defer和return 的执行顺序 深入理解Golang defer机制&#xff0c;直通面试 面试富途的时候&#xff0c;遇到了1.2的这个进阶问题&#xff0c;没回答出来。这种题简直是 噩梦\color{purple}{噩梦}噩梦&#xff0c;…...

谁说菜鸟不会数据分析,不用Python,不用代码也轻松搞定

作为一个菜鸟&#xff0c;你可能觉得数据分析就是做表格的&#xff0c;或者觉得搞个报表很简单。实际上&#xff0c;当前有规模的公司任何一个岗位如果没有数据分析的思维和能力&#xff0c;都会被淘汰&#xff0c;数据驱动分析是解决日常问题的重点方式。很多时候&#xff0c;…...

php mysql保健品购物商城系统

目 录 1 绪论 1 1.1 开发背景 1 1.2 研究的目的和意义 1 1.3 研究现状 2 2 开发技术介绍 2 2.1 B/S体系结构 2 2.2 PHP技术 3 2.3 MYSQL数据库 4 2.4 Apache 服务器 5 2.5 WAMP 5 2.6 系统对软硬件要求 6 …...

Vue3电商项目实战-首页模块6【22-首页主体-补充-vue动画、23-首页主体-面板骨架效果、4-首页主体-组件数据懒加载、25-首页主体-热门品牌】

文章目录22-首页主体-补充-vue动画23-首页主体-面板骨架效果24-首页主体-组件数据懒加载25-首页主体-热门品牌22-首页主体-补充-vue动画 目标&#xff1a; 知道vue中如何使用动画&#xff0c;知道Transition组件使用。 当vue中&#xff0c;显示隐藏&#xff0c;创建移除&#x…...

linux 使用

一、操作系统命令 1、版本命令&#xff1a;lsb_release -a 2、内核命令&#xff1a;cat /proc/version 二、debian与CentOS区别 debian德班和CentOS是Linux里两个著名的版本。两者的包管理方式不同。 debian安装软件是用apt(apt-get install)&#xff0c;而CentOS是用yum de…...

基于遗传算法的微电网调度(风、光、蓄电池、微型燃气轮机)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…...

方向导数与梯度下降

文章目录方向角与方向余弦方向角方向余弦方向导数定义性质梯度下降梯度下降法&#xff08;Gradient descent&#xff09;是一个一阶最优化算法&#xff0c;通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值&#xff0c;必须向函数上当前点对应梯度&#xff08…...

Java岗面试题--Java基础(日积月累,每日三题)

目录面试题一&#xff1a;Java中有哪些容器&#xff08;集合类&#xff09;&#xff1f;追问&#xff1a;Java中的容器&#xff0c;线程安全和线程不安全的分别有哪些&#xff1f;面试题二&#xff1a; HashMap 的实现原理/底层数据结构&#xff1f; JDK1.7 和 JDK1.8追问一&am…...

java基础—Volatile关键字详解

java基础—Volatile关键字详解 文章目录java基础—Volatile关键字详解并发编程的三大特性&#xff1a;volatile的作用是什么volatile如何保证有可见性volatile保证可见性在JMM层面原理volatile保证可见性在CPU层面原理可见性问题的例子volatile如何保证有序性单例模式使用volat…...

内存检测工具Sanitizers

Sanitizers介绍 Sanitizers 是谷歌开源的内存检测工具&#xff0c;包括AddressSanitizer、MemorySanitizer、ThreadSanitizer、LeakSanitizer。 Sanitizers是LLVM的一部分。 gcc4.8&#xff1a;支持Address和Thread Sanitizer。 gcc4.9&#xff1a;支持Leak Sanitizer和UBSani…...

Triton : OpenAI 开发的用于Gpu开发语言

Triton : OpenAI 开发的用于Gpu开发语言https://openai.com/blog/triton/1、介绍 https://openai.com/blog/triton/ 2、git地址 https://github.com/openai/triton 3、论文 http://www.eecs.harvard.edu/~htk/publication/2019-mapl-tillet-kung-cox.pdf SIMD : Single Inst…...

Python文件操作-代码案例

文章目录文件打开文件open写文件上下文管理器第三方库简单应用案例使用python生成二维码使用python操作excel程序员鼓励师学生管理系统文件 变量就在内存中,文件在硬盘中. 内存空间更小,访问速度快,成本贵,数据容易丢失,硬盘空间大,访问慢,偏移,持久化存储. \\在才是 \的含义…...

活动目录(Active Directory)管理,AD自动化

每个IT管理员几乎每天都在Active Directory管理中面临许多挑战&#xff0c;尤其是在管理Active Directory用户帐户方面。手动配置用户属性非常耗时、令人厌烦且容易出错&#xff0c;尤其是在大型、复杂的 Windows 网络中。Active Directory管理员和IT经理大多必须执行重复和世俗…...

Allegro如何使用Vertext命令修改丝印线段的形状操作指导

Allegro如何使用Vertext命令修改丝印线段的形状操作指导 在用Allegro画丝印线段的时候,如果画了一段不是自己需要形状的线段,无需删除重画,可以用Vertext命令直接编辑 如下图 修改前 修改后 具体操作如下 选择Edit...

郑州营销型网站制作教程/广安seo外包

目录导入sql文件navicat中直接导入mysql shell中导入linux shell中导入导出sql文件navicat导出sql文件linux shell中导入sql文件导入sql文件 一份写好的sql文件&#xff0c;包括建表语句和执行语句 navicat中直接导入 导入成功 mysql shell中导入 将 .sql文件放入xshell目…...

深圳 网站 设计/推广网页

在某一次面试中&#xff0c;面试官问了我一个问题&#xff0c;他说&#xff0c;String str “1234”&#xff1b;如何在不使用 JDK自带方法的情况下&#xff0c;转换成 int i “123”。当时想法思路都有了&#xff0c;但是没写出来...... 本篇将讲述一下 String 与 int 两者之…...

怎么样让百度收录网站/互联网公司排名

题目大意 智能手机九点屏幕滑动解锁&#xff0c;如果给出某些连接线段&#xff0c;求出经过所有给出线段的合法的滑动解锁手势的总数。题目链接&#xff1a; 滑动解锁 题目分析 首先&#xff0c;尝试求解没有给定线段情况下&#xff0c;所有合法的路径的总数。可以使用dfs进行搜…...

nas有域名了怎么做网站/seo诊断分析工具

Windows部署服务是SystemCenter2012SP1的体系中属于一个必要环节&#xff0c;对VMM和SCCM来说&#xff0c;Windows部署服务&#xff08;WDS&#xff09;显得尤为重要&#xff0c;在批量化的运维当中&#xff0c;WDS能够节约基层运维人员大量的工作时间&#xff0c;降低重复劳动…...

网站建设一般用什么软件/搜索优化推广公司

<?php /* * author zechen * 2011-4-4 下午04:14:49 * */ //一个普遍通用的PHP连接MYSQL数据库类 class mysql { private $db_host; //数据库主机 private $db_user; //数据库用户名 private $db_pwd; //数据库用户名密码 private $db_database; //数…...

东莞市手机网站建设/2345浏览器网站进入

一&#xff1a;什么是Ajax? Ajax&#xff1a;异步的JavaScript和XML&#xff0c;用于完成网页局部刷新功能&#xff08;修改少量数据只用局部刷新&#xff0c;不用再整个网页重新加载&#xff09;&#xff1b; XML的作用&#xff1a;1.是用于数据传输&#xff0c;但现在都在使…...