栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

入门数据库Days6

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

入门数据库Days6

  • 参考书籍《MySql从入门到精通》
  • 学习视频【韩顺平讲MySQL】零基础一周学会MySQL -sql mysql教程 mysql视频 mysql入门_哔哩哔哩_bilibili
  • 萌新入门,如有错误恳请各位大佬指点,不甚感激
 表复制
  • 自我复制数据(蠕虫复制)                                                                                                     有时,为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此法为表创建海量数据。

创建表

INSERT INTO my_table
	(id,`name`,sal,job,deptno)
	SELECt empno,ename,sal,job,deptno FROM emp

自我复制并统计

INSERT INTO my_table
	SELECt * FROM  my_table
SELECt COUNT(*) FROM my_table

如果多次进行自我复制,统计的值也会翻倍 

例:如何删掉一张表的重复记录

先创建一个table02表

 

 合并查询

 有时在实际应用中,为了合并多个select语句的结果,可以使用集合操作符号  union,union all  union.sql

union  all

该操作符用于取得两个结果集的并集。当使用该操作符时,不会取消重复行。

select ename,sal,job from emp where sal>2500 union
SELECt ename,sal,job FROM emp WHERe sal>2500
UNIOn ALL
SELECt ename,sal,job FROM emp WHERe job='manager'
	

union

 该操作符与union all 相似,但是会自动去掉结果集中重复行

SELECt ename,sal,job FROM emp WHERe sal>2500
UNIOn 
SELECt ename,sal,job FROM emp WHERe job='manager'

外连接

例:列出部门名称和这些部门的员工名称和工作。同时要求   显示出那些没有员工的部门

左外连接

如果左侧的表完全显示我们就说是左外连接

右外连接

如果右侧的表完全显示我们就说是右外连接

先创建2个表

使用左连接(显示所有人的成绩,如果没有成绩,也要显示该人的姓名和id号,成绩显示为空)

这是一般情况下

下面使用左外连接

SELECt `name`,stu.`id`,grade
	FROM  stu LEFT JOIN exam
	ON stu.id=exam.id;

 

 select ... from 表1 left join 表2 on  条件

下面是使用右外连接

SELECt `name`,stu.id,grade
	FROM stu RIGHT JOIN exam 
	ON stu.id =exam.id;

例:列出部门名称和部门的员工信息,同时列出那些没有员工的部门名(使用左外连接实现)

SELECt dname,ename,job
	FROM dept LEFT JOIN emp
	ON dept.deptno=emp.deptno;

 以下是右外连接:

SELECt dname,ename,job
	FROM emp RIGHT JOIN dept
	ON dept.deptno=emp.deptno;

 以上为今天的视频笔记,如有侵权请联系我删除。

学习如逆水行舟,不进则退。和小吴一起加油吧 

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036584.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号