python链接mysql以及常用语法

MySQL是一个关系型数据库管理系统 ,其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。在使用过程中不总是和它打交道,导致使用时候都得查看具体的语法。下面为大家稍作总结一些常用到的(虽然常用的都背的溜溜的~)

在python3中使用mysql首先导入pymysql模块,没有这个模块的可以进行pip安装,要是mysql也没有的话,,参考http://www.cnblogs.com/xsmile/p/7753984.html进行安装。

进入mysql中,查看当前的含有的数据库都有哪些:

mysql -h localhost -u root -p    输入密码进入mysql环境。

show databses;  #显示当前数据库列表

show tables;  #显示当前数据库中包含的所有表

show create table table_name;  #查看表结构

alter table old_name rename to new_name  #修改数据表名

alter table table_name rename column old_column_name to new_column_name  #修改列名

alter tale table_name modify column_name new_type  #修改列的数据类型

alter table table_name add column_name datatype  #插入列

alter rable table_name drop column column_name  删除列

要在dos窗口操作数据库,先选择一个数据库,才能进行对其当中的表进行操作。即  use db_name;

我以test 数据库中 blog_test表操作为例:

 1 mysql> use test;
 2 Database changed
 3 mysql> select * from blog_test;

之后屏幕输出:

+----------+-----------------+--------+
| username | email           | gender |
+----------+-----------------+--------+
| charles  | [email protected] | male   |
| jerry    | [email protected]    | female |
| xsmile   | [email protected]  | male   |
+----------+-----------------+--------+
3 rows in set (0.03 sec)

当然重点在python中对mysql的操作,基本分为:

1、导入pymysql ;  2、链接到某个数据库;  3、创建游标;  4、要操作的语法。

在数据库中创建表:

 1 import pymysql  #导入包
 2 db=pymysql.connect(host=‘localhost‘,user=‘root‘,passwd=‘123456‘,db=‘test‘)  #链接数据库
 3 cursor=db.cursor()  #创建游标,对表进行操作
 4 cursor.execute("drop table if EXISTS blog_test")  #如存在blog_test表,则删除
 5 cursor.execute("create table blog_test(  6 username char (20) , 7 email CHAR (20) NOT NULL , 8 gender CHAR (6) NOT NULL, 9 PRIMARY key(username))charset=utf8")  #charset=utf8 使得表支持中文,否则默认为Latin1
10 cursor.close()
11 db.commit()
12 db.close()

创建一个空表也没什么用啊,里面有内容才有价值,才有使用的意义啊。

数据库中插入数据。

1 cursor.execute("insert into blog_test(username,email,gender) values(‘xsmile‘,‘[email protected]‘,‘male‘)")

很生动形象的语句,和mysql中语法简直一样。以后学到sqlalchemy 这个模块时就会方便很多了~,数据库中插入多条语句时用多条insert 语句。这里我们在代码中就有简洁的方法,对要插入的内容创建列表,就完成了多条插入。

1 ins="insert into blog_test VALUES (%s,%s,%s)"
2 datas=[ (‘charles‘,‘[email protected]‘,‘male‘),(‘jerry‘,‘[email protected]‘,‘female‘),]
3 cursor.executemany(ins,datas)

插入这里用的是:cursor.executemany() ,不过有个小提示,下面有 db.commit() 才可以实现插入到表中。不然虽无错误,但插不到表中。

先进行查询看看表中数据

1 import pymysql  #导入模块
2 db=pymysql.connect(host=‘localhost‘,user=‘root‘,passwd=‘123456‘,db=‘test‘)  #链接到数据库
3 cursor=db.cursor()  #创建游标对表进行相关操作
4 li=cursor.execute("select * from blog_test")  #对表进行查询
5 print(li)
6 cursor.close()  #关闭游标
7 db.close()  #断开数据库

这时我们发现输出的结果是一个数字 3,什么情况,查看数据库表即blog_test看到当中有3条数据。原来如此,那我们想显示那3条数据怎么办呢?!

当然是循环了,依次对表中元组输出。

1 info=cursor.fetchmany(li)
2 for item in info:
3     print(item)

还有cursor.fetchone() ,表示从中取一条数据。取其中元组时还有cursor.fetchall(), 不需要参数,取得的数据为游标当前位置到数据末尾的全部数据。在进行条件查询时可以加入where条件,语句和mysql中方法是一样的。

上面提到的有查询和插入,接下来看看更改操作。

1 cursor.execute("update blog_test set username=‘sofia‘ where email=‘[email protected]‘")

注意在查询字段中引号的使用,不能缺少。

删除操作的话想必大家都知道了,把mysql语句放在cursor.execute()中,即可完成相关操作。那我们把刚才更改的那行数据进行删除。

1 cursor.execute("delete from blog_test where username=‘sofia‘")

之后再查询blog_test表,名为sofia的数据信息就删除了。当然要删除整个表的话,就使用drop语句了,三思后行这个操作,不然你就是删库到跑路的那个人~

删除以及开启事务及回滚

在进行插入、更改,删除(delete)操作时,可以事先开启事务,这样当出错或返回时只需rollback回滚下就恢复为原来的数据了(在pycharme中默认开启事务,但最后还有commit(),这样程序执行后,也是无法弥补的)。例如:

 1 mysql> select * from b;  #查看b表数据
 2 +------+
 3 | b    |
 4 +------+
 5 |    4 |
 6 |    5 |
 7 |    6 |
 8 |    7 |
 9 +------+
10 4 rows in set (0.00 sec)
11
12 mysql> begin;  #开启事务
13 Query OK, 0 rows affected (0.00 sec)
14
15 mysql> delete from b where b=5;  #把为5的元组删除
16 Query OK, 1 row affected (0.05 sec)
17
18 mysql> select * from b;
19 +------+
20 | b    |
21 +------+
22 |    4 |
23 |    6 |
24 |    7 |
25 +------+
26 3 rows in set (0.00 sec)
27
28 mysql> rollback;  #回滚
29 Query OK, 0 rows affected (0.11 sec)
30
31 mysql> select * from b;
32 +------+
33 | b    |
34 +------+
35 |    4 |
36 |    5 |
37 |    6 |
38 |    7 |
39 +------+
40 4 rows in set (0.00 sec)

但是drop(将表格直接删除,没有办法找回)、以及truncate(删除表中的所有数据,不能与where一起使用)删除时回滚也挽回不了删除的数据。

原创不易,尊重版权。转载请注明出处:http://www.cnblogs.com/xsmile/

时间: 2024-10-09 08:39:03

python链接mysql以及常用语法的相关文章

python链接mysql

1.安装MySQLdb MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. 下载地址: http://sourceforge.net/projects/mysql-python/files/mysql-python/ 我下载了1.2.3版本 2.代码 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 import MySQLdb 4 # 打开数

python链接mysql pymysql

python链接mysql import pymysql conn = pymysql.connect(user='user1', password='123456', database='gbt2019', charset='utf8') cursor = conn.cursor() query = ('select id, title from data_2019100501') cursor.execute(query) for (id, title) in cursor: print(i

python学习道路(day12note)(mysql操作,python链接mysql,redis)

1,针对mysql操作 1 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 设置密码 2 update user set password=passworD("test") where user='root';修改密码 3 flush privileges; 4 grant all on *.* to [email protected]'%' identified by 'your_password'; 5 mysq

python 链接mysql和oralcle 数据库。

一.链接mysql数据,需要安装 PyMysql. 1.下载地址:https://github.com/PyMySQL/PyMySQL . 2.安装方式: a.解压pymysql安装包. b. cd 到 pymysql 目录. c.执行 python  setup.py install. 3.验证安装结果. import pymysql ,不报错则是成功. 二.链接oralce ,需要安装cx_Oracle 官网下载地址:https://oracle.github.io/python-cx_Or

mysql数据库常用语法

1)登录mysql数据库. mysql –uroot –poldboy123 mysql 2) 查看当前登录的用户. selectuser(); 3) 创建数据库oldboy,并查看已建库完整语句. create database oldboy; show databases; show create database oldboy; 4)创建用户oldboy,使之可以管理数据库oldboy. create user [email protected]'localhost' identified

python链接mysql数据库

import pymysql.cursors connection = pymysql.connect(host='172.16.250.156',                             user='xedk',                             password='admin',                             db='xedk',                             charset='utf8mb4',   

python链接mysql获得某列最大值

import pymysqlconn = pymysql.connect(host='10.1.2.198', port= 3306 ,user='root',passwd='123456',db='testing')cur = conn.cursor()#获取与CUSTOMER_ID交易总额最大的客户NAMEsql="select CUSTOMER_ID,NAME,TRADE_AMOUNT from tm_trade where TRADE_AMOUNT=(SELECT MAX(TRADE_A

python计算机二级考试常用语法(上)

#字符串的调出一个位置的元素,切片操作 print ("字符串调用算法"[1])#第二个位置 print ("字符串调用算法"[1:2])#第一个位置 print ("字符串调用方法"[1:4:2])#第二个位置到第三个位置 原文地址:https://www.cnblogs.com/gzyx/p/10568066.html

[mysql系列02]mysql常用语法

本文结合具体的实例讲解mysql基础常用语法 CREATE DATABASE CREATE DATABASE db_name CREATE DATABASE用给定的名字创建一个数据库,创建数据库mysqllearn. create database mysqllearn; CREATE TABLE CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_