mysql练习sql脚本

mysql练习sql脚本

先创建数据库,库名为db10,准备两个表:部门表dept 和员工表emp

create database db10; – 创建db10数据库
use db10; – 切换到db10数据库
create table dept( – 创建部门表
deptno int primary key, – 部门编号
deptname varchar(50), – 部门名称
loc varchar(50) – 部门位置
);
create table emp( – 创建员工表
empno int primary key, – 员工编号
empname varchar(50), – 员工姓名
job varchar(50), – 职位
mgr int, – 直属上级
hiredate date, – 受雇日期
sal int, – 薪资
comm int, – 奖金
deptno int, – 所在部门编号
foreign key(deptno) references dept(deptno)
);


– Records of dept 部门表数据


INSERT INTO dept VALUES (‘10’, ‘会计部’, ‘北京’);
INSERT INTO dept VALUES (‘20’, ‘调查部’, ‘杭州’);
INSERT INTO dept VALUES (‘30’, ‘销售部’, ‘上海’);
INSERT INTO dept VALUES (‘40’, ‘营销部’, ‘深圳’);


– Records of emp 员工表数据


INSERT INTO emp VALUES (‘7369’, ‘张无忌’, ‘办事员’, ‘7902’, ‘1980-12-17’, ‘800’, null, ‘20’);
INSERT INTO emp VALUES (‘7499’, ‘曹操’, ‘推销员’, ‘7698’, ‘1981-02-20’, ‘1600’, ‘300’, ‘30’);
INSERT INTO emp VALUES (‘7521’, ‘杨志’, ‘推销员’, ‘7698’, ‘1981-02-22’, ‘1250’, ‘500’, ‘30’);
INSERT INTO emp VALUES (‘7566’, ‘朱元璋’, ‘经理’, ‘7839’, ‘1981-04-02’, ‘2975’, null, ‘20’);
INSERT INTO emp VALUES (‘7654’, ‘殷天正’, ‘推销员’, ‘7698’, ‘1981-09-28’, ‘1250’, ‘1400’, ‘30’);
INSERT INTO emp VALUES (‘7698’, ‘张三丰’, ‘经理’, ‘7839’, ‘1981-05-01’, ‘2850’, null, ‘30’);
INSERT INTO emp VALUES (‘7782’, ‘关羽’, ‘经理’, ‘7839’, ‘1981-06-09’, ‘2450’, null, ‘10’);
INSERT INTO emp VALUES (‘7788’, ‘宋江’, ‘分析员’, ‘7566’, ‘1987-04-19’, ‘3000’, null, ‘20’);
INSERT INTO emp VALUES (‘7839’, ‘韩少云’, ‘董事长’, null, ‘1981-11-17’, ‘5000’, null, ‘10’);
INSERT INTO emp VALUES (‘7844’, ‘孙二娘’, ‘推销员’, ‘7698’, ‘1981-09-08’, ‘1500’, ‘0’, ‘30’);
INSERT INTO emp VALUES (‘7876’, ‘张飞’, ‘办事员’, ‘7788’, ‘1987-05-23’, ‘1100’, null, ‘20’);
INSERT INTO emp VALUES (‘7900’, ‘赵云’, ‘办事员’, ‘7698’, ‘1981-12-03’, ‘950’, null, ‘30’);
INSERT INTO emp VALUES (‘7902’, ‘诸葛亮’, ‘分析员’, ‘7566’, ‘1981-12-03’, ‘3000’, null, ‘20’);
INSERT INTO emp VALUES (‘7934’, ‘夏侯惇’, ‘办事员’, ‘7782’, ‘1982-01-23’, ‘1300’, null, ‘10’);

练习题目:

– 1.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

– 2.列出薪资比关羽高的所有员工。

– 3.列出所有员工的姓名及其直接上级的姓名。

– 4.列出最低薪资大于1500的各种职位及从事此职位的员工人数。

– 5.列出在销售部职位的员工的姓名,假定不知道销售部的部门编号。

– 6.列出与曹操从事相同职位的所有员工及部门名称。

– 7.列出薪资高于在销售部(已知部门编号为30)就职的所有员工的薪资的员工姓名和薪资、部门名称。

– 8.列出在每个部门职位的员工数量、平均工资。

– 9.查出至少有一个员工的部门。显示部门人数、部门编号、部门名称、部门位置。

– 10.列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。

– 11.列出所有职员的姓名及其部门名称,部门的人数。

–参考答案:
1.select deptname,emp.* from dept left join emp on dept.deptno=emp.deptno;
2.select * from emp where sal>2450;(关羽的工资是2450)
3. select a.empname 员工姓名,b.empname 上级姓名 from emp a,emp b where a.mgr=b.empno;
4. select job,min(sal) 最低工资,count() 员工人数 from emp group by job having min(sal)>1500;
5. select empname from emp,dept where deptname=‘销售部’;
6. select e.empname,p.deptname from emp e,dept p where e.job=‘推销员’ and e.deptno=p.deptno;
7. select e.empname,e.sal,d.deptname from emp e,dept d where e.deptno=d.deptno
-> and e.sal>
-> (select max(sal) from emp where deptno=30);
8. select job,count(
),avg(sal) from emp group by job;
9. select count(e.deptno),d.deptno,d.deptname,d.loc
from emp e,dept d
where e.deptno=d.deptno
group by e.deptno;
10. select e.empno as 编号,e.empname as 姓名 ,d.deptname as 部门名称 from emp e,dept d,emp a
where e.deptno=d.deptno and a.empno=e.mgr and e.hiredate<a.hiredate;
11.select e.deptno,e.empname,d.deptname from emp e,dept d where e.deptno=d.deptno;
12.select count(*),job from emp e group by e.deptno;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
卷序列号码为 00000030 4489:1826 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ 2.2.4 CONVERT在日期转换中的使用示例.sql │ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql │ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql │ │ 2.4.1 日期格式化处理.sql │ │ 2.4.2 日期推算处理.sql │ │ 2.4.3 特殊日期加减函数.sql │ │ 2.5.1 查询指定日期段内过生日的人员.sql │ │ 2.5.2 生成日期列的函数.sql │ │ 2.5.3 工作日处理函数(标准节假日).sql │ │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数.sql │ │ │ └─其他 │ 交叉.sql │ 任意两个时间之间的星期几的次数-横.sql │ 任意两个时间之间的星期几的次数-纵.sql │ 复杂年月处理.sql │ 统计--交叉+日期+优先.sql │ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.sql │ │ 3.3 各种字符串合并处理示例.sql │ │ 3.4.1 分段截取函数.sql │ │ 3.4.2 分段更新函数.sql │ │ 3.4.3 IP地址处理函数.sql │ │ 3.5.1 字符串比较函数.sql │ │ 3.5.2 字符串并集&交集处理示例.sql │ │ 3.5.3 字符串分拆并统计的处理示例.sql │ │ 3.5.5 字符串处理示例--列车车次查询.sql │ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql │ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql │ │ 3.7.4 text与image字段转换处理示例.sql │ │ 3.7.5 ntext字段的REPLACE处理示例.sql │ │ │ └─其他 │ varbinary转换成字符串.sql │ 关键字搜索.sql │ 分解公式.sql │ 字符串分拆--格式化.sql │ 得到一个字符串在另一个字符串中出现的次数.sql │ 数字转换成十六进制.sql │ 比较第一与第二个字符串,是否有连续的5个字符相同.sql │ 生成查询的模糊匹配字符串.sql │ 简繁转换.sql │ 统计一个中某个字符出现最多的字母.sql │ 非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │ │ │ └─其他 │ 生成GB2312汉字.sql │ 生成GBK汉字.sql │ 自动获取汉字笔画.sql │ ├─第05章 │ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql │ │ 5.1.1 修改标识值的示例.sql │ │ 5.1.1 标识列与普通列互相转换的示例.sql │ │ 5.2.1 查法按日期生成流水号的示例.sql │ │ 5.2.1 查法生成流水号的示例.sql │ │ 5.2.2 使用编号按日期生成流水号的示例.sql │ │ 5.2.2 使用编号生成流水号的示例.sql │ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).sql │ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).sql │ │ 5.2.3 生成纯数字随机编号的示例.sql │ │ 5.3.2 融合了补号处理的编号生成处理示例.sql │ │ 5.3.3 使用UPDATE进行编号重排的处理示例.sql │ │ 5.3.3 使用临时进行编号重排的处理示例.sql │ │ 5.3.3 使用子查询进行编号重排的处理示例.sql │ │ 5.3.3 名次查询的处理示例.sql │ │ 5.4.1 查询已用编号分布情况的示例(临时法).sql │ │ 5.4.1 查询已用编号分布情况的示例(子查询法).sql │ │ 5.4.2 查询缺号分布情况的示例.sql │ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql │ │ 5.4.4 缺勤天数统计的处理示例.sql │ │ │ └─其他 │ -补位法.sql │ 以另一个的字段做默认值.sql │ 以另一的字段生成编号.sql │ 关联部门流水号.sql │ 十六进制.sql │ 学号.sql │ 开票统计--涉及到连号处理.sql │ 新编号查询示例(分类查询).sql │ 新编号查询示例.sql │ 日期流水号.sql │ 材料流水号.sql │ 流水号.sql │ 箱编号连号处理.sql │ 类别自动生成编号示例.sql │ 自已做标识列的例子.sql │ 触发器自动维护已用&未用编号.sql │ 连续编号.sql │ 防止重复的示例.sql │ 项目编号=各项目独立流水号&各年不同.sql │ ├─第06章 │ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql │ │ 6.1.2 各种联接的使用示例.sql │ │ 6.1.2 多联结导致记录重复的示例.sql │ │ 6.1.3 使用UNION实现库存报的示例.sql │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例.sql │ │ 6.2.1 UNION ALL实现的分级汇总示例.sql │ │ 6.3.1 简单的交叉报处理示例.sql │ │ 6.3.2 多列转换为行的交叉报处理示例.sql │ │ 6.3.3 行值动态变化的交叉报处理示例(转换多列).sql │ │ 6.3.3 行值动态变化的交叉报处理示例.sql │ │ 6.3.4 化解字符串不能超过8000的方法.sql │ │ 6.3.5 特殊的交叉报处理示例.sql │ │ 6.4.1 库存明细帐处理示例(包含结存数).sql │ │ 6.4.1 库存明细帐处理示例.sql │ │ 6.4.2 同期及上期数据对比处理示例.sql │ │ 6.4.3 动态分组处理示例.sql │ │ 6.4.4 排行榜处理示例.sql │ │ │ └─其他 │ 交叉--复杂名次.sql │ 交叉-优先级处理.sql │ 交叉分析.sql │ 分级汇总.sql │ 分组交叉.sql │ 列转行.sql │ 固定行列报.sql │ 复杂交叉.sql │ 复杂交叉1.sql │ 多栏显示.sql │ 日期+星期+时间.sql │ 格式化报.sql │ 横转竖-1.sql │ 横转竖-字段名.sql │ 横转竖-生成字段名.sql │ 横转竖.sql │ 行列互换的复杂交叉.sql │ 限制列数的交叉.sql │ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.sql │ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql │ │ 7.2.3 临时缓存实现的通用分页存储过程.sql │ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql │ 基本方法.sql │ ├─第08章 │ │ 8.1.2 树形数据分级汇总示例.sql │ │ 8.1.3 树形数据编号重排的通用存储过程.sql │ │ 8.1.3 树形数据编号重排示例.sql │ │ 8.1.4 实现编码规则调整处理的通用存储过程.sql │ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql │ │ 8.1.5 删除节点处理的通用存储过程.sql │ │ 8.1.5 移动节点处理的通用存储过程.sql │ │ 8.2.2 树形数据层次显示处理示例.sql │ │ 8.2.2 树形数据广度排序处理示例.sql │ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql │ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql │ │ 8.2.5 校验中数据是否有循环编码的通用存储过程.sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql │ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.sql │ │ 8.2.8 逐级汇总示例(循环逐级累计法).sql │ │ 8.2.8 逐级汇总示例(用户定义函数法).sql │ │ 8.3.1 产品配件清单查询示例.sql │ │ 8.3.2 最短乘车路线查询示例.sql │ │ │ └─其他 │ xml菜单.sql │ 宝塔形数据的处理-1.sql │ 宝塔形数据的处理.sql │ 树形数据生成xml.sql │ ├─第09章 │ │ 9.1.3 访问外部数据源方法总结.sql │ │ 9.5.1 二进制文件存取示例(T-SQL).sql │ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs │ │ a.txt │ │ Schema.ini │ │ │ └─其他 │ bcp-数据导入导出(全).sql │ bcp-数据导入导出-二进制文件.sql │ bcp-数据导出为文件.sql │ bcp数据存为XML.sqlSQL Server到Oracle连接服务器的实现.sqlSQL Server到SQLBASE连接服务器的实现.sqlSQL Server到SYBASE连接服务器的实现.sqlsql导出mysql.sql │ textcopy实现文件存取.sql │ Vb程序实现文件存取.sql │ 导入文本文件时如何指定字段类型.sql │ 导出northwind中Employees的图像.sql │ 将某个目录上的Excel,导入到数据库中.sql │ 数据导入导出基本方法.sql │ 用ASP上传&下载文件.sql

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值