mysql的备份与还原、多表查询

数据库的备份和还原
1.命令行

*语法: mysqldump -u用户名 -p密码 数据库名称> 保存路径
*还原:
1.登录数据库
2.创建数据库
3.使用数据库
4.执行文件。Source 文件路径

2.图形化工具

##多表查询

*查询语法:
Select 
列名列表
From
表名列表
Where...
*笛卡尔积:
*有两个集合a,b,取这两个集合的所有组成情况。
*要完成多表查询,需要消除无用的数据。
*多表查询分类:
1.内连接查询:
	1.1隐式内连接:使用where条件
		举例:
		-- 查询所有员工信息和对应的部门信息
		select * from dept,emp where dept.id = emp.dept_id;
		-- 查询员工表的名称、性别、部门表名称
		select emp.NAME,gender,dept.name from dept,emp where dept.id = emp.dept_id;
		select emp.NAME,gender,dept.name from dept,emp where dept.id = emp.dept_id;
		--最好用这种格式
		SELECT 
		t1.name,  -- 员工表的姓名
		t1.gender,	-- 员工表的性别
		t2.name 	-- 部门表的名称
		FROM 
		emp t1, -- 员工表
		dept t2 -- 部门表
		where 
		t1.dept_id=t2.id;
	1.2显式内连接
		语法:select 字段列表 from表名1 inner join 表名2  on  加入条件
		举例:	select * from dept INNER JOIN emp ON dept.id=emp.dept_id;
		-- inner 可以省略
		select * from dept  JOIN emp ON dept.id=emp.dept_id;
	1.3内连接查询注意:
		1.从哪些表中查询数据
		2.条件是什么
		3.查询哪些字段
2.外连接查询:
	2.1左外连接:
		*语法:select 字段列表 from 表1 left (outer )join 表2 on 条件
		*查询的是左表所有数据以及其交集部分
	2.2右外连接
		*语法:select 字段列表 from 表1 right(outer )join 表2 on 条件
		*查询的是右表所有数据以及其交集部分
3.子查询:
	*概念:查询中嵌套查询,称嵌套查询为字查询
	例子:-- 查询工资最高的员工信息
	-- 1.查询最高工资是多少  
		SELECT MAX(salary) from emp ;
	-- 2.查询员工信息,并工资等于最高工资的
		SELECT * from emp where salary = 28000; 
	-- 用一条sql语句查出来,子查询
		SELECT * from emp where emp.salary = (sELECT MAX(salary) from emp);
	*子查询不同情况
		1.子查询的结果是单行单列的:
			*子查询可以作为条件,使用运算符去判断。 运算符 >, >=, <, <=,=
			*例子:-- 查询员工工资小于平均工资的人
			select * from emp where emp.salary <(SELECT AVG(salary) from emp);
		2.子查询的结果是多行单列的:
			* 子查询可以作为条件,使用运算符in判断
			*例子-- 查询 '财务部'和'市场部' 所有的员工信息
			SELECT id from dept WHERE `name`in('财务部' ,'市场部');
			SELECT * from emp where emp.dept_id in(2,3);
			SELECT * from emp where emp.dept_id in (SELECT id from dept WHERE 	`name`in('财务部' ,'市场部'));
		3.子查询的结果是多行多列的:
			*查询员工的入职日期是2019-03-02以后的员工信息和部门信息
			例子:-- 查询员工的入职日期是2019-03-02以后的员工信息和部门信息
			-- 子查询
			SELECT * from dept t1,
			(SELECT * from emp WHERE emp.join_date > 	'2019-03-02') t2
			 WHERE t1.id = t2.dept_id;
			---- 普通内连接
			SELECT * from emp t1,dept t2 
			WHERE t1.dept_id=t2.id AND t1.join_date > '2019-02-02';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值