1.现在数据库有一张表,表里面每一行都是一条交易记录,有ID,日期,类型(自营和第三方),支付状态,金额5个字段,现在需要一句SQL查询出当天自营和第三方总得营业额。未支付和已退款不算在营业额内,已支付和待退款算在营业额内。需要展现的结果就是自营 xxx元 第三方 xxx元
select type,sum(total) from payinfo where state in (1,2) group by type;
2.用一条SQL 语句 查询出每门课都大于80 分的学生姓名
SELECT distinct sc_s_id FROM mydemo.score where sc_s_id not in (select sc_s_id from mydemo.score where sc_score <80);
select sc_s_id from mydemo.score group by sc_s_id having min(sc_score)>80;
select S_Name from mydemo.student where s_id in(select sc_s_id from mydemo.score group by sc_s_id having min(sc_score)>80);
3.删除除了编号不同, 其他都相同的学生冗余信息
delete from mydemo.score where sc_id not in(select min(sc_id) from mydemo.score group by sc_score,sc_s_id,sc_c_id);
4.连接两个数据表的用法inner join ......on.......:
连接两个数据表的用法:
FROM Member(表1) INNER JOIN MemberSort(表2) ON Member.MemberSort=MemberSort.MemberSort(相同条件)
语法格式可以概括为:
FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
连接三个数据表的用法:
FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号
连接四个数据表的用法:
FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号
连接五个数据表的用法:
FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号
5、查询用户表中以李开头的所有用户数据
select * from user_info where uname like "李%";
6、查询用户表中以强结尾的所有用户数据
select * from user_info where uname like "%强";
7、查询表中姓张的用户的平均工资
select AVG(工资) from 表名 where S_name like '张%';
8、查询两张表中所有工资大于7000的用户和用户薪资
SELECT S_NAME as name,S_Salary as salary FROM mydemo.student1 where S_Salary>7000 union select S_NAME as name,S_Salary as salary from mydemo.student where S_Salary>7000 ;
9、如果两张表的结构 一致,把B表的数据插入到A表中
insert into mydemo.student (select * from mydemo.student1);
10、取出数据库中用户表中第10到20条记录,id为自增长可能不是连续的
SELECT * FROM mydemo.student where s_id limit 10,13;
SELECT * FROM mydemo.student limit 10,13;
limit的用法
select * from 表名 where (列名) limit 10,20; //取出10到20条直接的记录
select * from 表名 where (列名) limit 5; //取出前6条记录
select * from 表名 where (列名) limit 6,-1; //取出7到最后一条记录
11、查询平均分大于70分的学生编号和平均分
select avg(sc_score) as pingjun,sc_s_id from mydemo.score group by sc_s_id having pingjun > 70;
网友评论