Mysql实战中常用sql的分析
2020-06-06 07:06
134 查看
1.查询具体的最高、最低、平均值、大于平均值、小于平均值
-- 查询Score表中的最高分的学生学号和课程号。 SELECT * FROM students s, scores c WHERE s.sno = c.sno AND c.degree = (SELECT MAX(degree) FROM scores);
- 套路:1.求出最大值;2.学生表和成绩表连表或者子查询
2.查询每个分类中最大、最小的数量
-- 查询每个职位的最高工资以及人数 SELECT job.jname, res.jid, res.salary, COUNT(1) FROM (SELECT * FROM emp, (SELECT MAX(salary) as max, job_id as jid FROM emp GROUP BY jid) as max_table WHERE emp.job_id = max_table.jid AND emp.salary = max_table.max) as res, job WHERE res.jid = job.id GROUP BY jid;
- 套路:1.分组求出每个职位的最高工资;2.和职工表连表查询出结果集;3.对结果集连表、分组求出人数、职位、工资
3.从表中复制一条数据并插入(主键自增)
从表中复制一条数据,并插入 insert into student ( Sname,Sage,Ssex ) select Sname,Sage,Ssex from student where Sid =1;
4.查询一条数据,以别名展示
-- 查询出1990年以后出生的学生,并升序排列, 显示字段gender,性别为则显示为'male',女则显示为'female',非男或女则显示为'other' SELECT Sname, Sage, Ssex, (CASE Ssex WHEN '男' THEN 'male' WHEN '女' THEN 'female' ELSE 'other' END ) as gender FROM student WHERE SUBSTRING(Sage, 1, 4) > 1990 ORDER BY Sage;
- 套路:使用case...when...
5.查询存在和不存在的情况
查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null ) select * from (select * from sc where sc.CId = '01') as t1 left join (select * from sc where sc.CId = '02') as t2 on t1.SId = t2.SId;
套路:1.使用条件查询查出存在01课程的情况;2.根据需求使用内连接或者左连接、右连接查出需要的结果
6.根据数据库名获取数据库所有表字段信息
SELECT a.table_name 表名, a.table_comment 表说明, b.COLUMN_NAME 字段名, b.column_comment 字段说明, b.column_type 字段类型, b.column_key 约束 FROM information_schema.tables a LEFT JOIN information_schema.COLUMNS b ON a.table_name = b.TABLE_NAME WHERE a.table_schema = 'droi'
7.mysql行转列
select substring_index(substring_index('82,83,84,85,86',',',help_topic_id+1),',',-1) as Id from mysql.help_topic where help_topic_id<(length('82,83,84,85,86')-length(replace('82,83,84,85,86',',',''))+1);
转载于:https://my.oschina.net/chinahufei/blog/3067997
相关文章推荐
- MySQL · 源码分析 · 常用SQL语句的MDL加锁源码分析
- mysql基础知识理解和sql题讲解分析面试实战(二)之join
- PHP之Mysql常用SQL语句示例的深入分析
- mysql基础知识理解和sql题讲解分析面试实战(一)之groupBy&&having
- PHP之Mysql常用SQL语句示例的深入分析
- MySQL架构优化实战系列4:SQL优化步骤与常用管理命令
- mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作
- mysql基础知识理解和sql题讲解分析面试实战(三)之group_concat
- PHP之Mysql常用SQL语句示例的深入分析
- 经典MySQL语句大全和常用SQL语句命令的作用。
- [MySQL] 常用SQL的优化--18.4
- Mysql常用SQL语句集锦
- Mysql常用的sql语句
- MYSQL 常用 SQL 整理
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
- mysql中常用sql语句
- SQL语句性能分析常用命令
- 五款常用mysql slow log分析工具的比较
- 浅谈MySQL中优化sql语句查询常用的30种方法
- mysql基础(二) 常用SQL语句