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 ...
随机推荐
- Webpack概念
webpack概念 我经常用 webpack,打算做一次比较详细的概念清点和梳理.从 0 配置 webpack,由于 webpack5(2019.07.27)暂时还没有发布.并且从Webpack Mi ...
- django第一次(转自刘江大佬)
下面的模型定义了一个“人”,它具有first_name和last_name字段: from django.db import models class Person(models.Model): fi ...
- 【Android】error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'.
问题: res 文件夹下的 values 下的 styles.xml <style name="Sherlock.Light.NoActionBar" parent=&quo ...
- .net持续集成测试篇之Nunit常见断言
系列目录 Nunit测试基础之简单断言 在开始本篇之前需要补充一些内容,通过前面搭建Nunit测试环境我们知道要使一个方法成为单元测试方法首先要在此方法所在类加上TestFixture注解,并且在该方 ...
- Linux vim基本的使用方法
一.vim 的三种模式 (1) 插入模式 在插入模式中,才能输入文字:要进入插入模式,可以按键 “i”:如果要进入插入模式时,直接切换到下一行,可以输入“o”: (2) 命令模式 在命令模式中,主要进 ...
- .net core(c#)拟合圆测试
说明 很多时候,我们需要运动物体的转弯半径去描述其机器性能.但在大多数的现实条件下,我们只能够获取到运动物体的 GPS 位置点集,并不能直接得到转弯半径或者圆心位置.为此,我们可以利用拟合圆的方式得到 ...
- 如何选择合适的SSL证书类型
网站安装SSL证书就可以将http升级为https加密模式,网站安装SSL证书因此成为一种趋势.如何为网站选择适合的SSL证书类型呢? SSL证书类型可分为2大类:1)按照验证方式分类2)按照支持域名 ...
- 理解MySQL(一)--MySQL介绍
一.Mysql逻辑架构: 1. 第一层:服务器层的服务,连接\线程处理. 2. 第二层:查询执行引擎,MySQL的核心服务功能,包括查询解析.分析.优化和缓存,所有跨存储引擎的功能都在这一层实现. 3 ...
- Go中的并发编程和goroutine
并发编程对于任何语言来说都不是一件简单的事情.Go在设计之初主打高并发,为使用者提供了goroutine,使用的方式虽然简单,但是用好却不是那么容易,我们一起来学习Go中的并发编程. 1. 并行和并发 ...
- abc -- 牛客
题目描述 设a.b.c均是0到9之间的数字,abc.bcc是两个三位数,且有:abc+bcc=532.求满足条件的所有a.b.c的值. 输入描述: 题目没有任何输入. 输出描述: 请输出所有满足题目条 ...