数据库查询操作作业

作业1

需求1:创建管家婆数据库

CREATE DATABASE gjp;

需求2:在数据库中创建两张表

表1:分类数据表,表名 gjp_sort。
字段包含:sid INT PRIMARY KEY AUTO_INCREMENT, -- id列,主键约束(数据唯一性) 自动增长sname VARCHAR(100) , -- 分类名称parent VARCHAR(100), -- 父分类,支出,收入sdesc VARCHAR(10000) -- 分类描述
CREATE TABLE gjp_sort(sid INT PRIMARY KEY AUTO_INCREMENT,sname VARCHAR(100),parent VARCHAR(100),sdesc VARCHAR(10000)
);

表2:创建账务的数据表,表名:gjp_ledger
字段包含:lid INT PRIMARY KEY AUTO_INCREMENT , -- 主键,自动增长parent VARCHAR(100), -- 所属的大分类money DOUBLE , -- 金额sid INT , -- 分类IDaccount VARCHAR(100), -- 账户createtime DATE , -- 创建日期和时间ldesc VARCHAR(1000) -- 描述
CREATE TABLE gjp_ledger(lid INT PRIMARY KEY AUTO_INCREMENT,parent VARCHAR(100),money DOUBLE,sid INT,account VARCHAR(100),createtime DATE,ldesc VARCHAR(1000)
);

需求3:向两张表中添加数据(注意 :账务表的外键ID(从表),对应了分类表的主键ID(主表)

写入数据的方式,推荐使用:

  • 向gjp_sort表插入数据(根据示例插入10条数据):

示例:INSERT INTO gjp_sort
(sname,parent,sdesc) VALUES (‘基金收入’,‘收入’,‘我买了点基金’)

INSERT INTO
gjp_sort(sid,sname,parent,sdesc)
VALUES (1,'服装支出','支出','人靠衣装'),
(2,'吃饭支出','支出','天天下馆子'),
(3,'交通支出','支出','每天挤地铁'),
(4,'住房支出','支出','五环外公寓'),
(5,'工资收入','收入','工资不够花'),
(6,'股票收入','收入','股票不赚钱'),
(7,'礼金支出','支出','礼金拿不起'),
(8,'其它支出','支出','啥也不敢买');

  • 向gjp_ledger表插入数据(根据示例插入20条数据):
    数据可以直接复制素材中 gjp的数据

示例:INSERT INTO gjp_ledger(lid,parent,money,sid,account,createtime,ldesc)
VALUES (1,‘支出’,247,2,‘交通银行’,‘2015-03-02’,‘家庭聚餐’);

INSERT INTO gjp_ledger(lid,parent,money,sid,account,createtime,ldesc) VALUES (1,'支出',247,2,'交通银行','2015-03-02','家庭聚餐'),(2,'收入',12345,5,'现金','2015-03-15','开工资了'),(3,'支出',1998,1,'现金','2015-04-02','买衣服'),(4,'支出',325,2,'现金','2015-06-18','朋友聚餐'),(10,'收入',8000,6,'工商银行','2015-10-28','股票大涨'),(11,'收入',5000,6,'工商银行','2015-10-28','股票又大涨'),(12,'收入',5000,5,'交通银行','2015-10-28','又开工资了'),(13,'支出',5000,7,'现金','2015-10-28','朋友结婚'),(14,'支出',1560,8,'现金','2015-10-29','丢钱了'),(15,'支出',2300,3,'交通银行','2015-10-29','油价还在涨啊'),(16,'支出',1000,2,'工商银行','2015-10-29','又吃饭'),(17,'收入',1000,5,'现金','2015-10-30','开资'),(18,'支出',2000,3,'现金','2015-10-30','机票好贵'),(19,'收入',5000,5,'现金','2015-10-30','又开资');

需求4:聚合函数的使用:

聚合函数 count() 的使用

  • 4.1:统计 gjp_ledger表中共有多少条数据。
    提示:使用count(*)
SELECT COUNT(*) FROM gjp_ledger;

  • 4.2:count 统计所有工商银行的内容,共有多少条
    提示:使用 LIKE + ‘%内容%’
SELECT COUNT(*) FROM gjp_ledger WHERE account LIKE '%工商银行%';

  • 4.3:统计账务表中金额大于3000的有多少条记录
    提示:使用比较运算符 >
SELECT COUNT(*) FROM gjp_ledger WHERE money > 3000;

聚合函数 sum() 的使用

  • 4.4: 查询账务表,求出money字段的和
    提示:使用sum(字段名)
SELECT SUM(money) FROM gjp_ledger;

  • 4.5:查询账务表,统计所有支出的金额总和
    提示:查询条件为 ‘支出’
SELECT SUM(money) FROM gjp_ledger WHERE parent='支出';

聚合函数:max,min 求出最大和最小值

  • 4.6:查询账务表,统计出 支出中的最大值 和 收入中的最小值
SELECT MAX(money) FROM gjp_ledger WHERE parent='支出';
SELECT MIN(money) FROM gjp_ledger WHERE parent='收入';


聚合函数:avg():

  • 4.7:查询账务表,计算出,所有支出的平均数
    提示:avg(字段) 计算这个字段的平均数
SELECT AVG(money) FROM gjp_ledger WHERE parent='支出';

排序order by:

  • 4.8 :查询账务表,使用money字段,进行升序排序
SELECT * FROM gjp_ledger ORDER BY money;

  • 4.9 :查询账务表,使用createtime字段,进行降序排序
SELECT * FROM gjp_ledger ORDER BY createtime DESC;

需求5:分组 group by的使用

  • 查询出,支出的共计多少钱,收入的共计多少钱
    提示:需要对支出和收入进行分组
SELECT SUM(money) AS 共计, parent AS 收支类型 FROM gjp_ledger GROUP BY parent;

  • 查询出,所有的金额总和,先按照支出和收入分类,再按照银行的类型分。
    提示:需要对 支出分组,然后对银行类型分
SELECT SUM(money) AS 共计,parent AS 收支类型, account AS 银行类型 FROM gjp_ledger GROUP BY parent,account;

  • 查询出,支出的共计多少钱,收入的共计多少钱, 只显示大于20000元的
    提示:使用 having 子句,跟随分组,分组后,对结果再次过滤
SELECT SUM(money) AS 共计,parent AS 收支类型 FROM gjp_ledger GROUP BY parent HAVING 共计>=20000;

作业2

1.返回员工信息以及员工所在的部门名称和部门地址。

SELECT e.*,d.dname,d.loc FROM emp e,dept d WHERE e.deptno = d.deptno;

2.工资水平多于smith的员工信息。

SELECT * FROM emp WHERE sal >(SELECT e.sal FROM emp e WHERE e.ename='smith');

3.返回员工和所属经理的姓名。

SELECT e.ename AS 员工,m.ename AS 经理 FROM emp e,emp m WHERE e.mgr=m.empno;

or (没有经理是否显示)

SELECT e.ename AS 员工,m.ename AS 经理 FROM emp e LEFT JOIN emp m ON e.mgr = m.empno;

4.返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名

SELECT e.ename AS 员工,m.ename AS 经理 FROM emp e,emp m WHERE e.mgr=m.empno AND e.hiredate<m.hiredate;

5.返回员工姓名及其所在的部门名称。

SELECT e.ename AS 员工姓名,d.dname AS 部门名称 FROM emp e,dept d WHERE e.deptno=d.deptno;

6.返回从事clerk工作的员工姓名和所在部门名称。

SELECT e.ename AS 员工姓名,d.dname AS 部门名称 FROM emp e,dept d WHERE e.deptno=d.deptno AND e.job='clerk';

7.返回部门号及其本部门的最低工资。

SELECT MIN(e.sal),e.deptno FROM emp e GROUP BY e.deptno;

8.返回销售部(sales)所有员工的姓名。

SELECT e.ename FROM emp e WHERE e.deptno=(SELECT d.deptno FROM dept d WHERE d.dname='sales');

9.返回工资水平多于平均工资的员工。

SELECT * FROM emp e WHERE e.sal>(SELECT AVG(sal) FROM emp);

10.返回与30部门员工工资水平相同的员工姓名与工资。

SELECT ee.ename,ee.sal FROM emp ee WHERE sal IN(SELECT e.sal FROM emp e WHERE e.deptno=30);

数据库学习第三天

Day_03——MySQL数据库查询语句练习相关推荐

  1. mysql数据库查询语句过程_mysql(一) SQL查询语句执行过程

    mysql基础架构 示意图 首先 mysql  大概分为 server层 和 存储引擎层 两个部分, 引擎的架构模式是插件形式的,mysql支持多种引擎如 InnoDB.MyISAM.Memory 等 ...

  2. 【面试必背】 常问的15个MySQL数据库查询语句,

    一.什么是数据库? 数据库是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文件中,但是在文件中读写 ...

  3. mysql数据库查询语句_mysql数据库查询语句

    一   数据库的语句 1     关于数据库 创建数据库         create database 数据库名字(自己命名) 查看mysql下的所有数据库               show d ...

  4. MySQL数据库查询语句汇总

    基础查询 select [字段] from 表名 1,select * from emp;  #  查询所有数据 在数据量很庞大的情况下, 效率低, 不推荐使用 2,select empno,enam ...

  5. MySQL数据库——查询语句SELECT的学习总结,2W字超详细总结,值得收藏

    文章目录 一.基本的SELECT语句 1.SQL分类 2.SQL的语言规范 2.1.基本规则(必须遵守) 2.2.SQL大小写规范(建议遵守) 2.3.注释 2.4.数据导入指令 3.基本的SELEC ...

  6. 06 MySQL数据库--查询语句学习笔记

    整理各种查询语句,需要查询数据请参考: https://blog.csdn.net/chennuan1991/article/details/105240457 基础查询语句,请参考: https:/ ...

  7. c# mysql数据库查询语句_C# mysql 查询

    展开全部 |mysql> select * from test_book1; +------+-----------+--------------------------------+ |e68 ...

  8. c#连接mysql数据库查询语句_C#连接MySQL数据库(增删改查)

    using System; using MySql.Data.MySqlClient; namespace CSharp直接连接MySQL { class Program { static void ...

  9. ios mysql数据库查询语句_ios fmdb数据库查询语句

    iOS开发数据库篇-FMDB简单介绍 iOS开发数据库篇-FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语 ...

最新文章

  1. 戈峻:英特尔推动嵌入式教育 意在双赢
  2. 纸飞机html,Flyaway.css-炫酷纯CSS3纸飞机动画特效
  3. 飞鱼科技游戏开发岗面试经验
  4. 这是我第一次使用代码创建出一个窗口【python 游戏实战 01】
  5. 数独题的生成与解决方法
  6. NYOJ--40--公约数和公倍数
  7. 成为一名Java高级工程师需要掌握哪些技能
  8. ISSCC上的微型计算机:体积更小、功耗更少、算力更强
  9. python基础学习总结
  10. MATLAB | 全网唯一,双变量及三变量映射图表的MATLAB绘制
  11. 支付宝移动支付之IOSApp调用支付宝钱包
  12. 美国零售业初创公司排名前5位的软件开发公司
  13. jupyterlab:Failed to load the jupyterlab-git server extension问题如何解决?
  14. Linux编程入门四进程
  15. APP被苹果 App Store拒之门外的79个原因!
  16. 经典白话算法之桶排序
  17. 从零开始的种田生活-Unity游戏开发
  18. 一个有趣的问题 : α_β_γ_δ_ε_ζ_η_θ_ι_κ_λ_μ_ν怎么读
  19. 浏览器开发者工具修改html后执行,谷歌Chrome浏览器开发者工具教程—JS调试篇
  20. 宇视钉钉智联门禁能否关闭测温?

热门文章

  1. 无线破解攻击工具使用详解
  2. 基于MatlabSimulink的汽车等速百公里燃料消耗量仿真
  3. 【高效复习】计算机网络重要概念总结
  4. mysql update convert_Oracle/云MySQL/MsSQL“大迁移”真相及最优方案
  5. spring boot对外部文件的访问
  6. JDBC与ODBC的区别与应用
  7. SSM+流浪动物救助系统 毕业设计-附源码191631
  8. java实现用用户头像代替小程序码的logo(任意图片替换小程序码logo)
  9. 初识p-code (pcode)
  10. Gibberish 本地化插件学习