Mysql的相关编程基础知识

一. 配置MySQL

首先下载mysql-5.0.96-winx64,安装过程如下图所示。
1.安装MySQL 5.0

2.选择手动配置、服务类型、通用多功能型和安装路径


3.设置数据库访问量连接数为15、端口为3306(代码中设置URL用到)、编码方式为utf-8


4.设置默认超级root用户的用户名和密码,最后安装成功

二. SQL语句基础知识

安装MySQL 5.0成功后,进行数据库的简单操作。
1.运行MySQL输入默认用户密码123456


2.创建数据库test01和使用数据库(第二次调用直接use database)
create database test01;

显示数据库中包含的数据库:show databases;

3.创建表student,其中学号为主键
create table student(username varchar(20),password varchar(20),stuid int primary key);

4.显示表结构,使用语句desc student

5.向学生表中插入数据并显示查询的数据

6.删除表:drop table student;

7.更新数据
update student set password=’000000’ where stuid=’1’;

8.删除数据
Delete from student where username=’eastmount;

此时MySQL操作数据库基本讲解结束,你同样可以实现数据库的增删改查、事务、存储过程等操作,建议安装可视化的软件来替代黑框,或使用Navicat for MySQL软件即可。代码如下:

Enter password: ******
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| test01             |
+--------------------+
5 rows in set (0.00 sec)mysql> use test01;
Database changed
mysql> show tables;
Empty set (0.00 sec)mysql> create table student(username varchar(20),->                  password varchar(20),->                  stuid int primary key);
Query OK, 0 rows affected (0.33 sec)mysql> show tables;
+------------------+
| Tables_in_test01 |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES  |     | NULL    |       |
| password | varchar(20) | YES  |     | NULL    |       |
| stuid    | int(11)     | NO   | PRI | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.03 sec)mysql> insert student(username, password, stuid)-> values('eastmount','123456',1)-> ;
Query OK, 1 row affected (0.05 sec)mysql> select * from student;
+-----------+----------+-------+
| username  | password | stuid |
+-----------+----------+-------+
| eastmount | 123456   |     1 |
+-----------+----------+-------+
1 row in set (0.00 sec)mysql> update student set password='000000' where stuid='1';
Query OK, 1 row affected (0.10 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from student;
+-----------+----------+-------+
| username  | password | stuid |
+-----------+----------+-------+
| eastmount | 000000   |     1 |
+-----------+----------+-------+
1 row in set (0.00 sec)mysql> delete from student where username='eastmount';
Query OK, 1 row affected (0.08 sec)mysql> select * from student;
Empty set (0.00 sec)mysql>

三. Python调用MySQL基础知识

通常的安装方法是使用:pip install mysql 安装Python的MySQL库,但是总会报错。常见错误如:

        Microsoft Visual C++ 9.0 is required  (Unable to find vcvarsall.bat)
        mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
这些可能是驱动等问题。

正确安装方法:
建议下载一个MySQL-python-1.2.3.win-amd64-py2.7.exe文件进行安装。
官网地址:https://pypi.python.org/pypi/MySQL-python/

下面我们要详细了解Python数据库API。从Python中访问数据库需要接口程序,接口程序是一个Python模块,它提供数据库客户端库(通常是C语言写成的)的接口供你访问。注意:Python接口程序都一定要遵守Python DB-API规范。

DB-API是一个规范。它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。DB-API为不同的数据库提供了一致的访问接口,在不同的数据库之间移植代码成为一件轻松的事情。
下面简单介绍DB-API的使用方法。

1.模块属性

 DB-API规范里的以下特性和属性必须提供。一个DB-API兼容模块定义如下所示:

apilevel:模块兼容的DB-API版本号
threadsafety:线程安全级别
paramstyle:支持sql语句参数风格
connect():连接数据库

Python调用MsSQL需要导入MySQLdb库,如下:

import MySQLdb

2.connect()函数
        其中主要使用的方法是connect对象。connect()方法生成一个connect对象,用于访问数据库,其参数如下:

user:Username
password:Password
host:Hostname
database:DatabaseName
dsn:Data source name

注意并非所有的接口程序都严格按照这种格式,如MySQLdb。

import MySQLdb
conn = MySQLdb.connect(host='localhost', db='test01', user='root', passwd='123456', port=3306, charset='utf8')

connect()对象方法如下:

lose():关闭数据库连接,或者关闭游标对象
commit():提交当前事务
rollback():取消当前事务
cursor():创建游标或类游标对象
errorhandler(cxn,errcls,errval):作为已给游标的句柄

注意,执行close()方法则上述的连接对象方法不能再使用,否则发生异常。commit()、rollback()、cursor()或许更对于支持事务的数据库更有意义。

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。 一旦你完成了数据库连接,关闭了游标对象,然后在执行commit()提交你的操作,然后关闭连接。

3.游标对象

上面说了connect()方法用于提供连接数据库的接口,如果要对数据库操作那么还需要使用游标对象。游标对象的属性和方法:

fetchone():可以看作fetch(取出) one(一个),也就是得到结果集的下一行(一行)。
fetchmany(size):可以看作fetch(取出)many(多个),这里的参数是界限,得到结果集的下几行(几行)
fetchall():顾名思义,取得所有。
execute(sql):执行数据库操作,参数为sql语句。
close():不需要游标时尽可能的关闭

下面通过简单的示例进行讲解。


四. Python调用MySQL示例

在前面数据库中我们创建了数据库“test01”和表“student”,同时插入了数据。那么,怎样通过Python来显示呢?

1.查询所有数据库

首先,我们查看本地数据库中所包含的数据库名称,通过“show databases”语句。

import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306)cur=conn.cursor()res = cur.execute('show databases')print resfor data in cur.fetchall():print '%s' % datacur.close()conn.close()
except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])

其中通过链接数据库代码为:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306)

访问root超级用户,其密码为“123456”,端口为“3306”,其结果如下:

如果不知道本地数据库的名称,可以通过该方法,先查询数据库中包含哪些数据库,然后再连接该数据库进行相关的操作。

2.查询表

下面介绍查询表student中数据,代码如下,代码的具体含义是通过connect()连接数据库,通过conn.cursor()定义游标,然后调用游标的excute(sql)执行数据库操作,此处为查询操作,再通过fetchall()函数获取所有数据。

# coding:utf-8 
import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01', charset='utf8')cur=conn.cursor()res = cur.execute('select * from student')print u'表中包含',res,u'条数据\n'print u'数据如下:(姓名 密码 序号)'for data in cur.fetchall():print '%s %s %s' % datacur.close()conn.close()
except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])

        输出结果如图所示:

        对应的MySQL中的结果是一致的,下图是对应的结果。

3.创建表

下面这段代码是创建一张教师表,主要是通过commit()提交数据。

# coding:utf-8 
import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01', charset='utf8')cur=conn.cursor()#查看表print u'插入前包含表:'cur.execute('show tables')for data in cur.fetchall():print '%s' % data#插入数据sql = '''create table teacher(id int not null primary key auto_increment,name char(30) not null,sex char(20) not null)'''cur.execute(sql)#查看表print u'\n插入后包含表:'cur.execute('show tables')for data in cur.fetchall():print '%s' % datacur.close()conn.commit()conn.close()
except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如下所示,插入教师表,包含字段:教师序号(id)、教师名称(name)、教师性别(sex)。

插入数据也可以通过execute(sql)方法实现,如:       

 cur.execute("insert into student values( 'yxz', '111111', '10')"

但插入的新数据通常是通过变量进行赋值,而不是固定的,所以要对这条语句中的值做修改。我们可以做如下修改:

# coding:utf-8 
import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01')cur=conn.cursor()#插入数据sql = '''insert into student values(%s, %s, %s)'''cur.execute(sql, ('yxz','111111', '10'))#查看数据print u'\n插入数据:'cur.execute('select * from student')for data in cur.fetchall():print '%s %s %s' % datacur.close()conn.commit()conn.close()
except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如下所示:

>>> 
插入数据:
esatmount 123456 1
yangxiuzhang 123456 2
xiaoy 123456 3
yxz 111111 10
>>> 

同样,对数据库的增删改插都可以进行,请读者自行阅读。后面我会结合Python爬虫讲述,如何将爬取的内容存储在数据库中,如我CSDN的博客,爬取博客标题、发布时间、阅读量和评论数。

MySQL数据库中结果如下图所示:
 

最后希望文章对你有所帮助,如果文章中存在不足或错误的地方,还请海涵~还是那句话,挺享受现在的老师生活,不论科研、项目,还是教学,很充实,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405248.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Opencv-C++笔记 (20) : 距离变换与分水岭的图像分割

文章目录 一、图片分割分水岭算法理解分水岭算法过程 二、距离变换与分水岭距离变换常见算法有两种分水岭变换常见的算法步骤 主要函数c代码四、结果展示 一、图片分割 图像分割(Image Segmentation)是图像处理最重要的处理手段之一 图像分割的目标是将图像中像素根据一定的规则…

python之matplotlib (6 等高线和热力图)

等高线 import numpy as np import matplotlib.pyplot as pltdef f(x,y):return (1-x/2x**5y**3)*np.exp(-x**2-y**2) n256 xnp.linspace(-3,3,n) yx X,Ynp.meshgrid(x,y) plt.contourf(X,Y,f(X,Y),8,alpha0.75,cmapviridis) plt.colorbar() Cplt.contour(X,Y,f(X,Y),8,colors…

【Python机器学习系列】建立XGBoost模型预测小麦品种(案例+源码)

这是我的第344篇原创文章。 一、引言 对于表格数据,一套完整的机器学习建模流程如下: 针对不同的数据集,有些步骤不适用,其中橘红色框为必要步骤,欢迎大家关注翻看我之前的一些相关文章。前面我介绍了机器学习模型的二…

EmguCV学习笔记 VB.Net 4.5 像素距离和连通区域

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问:EmguCV学习笔记 C# 目录-CSD…

什么是黄金期权?黄金期权合约详解

想要了解什么是黄金期权首先要了解一下黄金期货。黄金期货是以现货黄金为标的物的期货品种,其交易代码通常为Au。而黄金期权,又称为黄金期货期权,是一种期权合约,其标的物是黄金期货合约本身,而非黄金现货。这意味着期…

设计模式22-迭代器模式

设计模式22-迭代器模式 迭代器模式(Iterator Pattern)动机定义结构定义结构结构图解释注意事项 C代码推导多态属性(虚函数)实现迭代器1. **返回值问题**2. **对象切割问题**3. **内存管理问题**4. **迭代器生命周期问题**5. **接口…

【保姆级教程】5分钟上手 Coze 自建插件,把 AI 接入个人微信

上篇,给大家介绍了一款搭建微信机器人的开源项目: 搭建微信机器人的第4种方式,我造了一个摸鱼小助手 不同于需要付费的项目,它的定制化程度非常高~ 问题来了:怎么接入 AI 能力呢? 考虑到大家对 Coze 智能…

(第三期)书生大模型实战营——OpenXLab部署InternLM2实践——上传模型

OpenXLab 部署 InternLM2 实践指南 上传模型 初始化git设置 # install git sudo apt-get update sudo apt-get install git# install git lfs sudo apt-get update sudo apt-get install git-lfs# use git install lfs git lfs installOpenXLab 使用你在平台的用户名作为 Git…

如何使用midjourney?MidJourney订阅计划及国内订阅教程

国内如何订阅MidJourney 第三方代理 参考: zhangfeidezhu.com/?p474 使用信用卡订阅教程 办理国外信用卡: 这个各自找国外的银行办理就好了。 登录MidJourney: 登录MidJourney网站,进入订阅中心。如果是在Discord频道&#x…

MySQL 高阶三 (索引性能分析)

执行过程 Explain explain select * from student s, course c , student_coure sc where s.id sc.studentid and c.id sc.courseid;EXPLAIN执行计划各字段含义: 【ld】 id相同,执行顺序从上到下; id不同,值越大,越先执行)。 【select_type…

C语言程序设计(初识C语言后部分)

1024M1GB,1GB1级棒。关爱一级棒的程序员们,宠TA没商量! 5)函数的嵌套调用和链式访问 函数和函数之间可以根据实际的需求进行组合的,也就是相互调用的。 1.嵌套调用 函数可以嵌套调用,但不可以嵌套定义&a…

作业帮 TiDB 7.5.x 使用经验

作者: 是我的海 原文来源: https://tidb.net/blog/5f9784d3 近期在使用 TiDB 时遇到的一些小问题的梳理总结,大部分版本都在6.5.6和7.5.2 1、limit 导致的扫描量过大的优化 研发定时任务每天需要扫描大量数据,到时机器网卡被…

TCP并发服务器模型

1.阻塞IO CPU占用率低,等待资源时将任务挂起,不占用CPU资源,等到拿到资源后继续向下执行 向管道中写入数据 write.c #include "../head.h" int main() {int fd;mkfifo("/tmp/myfifo",0777);char tmpbuff[100]{0};fdopen("/tmp/myfifo",O_WRON…

三十八、【人工智能】【机器学习】【监督贝叶斯网络(Bayesian Networks)学习】- 算法模型

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

39_WAF的概念、功能,ModSecurity部署配置、LAMP环境部署、Ubuntu搭建DVWA靶机测试、测试WAF防御、OWASP规则集的部署

一、WAF的概念 WAF( Web Application Firewall ),即Web应用防火墙 通过执行一系列HTTP/HTTPS(应用层的协议)的安全策略为Web应用提供保护的一种网络安全产品。增加攻击者的难度和成本,但不是100%安全。工…

halcon的HObject被释放

经过简述 某项目由我统一管理HObject(区域和图像)的释放。发现某区域被系统外部所释放。可能有两种情况:a,区域交给我后,释放了。b,获取我的区域后释放了。 最终证明是第二种情况,证明如下: a,…

Python数据分析:Pandas与NumPy结合,实现高效数值计算,提升数据分析效率的最佳实践

目前小编的借调任务已经完成,借调到其他组完成了自己的工作,有需要的同学可以看下相关的文章:Python(Flask) React && Golang(Gin) Vue(Element),然后小编认为可以回到原来的…

深入探讨 Nginx:安装、配置及优化指南

一、Nginx 概述及编译安装 1、概述 Nginx是一个高性能的开源HTTP和反向代理服务器,同时也是一个IMAP/POP3邮件代理服务器。它最初由Igor Sysoev于2002年开发,并于2004年首次发布。Nginx以其高并发性、低资源消耗和灵活的配置能力而受到广泛关注&#x…

[鹏城杯 2022]简单的php

题目源代码 <?phpshow_source(__FILE__); $code $_GET[code]; if(strlen($code) > 80 or preg_match(/[A-Za-z0-9]|\|"||\ |,|\.|-|\||\/|\\|<|>|\$|\?|\^|&|\|/is,$code)){die( Hello); }else if(; preg_replace(/[^\s\(\)]?\((?R)?\)/, , $code…

网安新声 | 从微软“狂躁许可”漏洞事件看安全新挑战与应对策略

网安加社区【网安新声】栏目&#xff0c;汇聚网络安全领域的权威专家与资深学者&#xff0c;紧跟当下热点安全事件、剖析前沿技术动态及政策导向&#xff0c;以专业视野和前瞻洞察&#xff0c;引领行业共同探讨并应对新挑战的策略与可行路径。 近期&#xff0c;微软披露了一个最…