以下是python读取数据库的基本方法
关于怎样安装配置MySQL,网上教程一堆,不作详解
import mysql.connector #导入库
#MySQL的基本配置
config = {'host':'127.0.0.1',
'user':'root',
'password':'123456',
'database':'python_data',
'charset':'gb2312' #字符编码
}
# 建立mysql连接
cnn = mysql.connector.connect(**config)
cursor = cnn.cursor() # 获得游标
# sql语句,order为目标数据表
sql = "SELECT * FROM 'order' "
cursor.execute(sql) # 执行sql语句
data = cursor.fetchall() # 通过fetchall方法获得数据
for i in data[:2]:# 打印前两条数据
print(i)
cursor.close() #关闭游标
cnn.close() # 关闭连接
上述中代码实现了python连接mysql所有数据,并打印前两条数据的功能。
下面我们来介绍mysql语句的其他的一些方法:
1、只查询前N条数据而非全部数据行记录
SELECT * FROM 'order' LIMIT 100;
LIMIT为限制的数据记录方法,语法为limit m,n 意思是从第m到n-1条数据。
SELECT * FROM 'order' LIMIT 11,10;
2、只查询特定列(而非全部列)的数据
示列:只查询total_amount和order_id两列数据
SELECT total_amount,order_id FROM 'order';
3、查询特定列去重后的数据
示例:查询针对user_id去重后的数据
SELECT DISTINCT user_id FROM 'order';
关键词DISTINCT用于返回唯一不同的值,后面接字段名,即要去重的字段。
4、查询带有一个条件的数据
示例:查询total_amount<100的所有数据
SELECT * FROM 'order' WHERE total_amount < 100;
WHERE是条件关键字,后面接具体条件
5、查询带有多个条件(同时满足)的所有数据
示例:查询total_amount<100且status为REMOVED的所有数据
SELECT * FROM 'order' WHERE total_amount <100 and 'status' = 'REMOVED';
6、查询带有多个条件(满足任意一个)的所有数据
示例:查询total_amount<100或status为REMOVED的所有数据
SELECT * FROM 'order' WHERE total_amount <100 or 'status' = 'REMOVED';
7、查询特定条件值在某个值域范围的数据
示例:查询status的值为REMOVED或NO_PENDING_ACTION或PENDING_ORDER_CONFIRM
SELECT * FROM 'order' WHERE 'status' in('REMOVED','NO_PENDING_ACTION','PENDING_ORDER_CONFIRM');
8、使用正则表达式查询具有复杂条件的数据
示例:查询user_id以106开头且order_id包含04的所有订单数据
SELECT * FROM 'order' WHERE user_id LIKE '106%' and order_id LIKE '%04%';
关键字LIKE连接不同的正则语法,后面接具体的匹配模式。
9、将查询到的数据倒序排列
示例:将total_amount金额在10-100之间的所有数据按照定单ID倒序排列
SELECT * FROM 'order' WHERE 10 < total_amount < 100 ORDER BY order_id DESC;
在查询表达式ORDER BY的结尾,通过使用DESC来表示倒序排列,省略的话默认使用ASC正序排列。
10、查询指定列中包含空值的所有数据
示例:查询order_id不为空的所有数据
SELECT * FROM 'order' WHERE order_id IS NOT NULL;
IS NULL表示为空,IS NOT NULL表示为非空。
当然还有其他的查询方法,欢迎补充,以上总结十条常用方法。