连接服务器中mysql!
信息: IP: 39.98.39.173 用户名: root 密码: root
3.建表
- 学生表students
- 学生对象包含属性(id,姓名,性别,年龄,生日,手机号,地址…) #根据业务需求随意扩展!
- 对应列!
列名 | 类型 | 要求 |
---|---|---|
id | int整数 | 主键(primary key) 自增 |
name | varchar(20) 字符串 | 必须写字符串大小,不为空! |
sex | char(2) | 性别是固定的字符用char(2) |
age | int整数 | |
phone | varchar(11) 字符串 | 176***0805 |
birthday | datetime 时间 | |
addr | varchar(50)字符串 |
- 注意:python或任何编程语言php.java…net等,不能直接连接数据库!
- 需要安装对应的数据库驱动(第三方模块) [比如: 不同品牌手机连接到电脑,需要安装驱动包,才传输数据]
- 连接不同数据库,需要下载不同的驱动包!
驱动介绍
python操作mysql驱动/第三方模块: MySQLdb PyMysql
#安装模块
pip install pymysql
SQL
# 增加
insert into 表名(列1,列2,....) values(值1,值2,...)
# 删除
delete from 表名 ; # 删除表中所有数据!
delete from 表名 where 条件;
# 修改
update 表名 set 列1=值1,列2=值2,....; #不加条件,修改所有列!~ update 表名 set 列1=值1,列2=值2,....where 条件;
select * from students where sex ='男';
insert into students(name,sex,age,birthday,phone,addr)
values('刘帅','女',20,now(),'17600950805','山西') ;
update students set sex='男' where name ='刘帅'
delete from students where name ='刘晒'
def my_execute(sql,params):
'''非查询通用功能! sql语句, 参数列表'''
# 2.连接
conn = pymysql.connect(host='39.98.39.173',port=13306,user='root',passwd='root',db='1909C2',c harset='utf8')
print(conn)
# 3. 获取游标
cur = conn.cursor()
# 4. 执行
sql num = cur.execute(sql,params)
#print(f'影响行数:{num}')
conn.commit() # 必须手动提交到数据库!
# 5. 释放资源
cur.close()
conn.close()
# 返回影响行数!
return num
if __name__ == '__main__':
# 通用
sql ='insert into students(name,sex,age,birthday,phone,addr) values(%s,%s,%s,%s,%s,%s)'
params=('王五','女',39,'2020-11-03','17600950805','山西')
if my_execute(sql,params)>0:
print('数据库操作成功!')
else:
print('数据库操作失败!')
参数如何传递
sql ='insert into students(name,sex,age,birthday,phone,addr)
values(%s,%s,%s,%s,%s,%s)'
# 格式:一行数据就是一个元组!
params=('王五','女',39,'2020-11-03','17600950805','山西')
num = cur.execute(sql,params)
批量执行非查询
sql ='insert into students(name,sex,age,birthday,phone,addr)
values(%s,%s,%s,%s,%s,%s)'
# 格式:一行数据就是一个元组!
params=[('王五1','女',39,'2020-11-03','17600950805','山西'),('王五2','女',39,'2020-11- 03','17600950805','山西')]
num = cur.executemany(sql,params) # 结果大于1的
核心对象
import pymysql
def get_one():
# 1. 连接
conn = pymysql.connect(host='39.98.39.173', port=13306, user='root', passwd='root', db='1909C2', charset='utf8')
# 2. 打开游标
cur = conn.cursor()
# 3. 执行
sql ='select * from students where sex = %s'
cur.execute(sql,('女'))
#result = cur.fetchone() # 返回一个元组() 默认找第1个!
result = cur.fetchall() # 返回多个元祖 ((),(),(),...)
print(result)
for stu in result:
print(f'id:{stu[0]},名字:{stu[1]}')
# 4.关闭资源
cur.close()
conn.close()
if __name__ == '__main__':
get_one()
任务