MuLeI
做创造价值的人
MuLeI的小站

SQL编程练习及MySQL优化

SQL编程练习及MySQL优化

SQL编程练习

表结构

部门表

部门表

员工表

员工表

练习

1.按部门编号升序、工资倒序排列员工信息

SELECT * FROM emp ORDER BY deptno ASC, sal DESC;
/wp-content/uploads/2021/07/SQL-3.png

2.列出deptno=30的部门名称及员工

SELECT emp.*, dept.dname FROM emp, dept WHERE emp.deptno = dept.deptno and dept.deptno = 30;
/wp-content/uploads/2021/07/SQL-4.png

3.列出每个部门最高、最低及平均工资

SELECT deptno, max(sal), min(sal), avg(sal) FROM emp GROUP BY deptno;
/wp-content/uploads/2021/07/SQL-5.png

补充列出每个部门的人数

SELECT deptno, max(sal), min(sal), avg(sal), count(*) FROM emp GROUP BY deptno;
/wp-content/uploads/2021/07/SQL-5e.png

4.列出市场部(SALES)及研发部(RESEARCH)的员工

SELECT * FROM emp, dept WHERE emp.deptno = dept.deptno and (dept.dname = 'SALES' or dept.dname = 'RESEARCH');
/wp-content/uploads/2021/07/SQL-6.png

5.列出人数超过3人的部门

SELECT deptno, count(*) FROM emp GROUP BY deptno HAVING count(*) > 3;
/wp-content/uploads/2021/07/SQL-7.png
SELECT d.dname, count(*) FROM emp e, dept d WHERE e.deptno = d.deptno GROUP BY d.dname HAVING count(*) > 3;
/wp-content/uploads/2021/07/SQL-7e.png

WHERE子句对原始数据进行筛选,在GROUP BY分组之前执行,HAVING关键字用于分组后二次筛选,在GROUP BY之后执行

6.计算MILLER的年薪比SMITH高多少

SELECT m.salary - s.salary FROM 
(SELECT sal * 12 as salary FROM emp WHERE ename = 'MILLER') as m, 
(SELECT sal * 12 as salary FROM emp WHERE ename = 'SMITH') as s;
/wp-content/uploads/2021/07/SQL-8.png

7.列出直接向King汇报的员工

WHERE子句子查询

SELECT * FROM emp WHERE mgr = (SELECT empno FROM emp WHERE ename = 'King');
/wp-content/uploads/2021/07/SQL-9.png

FROM子句子查询

SELECT e.* FROM emp e, (SELECT empno FROM emp WHERE ename = 'King') k WHERE e.mgr = k.empno;
/wp-content/uploads/2021/07/SQL-9e.png

8.列出公司所有员工的工龄,并倒序排列

SQL中获取当前系统时间并格式化显示

SELECT DATE_FORMAT(NOW(), "%Y/%m/%d");
/wp-content/uploads/2021/07/SQL-10e.png
SELECT * FROM 
(SELECT emp.*, DATE_FORMAT(NOW(), "%Y") - DATE_FORMAT(hiredate, "%Y") wage FROM emp) d 
ORDER BY d.wage DESC;
/wp-content/uploads/2021/07/SQL-10.png

9.计算管理者与基层员工平均薪资差距

SELECT a.avg_sal - b.avg_sal FROM
(SELECT avg(sal) avg_sal FROM emp where job = 'MANAGER' or job = 'PRESIDENT') a, 
(SELECT avg(sal) avg_sal FROM emp where job in('CLERK', 'SALESMAN', 'ANALYST')) b;
/wp-content/uploads/2021/07/SQL-11.png

MySQL优化

1.选取最适用的字段属性:表中字段宽度尽可能小;字段应尽量设定为NOTNULL;将如城市、性别这类有限可选择的字段设置为ENUM类型

2.使用JOIN来代替子查询,因为JOIN不需要建立临时表查询

3.使用UNION代替手动创建临时表

4.使用事务保证数据库的安全访问

5.用锁定表的方法完成事务

6.使用外键的方式保证数据库的关联性

7.使用合适的索引,尽量避免对重复的字段添加索引

8.优化SQL语句:在相同类型的字段间进行比较操作;尽量不要在索引的字段值执行函数;用比较符代替通配符;用NOT EXISTS代替NOT IN

本博客所有文章除特别声明外,均采用CC BY-SA 4.0 协议,转载请注明出处!
# MySQL # SQL
首页      开发      SQL      SQL编程练习及MySQL优化

发表回复 取消回复

textsms
account_circle
email

MuLeI的小站

SQL编程练习及MySQL优化
SQL编程练习及MySQL优化
扫描二维码继续阅读
2021-07-01

深圳SEO优化公司大浪网站搜索优化哪家好济源关键词按天计费报价马鞍山英文网站建设报价洛阳营销网站价格南通网站推广系统推荐新乡网站设计价格保定建网站诸城企业网站设计多少钱抚州网页设计哪家好德宏模板网站建设报价亳州企业网站制作哪家好驻马店关键词按天收费公司商丘优化多少钱吉祥网站开发杭州seo网站推广推荐伊春网站开发推荐焦作网站设计公司承德百度网站优化排名公司青岛如何制作网站报价广元SEO按效果付费哪家好丹竹头seo哪家好濮阳网站开发推荐锦州网站制作报价雅安网站关键词优化临夏网站推广工具公司龙岩百姓网标王推广价格渭南关键词按天扣费哪家好池州外贸网站设计公司光明网站定制推荐铁岭seo网站推广价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化