MySQL第二讲 一一一一 MySQL语句进阶
通过命令来备份数据库:
通过数据库软件里面的,mysqldump模块来操作,如下:
mysqldump -u root db1 > db1.sql -p; //没有-d就是备份的时候:数据表结构和数据都备份(下载)下载下来 mysqldump -u root -d db1>db1.sql -p; //有-d就是备份的时候就是:只是备份数据表结构
导入备份的sql文件到数据库里:
create database db5; mysqldump -u root -d db5<db1.sql -p; //这句话的意思就是,把db1.sql这个备份了的的数据表,导入到db5中 。其实,就是备份中的大于号变成了小于号而已
MySQL数据库进阶
后续将结合案例来运用查询语句!!!!!
临时表:
(select * from 表名 where num>60) as B //这个就组成了临时表
用法:
select sid from (select * from score where num>60) as B ; //这里的sid必须是 * 这里的字段能找到,不然找不到之后就报错
动态目标查询语句:
一种写法:
select
id,
name,
1,
(select count(1) from tb) //这句号叫做动态目标查询
from tb2
//值得注意的是,平时我们会经常用到count来做统计,所以在count的这里一般用count(1)或这count(id)来运用就可以解决问题
又是另一种方法:
SELECT
student_id,
(select num from score as s2 where s2.student_id=s1.student_id and course_id = 1) as 语文,
(select num from score as s2 where s2.student_id=s1.student_id and course_id = 2) as 数学,
(select num from score as s2 where s2.student_id=s1.student_id and course_id = 3) as 英语
from score as s1;
case when作为select目标条件的语句:
select
course_id,
max(num),
min(num),
min(num)+1,
case when min(num) <10 THEN 0 ELSE min(num) END as c //“case when min(num) <10 THEN 0 ELSE min(num) END ” 有点像三元运算符
from score GROUP BY course_id; select
course_id,
avg(num),
sum(case when num <60 THEN 0 ELSE 1 END),
sum(1),
sum(case when num <60 THEN 0 ELSE 1 END)/sum(1) as jgl
from score
GROUP BY course_id
order by AVG(num) asc,jgl desc;
SQL语句的补充
之前我们学习了sql的大部分语句写法,这里我们再补充几个知识点。
记得我们之前讲了sql语句中的联表知识:left join 、right join、inner join
上面的这几个联表其实是属于:左右联表(join)
而与之对应的是:上下联表(union)
上下联表两种写法,以及他们之间的不同点:
-- 第1、union
-- 使用union的时候,如果两张表结合之后,存在的记录有值是一模一样的话,会自动删除后面重复的值
select id name from tb1
union
select sid sname from tb2 -- 第2、union all
-- 使用union all的时候,不会删除重复的记录
select id name from tb1
union all
select sid sname from tb2
MySQL第二讲 一一一一 MySQL语句进阶的更多相关文章
- MySQL实战45讲学习笔记:日志系统(第二讲)
一.重要的日志模块:redo log 1.通过酒店掌柜记账思路刨析redo log工作原理 2.InnoDB 的 redo log 是固定大小的 只要赊账记录在了粉板上或写了账本上,之后即使掌柜忘记了 ...
- MySQL第一讲 一一一一 数据库入门
一. MySQL简介与安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方 ...
- MySQL第三讲 一一一一 视图、触发器、函数、存储过程
1. 视图 1.1 视图前戏 我们之前讲有,临时表的概念. 现在我们创建一个临时表:select * from (select * from tb1 where id between 10 and 1 ...
- 如何查找MySQL中查询慢的SQL语句
如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...
- 如何查找MySQL中查询慢的SQL语句(转载)
转载自https://www.cnblogs.com/qmfsun/p/4844472.html 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那 ...
- 何在mysql查找效率慢的SQL语句?
如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启 ...
- 深入MySQL(四):MySQL的SQL查询语句性能优化概述
关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...
- MySql学习 (一) —— 基本数据库操作语句、三大列类型
注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...
- python 全栈开发,Day60(MySQL的前戏,数据库概述,MySQL安装和基本管理,初识MySQL语句)
一.MySQL的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码 root|123321 alex|123123 上面文件内容 ...
随机推荐
- 实现图像添加label
void CmapwingisTest2View::OnToolsAddTiffLayer() { TCHAR szFilters[]= _T("TIFF Files (*.tif)|*.t ...
- Unknown class xxx in Interface Builder file. / NSUnknownKeyException
Error: 2019-11-24 22:16:01.047997+0800 SingleViewDemo[22576:34699748] Unknown class FeedbackCell in ...
- c# 单元测试 ,对静态方法(static)和私有方法(private) 进行单元测试
利用反射: /// <summary> /// 调用静态方法 /// </summary>akf /// <param name="t">类全名 ...
- gromacs2018使用踩坑记--grompp 为啥要用-r
1. GMX grompp 概要 gmx grompp [ -f [<.mdp>] ] [ -c [<.gro / .g96 / ...>] ] [ -r [<.gro ...
- internetwork 与 the Internet的区别
internetwork 表示:互连网络 the Internet 表示:因特网
- sigmoid function的直观解释
Sigmoid function也叫Logistic function, 在logistic regression中扮演将回归估计值h(x)从 [-inf, inf]映射到[0,1]的角色. 公式为: ...
- Tensorflow所遇坑
TensorFlow问题: 1.FLAGS._parse_flags()报错AttributeError:_parse_flags 解决: 因为TensorFlow的版本问题了,TensorFlow版 ...
- CICD - 持续集成与持续交付
持续集成与持续交付是软件开发和交付中的实践.我们项目中一直在践行持续集成(CI:Continuous Integration):持续交付(CD:Continuous Delivery)未能达到理想状态 ...
- RabbitMQ问题解决
1.访问http://localhost:15672/#/,输入用户名.密码登录报错500 解决方法:在快捷程序处找到RabbitMQ Service -stop停止服务,然后再点击RabbitMQ ...
- mysql--创建表,插入数据,修改表名,删除表,简单查询/内连接、左/右连接
创建表mm: 其中id为主键且自增长 ) primary key not null unique auto_increment, name ) not null, age ), class ) no ...