使用pymysql 单表查询 单标查询语法: 关键字执行的优先级 建表: Where查询: GROUP BY 分组查询: HAVING 组过滤: ORDER BY 排序查询:LIMIT限制查询:
1.下载pymysql包: pip3 install pymysql
2.编写代码
###### 增加数据
import pymysql # 导入pymysql模块
# 1. 生成conn连接对象 固定语法
conn=pymysql.Connect(host='127.0.0.1', user='root', password="123",
database='day40', port=3306,)
# 2.创建游标对象,用于操作数据库
cur=conn.cursor()
with open('test','r',encoding='utf-8') as f:
for line in f:
# 学python从开始到放弃 | alex | 人民大学出版社 | 50 | 2018 - 7 - 1
line=line.strip().split('|')
# 3 编写sql语句 %s是sql语言的占位符 和python无关
sql='insert into book(b_name,auth, press,price,p_date) values(%s,%s,%s,%s,%s)'
# 4. 执行sql语句 , execute方法,可以拼接sql语句
cur.execute(sql,line)
# 5. 增, 删, 改 数据 都需要进行提交
conn.commit()
# 6 关闭操作游标, 关闭连接
cur.close()
conn.close()
#### 查询数据
import pymysql # 导入pymysql模块
# 1. 生成conn连接对象 固定语法
conn=pymysql.Connect(host='127.0.0.1', user='root', password="123",
database='day40', port=3306,)
# 2.创建游标对象,用于操作数据库
cur=conn.cursor()
# 3. 编写sql语句
sql = 'select * from book'
# 4. 执行sql
cur.execute(sql)
# 5. 查询结果
res1 = cur.fetchone() # 查询一条 以元组的形式返回数据
res2 = cur.fetchmany(2) # 查询多条
res3 = cur.fetchall() # 查询全部
print(res1) # 控制台打印结果
print(res2)
print(res3)
# 6 关闭操作游标, 关闭连接
cur.close()
conn.close()
二丶单表查询
单标查询语法:
SELECT DISTINCT 字段1,字段2... FROM 表名
WHERE 条件
GROUP BY field
HAVING 筛选
ORDER BY field
LIMIT 限制条数
关键字执行的优先级
#3## 特别重要 👇
from :找到表:from
where :拿着where指定的约束条件,去文件/表中取出一条条记录
group by :将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组
select :执行select
distinct :去重
having :将分组的结果进行having过滤
order by : 将结果按条件排序:order by desc降序 acs升序
limit :限制结果的显示条数
建表:
# 创建表
company.employee
员工id id int
姓名 emp_name varchar
性别 sex enum
年龄 age int
入职日期 hire_date date
岗位 post varchar
职位描述 post_comment varchar
薪水 salary double
办公室 office int
部门编号 depart_id int
#创建表
create table employee(
id int not null unique auto_increment,
emp_name varchar(20) not null,
sex enum('male','female') not null default 'male', #大部分是男的
age int(3) unsigned not null default 28,
hire_date date not null,
post varchar(50),
post_comment varchar(100),
salary double(15,2),
office int, #一个部门一个屋子
depart_id int
);
#查看表结构
mysql> desc employee;
+--------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| emp_name | varchar(20) | NO | | NULL | |
| sex | enum('male','female') | NO | | male | |
| age | int(3) unsigned | NO | | 28 | |
| hire_date | date | NO | | NULL | |
| post | varchar(50) | YES | | NULL | |
| post_comment | varchar(100) | YES | | NULL | |
| salary | double(15,2) | YES | |