操作mysql(图形界面) 建库建表

连接Mysql建库建表 连接服务器中mysql! 信息: IP: 39.98.39.173 用户名: root 密码: root   1. 图形界面工具: navicate

 

 

 

 

2. 建库

 

 

3. 建表 分析 # 学生表students # 学生对象包含属性(id,姓名,性别,年龄,生日,手机号,地址…) #根据业务需求随意扩展! # 对应列!

 

 

 

 

Python操作数据库  

 

 

python操作数据库流程 下载mysql驱动模块(pymysql) 引入模块 建连接(建立和数据库连接) 执行sql语句 非查询:增加,删,修改 查询:select 处理结果 释放资源 关连接 关游标     驱动介绍 python操作mysql驱动/第三方模块: MySQLdb PyMysql pymysql: 支持2.x 支持3.x mysqldb: 只支持3.x

#安装模块 
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 =‘刘晒

 

 

python实现非查询 非查询:步骤一样的! 区别: sql语句不同, 参数个数不同! 

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的

  

核心对象 连接对象: conn= pymysql.connect(host=‘IP地址‘,port=13306,user=‘用户名‘,passwd=‘密 码‘,db=‘数据库名‘,charset=‘utf) conn.close() #关闭 cur= conn.cursor() 创建游标 游标 Cursor 操作数据库依靠游标! num = cur.execute(sql,参数) 执行非查询,返回影响的行数! num=cur.executemangy(sql,[(),(),..]) 批量执行非查询,返回影响行数! cur.close() cur.fetchone() 抓取1条,,返回元组或None cur.fetchall() 抓取所有 cur.fetchmany(大小) 指定抓取大小 cur.next() 游标下移!     查询

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()