from pymysql import * #创建数据库的连接 conn=connect(host='192.168.117.128',user='root',password='111111', database='stuDB',charset='utf8') #创建一个游标对象 可以利用这个对象进行数据库的操作 try: cur=conn.cursor() insertsql=''' insert into student(id,name,hometown) values (66,'钱之坑','北京市') ''' cur.execute('select * from student where id=%s',[66]) # conn.commit() res=cur.fetchall() for item in res: print('姓名;{0} 地址{1}'.format(item[1],item[3])) print(res) #print('sucess') except Exception as ex: print(ex) finally: cur.close() conn.close()
2查询实战
2.1准备数据
创建表
1 2 3 4 5 6 7
create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate varchar(40) not null, brand_name varchar(40) not null, price decimal(10,3) not null default 0 );
使用insert语句,插入多条数据
1 2 3 4 5 6
insert into goods values(0,' Apple MacBook Air 13.3英寸笔记本电脑','笔记本','苹果','6588’); insert into goods values(0,'联想(Lenovo)拯救者R720 15.6英寸大屏','笔记本','联想','6099’); insert into goods values(0,'法国酒庄直采原瓶原装进口AOC级艾落干红葡萄酒','红酒','法国','499’); insert into goods values(0,'x550cc 15.6英寸笔记本','笔记本','华硕','2799’); insert into goods values(0,'清扬(CLEAR)洗发水','洗发水','清扬','35’); ......
2.2查询
查询goods表中所有的商品
1
select * from goods;
查询所有产品的平均价格,并且保留两位小数
1
select round(avg(price),2) as avg_price from goods;
通过子查询来实现,查询所有价格大于平均价格的商品,并且按价格降序排序
1 2 3
selectid,name,price from goods where price > (select round(avg(price),2) as avg_price from goods) order by price desc;
查询所有 “联想” 的产品
1
select * from goods where brand_name='联想';
查询价格大于或等于”联想”价格的商品,并且按价格降序排列
1
selectid,name,price from goods where price >= any(select price from goods where brand_name = '联想’) order by price desc;
查询每个产品类型的最低价格的,通过cate字段进行分组。
1
select cate,min(price) from goods group by cate;
查询价格区间在4500-6500之间的笔记本
1
select * from goods where price between 4500 and 6500 and cate='笔记本';
2.3查询数据分表
创建一个商品表
create table if not exists goods_cates(
1 2 3
cate_id int unsigned primary key auto_increment, cate_name varchar(40) );
1、查询goods表中所有的商品,并且按”类别”分组
1
select cate from goods group by cate;
2、将分组后的结果写入到刚才创建的表中
1
insert into goods_cates (cate_name) select cate from goods group by cate;
desc goods; alter table goods change cate cate_id int unsigned not null, change brand_name brand_id int unsigned not null;
7、通过左连接查询所有商品的信息
1 2 3
selectid,name,cate_name,brand_name,price from goods as g left join goods_cates as c on g.cate_id = c.cate_id left join goods_brands as b on g.brand_id = b.brand_id;
8、通过右连接查询所有商品的信息
1 2 3
selectid,name,cate_name,brand_name,price from goods as g right join goods_cates as c on g.cate_id = c.cate_id right join goods_brands as b on g.brand_id = b.brand_id;