MySQL

2020-10-06  本文已影响0人  听闻白依

-- 1 创建一个班级表(classes),包含字段id,name

create DATABASE a

use a

CREATE TABLE class(

id INT PRIMARY KEY auto_increment,

cname VARCHAR(20)

)

-- 2创建一个学生表(students),包含字段id,name,birthday,gender,score,class_id

CREATE TABLE students(

id INT PRIMARY KEY auto_increment,

sname VARCHAR(10),

birthday date,

gender VARCHAR(20),

score INT,

class_id INT

)

-- 3 在班级表中添加三条记录 id:1 name:一年级,id:2 name:二年级,id:3 name:三年级

INSERT into class(cname) VALUES("一年级"),("二年级"),("三年级")

-- 4 在员工表里添加六条记录,

INSERT into students(sname,birthday,gender,score,class_id) VALUES

('张三','2010-11-10','男','100','1'),

      ('李四','2012-11-10','女','75','1'),

      ('王五','2014-11-10','男','80','2'),

      ('小明','2013-11-10','女','60','2'),

      ('小李','2015-11-10','女','30','3'),

      ('小刘','2008-11-10','男','90','3')

-- 5 使用pymysql模块来查询每个班级的平均分

select AVG(s.score),c.cname FROM students s ,class c WHERE s.class_id=c.id GROUP BY s.class_id

/* 6 修改张三的名字为张五 如 一年级  100

  二年级  80

  三年级  70*/

UPDATE students  SET sname="张五" WHERE sname="张三"

-- 7 删除班级名字为”三年级”的所有学生

delete FROM students WHERE class_id="3"

--  8  查询一年级分数最高的人

SELECT s.sname,MAX(s.score) as "最高成绩" FROM students s WHERE s.class_id=1

-- 9 查询所有学生的年级信息(用子查询实现)

select c.cname,s.sname from class c,students s WHERE s.class_id=c.id

-- 10 查询以‘小’开头的名字为一个字学生

SELECT * FROM students where sname like '小%'

-- 11查询出生日期在2008-11-10到2012-11-10的学生

SELECT s.sname,s.birthday from students s

where s.birthday>'2008-11-10' and s.birthday<'2012-11-10'

-- 1 创建一个分类表(cate),包含字段id,name

CREATE TABLE cate(

id INT PRIMARY KEY auto_increment,

cname VARCHAR(20)

)

-- 2 创建一个商品表(goods),包含字段id,name,number,create_time,price,cate_id

CREATE TABLE goods(

id INT PRIMARY KEY auto_increment,

gname VARCHAR(10),

number INT,

create_time date,

price DOUBLE,

cate_id INT

)

-- 在分类表中添加三条记录 id:1 name:服装,id:2 name:玩具,id:3 name:家电

INSERT into cate(cname) VALUES("服装"),

("玩具"),

("家电")

-- 在商品表里添加六条记录

INSERT into goods(gname,create_time,number,price,cate_id)

VALUES('羽绒服','2010-11-10','10','1.00','1'),

      ('轻便服','2012-11-10','30','2.00','1'),

      ('汽车','2014-11-10','40','2.00','2'),

      ('公主','2013-11-10','50','6.00','2'),

      ('橡皮泥','2015-11-10','23','3.50','2'),

      ('电饭煲','2008-11-10','3','3.00','3')

-- 使用pymysql模块来查询所有的分类及商品

select * from goods g LEFT JOIN cate c ON g.cate_id=c.id

--  把名字为‘羽绒服’修改成‘棉衣’

UPDATE goods  SET gname="棉衣" WHERE gname="羽绒服"

--  删除名字为‘电饭煲’的记录

delete FROM goods WHERE gname="电饭煲"

-- 查询‘服装’分类下面库存最多的商品信息

SELECT g.gname,MAX(g.number) as "max" FROM goods g,cate c WHERE c.cname="服装"

-- 查询分类下有商品分类信息

select c.cname,g.gname from cate c,goods g WHERE c.id=g.cate_id

-- 查询以‘服’结束的商品信息

SELECT * FROM goods where gname like '%服'

-- 查询创建日期在2008-11-10到2012-11-10的之间的商品

SELECT g.gname,g.create_time from goods g

where g.create_time>'2008-11-10' and g.create_time<'2012-11-10'

-- 创建一个数据库 cart

CREATE DATABASE cart

-- 使用新创建的数据库,在数据库下建立两张表

-- 用户表(users): id  姓名 身高

-- 购物车表(user_cart):id 商品名称  购买数量  总价  是否删除  用户id

-- 创建一个分类表(cate),包含字段id,name

CREATE TABLE users(

id INT PRIMARY KEY auto_increment,

uname VARCHAR(20),

height DOUBLE

)

CREATE TABLE user_cart(

id INT PRIMARY KEY auto_increment,

cname VARCHAR(20),

number INT,

price DOUBLE,

deleteu int,

uid INT

)

INSERT into users(uname,height)

VALUES("张三","1.80"),

        ("李四","1.75"),

        ("小明","1.34")

-- 在购物车表中加入以下记录(1代表未删除,0代表删除)

INSERT into user_cart(cname,number,price,deleteu,uid)

VALUES("商品一",10,100,1,1),

("商品二",3,89,0,1),

("商品三",2,30,1,1),

("商品四",10,50,1,2),

("商品五",3,10,1,2),

("商品六",1,76,1,2)

-- 7.更新李四的购物车中 商品五的名字为商品5 

UPDATE user_cart SET cname="商品5" WHERE cname="商品五"

-- 8.查询身高大于1米并且购物车没删除的用户和购物车信息

select * from users a LEFT  JOIN user_cart b ON b.uid=a.id WHERE a.height>1 AND b.deleteu=1

-- 9.查询购物车中删除和没删除的总价和为多少

SELECT sum(price) FROM user_cart

-- 10.查询每个用户没删除的购物车的数量大于1的记录,并按降序排列,取三条记录

SELECT * FROM user_cart a

WHERE a.deleteu=1 AND number>1

ORDER BY number DESC LIMIT 0,3

-- 11.按是否删除分组,查询平均总价格大于10的用户和购物车信息

SELECT * FROM user_cart a

GROUP BY deleteu

HAVING sum(a.price)/count(*)>10

-- 12.查询有购物车的用户和购物车信息

select * from users u right JOIN user_cart c ON c.uid=u.id WHERE c.deleteu=1

-- 13.删除张三购物车中已删除的购物车信息

上一篇下一篇

猜你喜欢

热点阅读