mysql子查询与连接查询
表结构以及数据:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `student` VALUES (1, 'zazr', 11);
INSERT INTO `student` VALUES (2, 'jkg', 20);
INSERT INTO `student` VALUES (4, 'zazr', 11);
INSERT INTO `student` VALUES (5, 'jkg', 12);
INSERT INTO `student` VALUES (6, 'lgh', 13);
INSERT INTO `student` VALUES (7, 'zazr', 11);
INSERT INTO `student` VALUES (8, 'jkg', 12);
INSERT INTO `student` VALUES (9, 'lgh', 13);
INSERT INTO `student` VALUES (10, 'zazr', 11);
INSERT INTO `student` VALUES (11, 'jkg', 12);
INSERT INTO `student` VALUES (12, 'lgh', 13);
查询表中所有数据:
SELECT * FROM student;

查询表中年龄的平均值:
SELECT ROUND(AVG(age),0) from student;
ROUND、AVG都是聚合函数,ROUND(小数,2)表示这个小数四舍五入保留2位小数;AVG求平均值

查询表中年龄大于等于平均值的学生姓名(子查询):
SELECT name FROM student WHERE age>=(SELECT ROUND(AVG(age),0) FROM student);

将表中的不同姓名插入到另一张NAME表中:
创建表:
CREATE TABLE NAME(
-> id int(11) NOT NULL AUTO_INCREMENT KEY,
-> name VARCHAR(20));
SQL语句:
INSERT name(name) SELECT name FROM student GROUP BY name;

将student表中的name值,替换成name表所对应的id(内连接):如果student的name等于name表中的name,则将student表中的name换成对应的id
UPDATE student INNER JOIN name ON name.name=student.name SET student.name=name.id;

此时可以看:id为1对应的是name表中id为3的名字:zazr
向student中添加两条记录:
INSERT student VALUES(NULL,"10",24);
INSERT student VALUES(NULL,"8",30);

向name中添加两条记录:
INSERT name VALUES(NULL,"张三");
INSERT name VALUES(NULL,"李四");

内连接:
查询student和name表满足相同条件的记录:student表中新加入的10和8,与name表中的id为4,5的没有对应关系,所以不会显示,条件就是student.name=name.id;
SELECT student.id,name.name FROM student INNER JOIN name ON student.name=name.id;

左外连接:显示左表中的全部以及与右表符合条件的记录

将查询改为左外连接查询:显示student全部id数据,不过对应的name为NULL;
SELECT student.id,name.name FROM student LEFT JOIN name ON student.name=name.id;

右外连接:

将查询改为右外连接查询:显示name全部name属性数据,不过对应的student的id为NULL;
SELECT student.id,name.name FROM student RIGHT JOIN name ON student.name=name.id;

mysql子查询与连接查询的更多相关文章
- Mysql的查询语句(联合查询、连接查询、子查询等)
Mysql的各个查询语句(联合查询.连接查询.子查询等) 一.联合查询 关键字:union 语法形式 select语句1 union[union选项] select 语句2 union[union选项 ...
- mysql查询、子查询、连接查询
mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.gr ...
- mysql 子句、子查询、连接查询
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- 深入学习之mysql(五)连接查询
深入学习Mysql(五)连接查询 1.准备数据库: CREATE DATABASE IF NOT EXISTS `db_book2` DEFAULT CHARACTER SET UTF8; USE ` ...
- mysql——多表——外连接查询——左连接、右连接、复合条件查询
), d_id ), name ), age ), sex ), homeadd ) ); ,,,'nan','beijing'); ,,,'nv','hunan'); ,,,'nan','jiang ...
- 【知识库】-数据库_MySQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
简书作者:seay 文章出处: 关系数据库SQL之高级数据查询:去重复.组合查询.连接查询.虚拟表 回顾:[知识库]-数据库_MySQL之基本数据查询:子查询.分组查询.模糊查询 Learn [已经过 ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...
- MSSQLServer基础05(联合查询,连接查询)
联合结果集union(集合运算符) 集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐式转换的),最终输出的集合的列名由第一个集合的列名来确定.(可以用来连接多个 ...
- 图解SQLSERVER联合查询和连接查询的区别
相信很多人都会用SQLSERVER联合查询和连接查询,但是用起来不一定都得心应手,对于其中的原理可能就模糊不清了,要想很牢固地掌握和运用SQL联合查询和连接查询机制,必须对其根本原理有很清晰认识, ...
- mysql的查询、子查询及连接查询
>>>>>>>>>> 一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组). ...
随机推荐
- BZOJ 2806 Luogu P4022 [CTSC2012]Cheat (广义后缀自动机、DP、二分、单调队列)
题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=2806 (luogu) https://www.luogu.org/pro ...
- IIS部署网站只有首页能访问,其他链接失效/运行.net+Access网站-可能原因:IIS未启用32位应用程序模式
在64位的机子上IIS运行32位的.NET程序 由于64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程 也不支持更早的Microsoft Access Dri ...
- String类的转换功能
/* * String类的转换功能 * char[] toCharArray():把字符串转换为字符数组 * String toLowerCase():把字符串转换为小写字符串 * String to ...
- Codeforces Round #239(Div. 2) 做后扯淡玩
今天补了下 cf 239div2 顿时信心再度受挫 老子几乎已经木有时间了啊 坐着等死的命.哎!!! 到现在还只能做大众题,打铁都不行. 每次D题都是有思路敲错,尼玛不带这么坑爹的. 哎!不写了,写这 ...
- 1874 Bellman-ford算法 队列优化过的 用于稀疏图,有负权的图
#include<stdio.h> #include<algorithm> #include<iostream> #include<queue> usi ...
- dubbo 学习1
1.高性能优秀的服务框架,应用可通过高性能的RPC实现服务的输出和输入功能,可以和spring框架无缝集成. 2.主要核心部件 a.remoting 网络通信框架 实现了sync-over-asnc ...
- 武大OJ 612. Catch the sheep
Description Old Sama is a great and powerful magician in the word. One day, a little girl, Anny, tou ...
- 1267 老鼠的旅行 2012年CCC加拿大高中生信息学奥赛
1267 老鼠的旅行 2012年CCC加拿大高中生信息学奥赛 题目描述 Description You are a mouse that lives in a cage in a large lab ...
- 一个简单的js队列,逻辑很清晰
function Queue(type) { //type 是否是一个接着一个执行 function QueueConst() {} QueueConst.execute_ing=[], QueueC ...
- Centos7: 设置UTC时区
timedatectl set-timezone UTC
