mysql 实战
建表语句:
CREATE TABLE employee
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(150) NOT NULL DEFAULT '',
dept
varchar(150) NOT NULL DEFAULT '',
salary
int(11) NOT NULL DEFAULT '0',
edlevel
int(11) NOT NULL DEFAULT '0',
hiredate
varchar(150) NOT NULL DEFAULT '',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据:
INSERT INTO employee
(id
, name
, dept
, salary
, edlevel
, hiredate
)
VALUES
(1,'张三','开发部',2000,3,'2009-10-11'),
(2,'李四','开发部',2500,3,'2009-10-01'),
(3,'王五','设计部',2600,5,'2010-10-12'),
(4,'王六','设计部',2300,4,'2010-10-03'),
(5,'马七','设计部',2100,4,'2010-10-06'),
(6,'赵八','销售部',3000,5,'2010-10-05'),
(7,'钱九','销售部',3100,7,'2010-10-07'),
(8,'孙十','销售部',3500,7,'2010-10-06');
1、列出工资高于本部门平均工资的员工姓名、工资、部门名称;
select a.name,a.dept,a.salary from employee a where a.salary > (select avg(b.salary) from employee b where a.dept=b.dept);
2、列出各部门中工资高于本部门平均工资的员工数和部门名称;
select dept,count(*) num from employee a where a.salary > (select avg(b.salary) from employee b where a.dept=b.dept) group by a.dept;
二、
CREATE TABLE stuscore
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(50) NOT NULL DEFAULT '',
class
varchar(50) NOT NULL DEFAULT '',
course
varchar(50) NOT NULL DEFAULT '',
score
int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO stuscore
(id
, name
, class
, course
, score
)
VALUES
(1,'小明','1班','高数',81),
(2,'小明','1班','数据结构',88),
(3,'小明','1班','操作系统',65),
(4,'小红','1班','数据结构',55),
(5,'小丁','2班','高数',90),
(6,'小样','3班','高数',70),
(7,'小样','3班','数据结构',78),
(8,'小红','1班','高数',67),
(9,'小丁','2班','操作系统',87),
(10,'小红','1班','操作系统',52);
1、列出课程得分小于课程平均分的记录;
select a.* from stuscore a ,(select course as a_course,avg(score) as a_score from stuscore group by course) as avg_score
where a.course=avg_score.a_course and a.score < avg_score.a_score ;
2、筛选出每门课程都比对应课程平均分低的同学(悬而未决)
三、
CREATE TABLE provincet
(
id
int(11) NOT NULL AUTO_INCREMENT,
province
varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO provincet
(id
, province
)
VALUES
(1,'广东'),
(2,'湖南'),
(3,'湖北');
CREATE TABLE city
(
id
int(11) NOT NULL AUTO_INCREMENT,
pid
int(11) NOT NULL DEFAULT '0',
city
varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO city
(id
, pid
, city
)
VALUES
(1,1,'广州'),
(2,1,'深圳'),
(3,1,'惠州'),
(4,2,'长沙'),
(5,3,'武汉');
1、统计每个省份有几个城市,显示字段:省份id、省份名、城市个数
select p.id,p.province,count(pid) num from provincet
p left join city c on p.id = c.pid group by pid;
http://topmanopensource.iteye.com/blog/364584
mysql 实战的更多相关文章
- mysql实战之 批量update
mysql实战之批量update 现阶段我们的业务量很小,要对admin_user表中的relationship字段进行更新,指定id是409.已知409是公司内的一服务中心,需要把该服务中心放到区代 ...
- centos mysql 实战 第一节课 安全加固 mysql安装
centos mysql 实战 第一节课 安全加固 mysql安装 percona名字的由来=consultation 顾问+performance 性能=per con a mysql ...
- MySQL实战 | 04 为什么要使用索引?
原文链接:MySQL实战 | 为什么要使用索引? 用过 MySQL 的应该都知道索引是干啥的吧,应该多少都设置过索引,但是若是问你索引是怎么实现的,你能说上来吗? 索引是什么? MySQL 官方对索引 ...
- MySQL实战 | 06/07 简单说说MySQL中的锁
原文链接:MySQL实战 | 06/07 简单说说MySQL中的锁 本文思维导图:https://mubu.com/doc/AOa-5t-IsG 锁是计算机协调多个进程或纯线程并发访问某一资源的机制. ...
- MySQL实战 | 03 - 谁动了我的数据:浅析MySQL的事务隔离级别
原文链接:这一次,带你搞清楚MySQL的事务隔离级别! 使用过关系型数据库的,应该都事务的概念有所了解,知道事务有 ACID 四个基本属性:原子性(Atomicity).一致性(Consistency ...
- MySQL实战 | 01-当执行一条 select 语句时,MySQL 到底做了啥?
原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了, ...
- 极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间
极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间 笔记体会: 方案一,事务相 ...
- Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记
Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...
- Mysql实战45讲 05讲深入浅出索引(下)极客时间 读书笔记
极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID fro ...
- Mysql实战45讲 04讲深入浅出索引(上)读书笔记 极客时间
极客时间 Mysql实战45讲 04讲深入浅出索引 极客时间(上)读书笔记 笔记体悟 1.索引的作用:提高数据查询效率2.常见索引模型:哈希表.有序数组.搜索树3.哈希表:键 - 值(key - v ...
随机推荐
- C#程序从Excel表格中读取数据并进行处理
今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...
- JAVA项目从运维部署到项目开发(六. Jenkins之静态页面)
用Git托管静态页面代码,通过Jenkins部署静态页面,是再方便不过的了.本文将介绍如何通过Jenkins部署最新的静态页面代码. 一.Jenkins的配置 1.设置项目名称.参数(环境.分支)等 ...
- Go语言圣经习题练习_1.5. 获取URL
练习 1.7: 函数调用io.Copy(dst, src)会从src中读取内容,并将读到的结果写入到dst中,使用这个函数替代掉例子中的ioutil.ReadAll来拷贝响应结构体到os.Stdout ...
- activeMQ_helloworld(一)
一.activeMQ下载,直接在Linux上wget http://mirror.bit.edu.cn/apache//activemq/5.14.5/apache-activemq-5.14.5-b ...
- Codeforces Round #219(Div. 2)373 B. Making Sequences is Fun(二分+找规律)
题目意思大概是给你w,m,k三个数,让你从m开始找 m m+1 m+2 m+3...........m+m', 使得他们的权值之和不超过w,计算权值的方法如下S(n)·k . S(n)表示n有多少位数 ...
- react开发中的小细节
目前开始使用react余遇到的问题还不是很多,但还是希望总结一下. react中的属性prop: 在react中组件的父子组件的通信是基于prop的,当然对于底层的东西不是特别了解,但可以说一说它的基 ...
- SpringBoot Jar包瘦身 - 跟大文件说再见!
前言 SpringBoot部署起来配置非常少,如果服务器部署在公司内网,上传速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼.就是 编译出来的 Jar 包很大,如果工程引入了许多开 ...
- 最全面的改造Zuul网关为Spring Cloud Gateway(包含Zuul核心实现和Spring Cloud Gateway核心实现)
前言: 最近开发了Zuul网关的实现和Spring Cloud Gateway实现,对比Spring Cloud Gateway发现后者性能好支持场景也丰富.在高并发或者复杂的分布式下,后者限流和自定 ...
- .lib .dll 区别介绍、使用(dll的两种引入方式)
.lib .dll文件都是程序可直接引用的文件,前者就是所谓的库文件,后者是动态链接库(Dynamic Link Library)也是一个库文件.而.pdb则可以理解为符号表文件.DLL(Dynami ...
- Python 之父的解析器系列之三:生成一个 PEG 解析器
原题 | Generating a PEG Parser 作者 | Guido van Rossum(Python之父) 译者 | 豌豆花下猫("Python猫"公众号作者) 声明 ...