Title

python MySQL的一些基本操作

 

 中文官方文档:MySQL 中文文档 | MySQL 中文网 (mysqlzh.com)

一、基本操作 

1、登录MySQL:

  win+R 进入cmd:

    输入:mysql -uroot -p

    再输入自己设置的密码:

    就可以进入:

               

 

 

 2、查看mysql中所有数据库(Database) :  show databases;   (以分号结尾)

             

 

 

 

3、创建数据库(前面两个单词固定,后面一个为自己要创建的数据库的名字):create database aaaaaa_bbbbbbb;

 

           

  有这个说明创建成功

  再次查询,可以看到确实成功

            

 

 

4、删除数据库:drop database aaaaaa_bbbbbbb;

 

   删除成功:

             

 

 

5、切换进某个数据库(第二个参数为要进入的数据库):use pythondb;

       

 

 

   切换成功:

 

6、可以查看数据库中所有表:  show tables;

       

 

 

   可以看到有一个表(刚开始没有需要自己创建,下面会讲):

 

7、删除表格: drop table data;

        

 

 

   删除之后变成空的了。

 

 

创建一个表格并制定表头(这里先不讲):

CREATE TABLE excel(
`province` varchar(40),
`city` varchar(30),
`nowConfirm` int ,
`newAdd` int ,
`total` int ,
`heal` int ,
`dead` int ,
`healRate` varchar(20) ,
`deadRate` varchar(20) ,
`time` varchar(20),
PRIMARY KEY (`province`,`time`)) DEFAULT CHARSET=utf8;

 

       

 

 

       成功

 

8、查看表格标表头 :  desc excel;

           

 

 

 

 

二、开始用python操作

为了方便讲解我用了一个可视化MySQL的软件:Navicat

 

 

 

1、首先肯定是先创建一个

# 创建数据库表

import pymysql
# 如果是本机的话
host = 'localhost' #'127.0.0.1'
# 下面两个参数是自己安装配置时的名字和密码
user = 'root'
passwd = 'root'
# 打开数据库连接,不需要指定数据库,因为需要创建数据库
conn = pymysql.connect(host=host,user = user,passwd = passwd)
#获取游标
cursor=conn.cursor()
# 创建数据库的语句
sql = 'CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;'

#创建一个名为test_db数据库
# 执行创建语句
cursor.execute(sql)
# 下面的两条语句不能反了
#先关闭游标
cursor.close()
#再关闭数据库连接
conn.close()
print('创建数据库成功')

结果图:




 

解释一下某些参数:

# DEFAULT CHARACTER SET utf8 :   代表的是将该库的默认编码格式设置为utf8格式。
# COLLATE utf8_general_ci :    代表的是数据库校对规则,utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。
# utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

 

2、接下来当然就是链接数据库;

import pymysql

#
打开数据库连接,比上面多了两个参数(为最后两个),一个为要打开的数据库,一个为指定编码格式 db = pymysql.connect("localhost", "root", "root", 'test_db', charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() sql = "SELECT VERSION()" # 使用execute方法执行SQL语句,# 获取到版本号 cursor.execute(sql) # 使用 fetchone() 方法获取一条数据 data = cursor.fetchone() # 获取到版本号 print("Database version : %s " % data) # 关闭光标 cursor.close() # 关闭数据库连接 db.close()

运行结果:

 

 

 

 

3、创建一个数据表(table):create table (大小写都行)

import pymysql

# 创建tables,与表头
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 若excel的数据表已经存 则。
cursor.execute("DROP TABLE IF EXISTS excel")

# 创建数据表SQL语句
sql = """create table excel (
         id  CHAR(20) NOT NULL,
         name  CHAR(20),
         age INT,
         sex CHAR(1),
         number FLOAT )"""

# 执行sql语句
cursor.execute(sql)
# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()

 

创建成功:

 

 

4、插入数据: 

import pymysql

# 数据库插入操作
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO excel(id,
         name, age, sex, number)
         VALUES ('1114444', 'Mohan', 20, 'M', 2000)"""
try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    print('成功')
except Exception as e:
    print('出错')
    # Rollback in case there is any error
    db.rollback()

# 关闭数据库连接
db.close()

效果:

 

 这个程序没有去重,所以没运行一次都会加入,不管重复不。

 

# 记住%s 必须再两边加上''否则会出错

也可以用这样:后面的只可以用变量代替:

sql = "INSERT INTO EMPLOYEE(id,name, age, sex, number)VALUES ('%s', '%s', '%s', '%s', '%s' )" % ('1314', 'hahaha', 34, 'm', 2400)

 

 

5、表的查询:

import pymysql
# 数据库查询操作

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 查询语句, 当其number大于1500时
sql = "SELECT * FROM excel \
       WHERE number > %s" % (1500)
try:
    # 执行SQL语句
    cursor.execute(sql)
    # cursor.fetchone() 获取纪录列表,返回一条,读完一条会往下

    # 获取所有记录列表,返回全部
    results = cursor.fetchall()
    for row in results:
        id = row[0]
        name = row[1]
        age = row[2]
        sex = row[3]
        number = row[4]
        # 打印结果
        print("id=%s,name=%s,age=%s,sex=%s,number=%s" % \
              (id, name, age, sex, number ))
except Exception as e:
    print(e)
    print("Error: unable to fecth data")

# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()

 

 我自己加了一条

 

 

6、更新数据

import pymysql


# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 更新语句, 给女性的number加300
sql = "UPDATE excel SET number = number + 300 WHERE sex = '%c'" % ('w')
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()

# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()

 

7、删除

import pymysql

# 删除操作
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )
#
# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 删除number<2100数据的语句
sql = "DELETE FROM excel WHERE number < %s" % (2100)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()

# 关闭游标
cursor.close()
# 关闭连接
db.close()

 

 

 

 

 

 


posted @ 2021-12-24 18:00  宇一心途  阅读(290)  评论(0)    收藏  举报