CREATE TABLE t(
tid INT UNSIGNED NOT NULL AUTO_INCREMENT,
tname VARCHAR(30),
PRIMARY KEY (tid)
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET =utf8;

INSERT INTO t VALUES(NULL,'李老师'),(NULL,'赵老师'),(NULL,'张老师');
SELECT * FROM t;

CREATE TABLE s(
sid INT UNSIGNED NOT NULL AUTO_INCREMENT,
sname VARCHAR(10)NOT NULL,
sgender ENUM ('男','女','人妖'),
sdept VARCHAR(20) NOT NULL DEFAULT '计算机科学',
sscore INT UNSIGNED,
tid INT UNSIGNED,
PRIMARY KEY(sid)
)ENGINE=MYISAM AUTO_INCREMENT=1601 DEFAULT CHARSET =utf8;
INSERT INTO s VALUES(NULL,'张三','男','美术',80,1),(NULL,'张三丰','人妖','英语',45,2);
INSERT INTO s VALUES(NULL,'李丽','女','美术',90,3),(NULL,'黄瑶','女','财经',99,3);

INSERT INTO s(sname,sgender,sscore) VALUES('赵磊','男',50),('周磊','人妖',68);

DROP TABLE job;
SELECT * FROM s;

-- 多表查询(不推荐使用)
SELECT s.`sid`,s.`sname`,t.`tname`
FROM s,t
WHERE s.tid = t.tid;

-- 连接查询 join left join right join
SELECT s.`sid` 学号,s.`sname` 姓名,s.`sdept` 专业,IF(t.`tname` IS NULL,'没安排老师',t.`tname`) 老师
FROM s LEFT JOIN t ON s.`tid`=t.`tid`;

CREATE TABLE job(
jid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
jname VARCHAR(20) NOT NULL,
jgender ENUM('男','女'),
jpjid INT
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET =utf8;

INSERT INTO job VALUES(NULL,'张三','男',NULL);
INSERT INTO job VALUES(NULL,'李四','男',1);
INSERT INTO job VALUES(NULL,'王五','女',1);
INSERT INTO job VALUES(NULL,'赵六','男',3);

SELECT * FROM job;
DESC job;

-- 查询每个员工的编号姓名及领导的名字
-- 自连接查询
SELECT j1.`jid` 编号,j1.`jname` 姓名,j2.`jname` 领导姓名
FROM job j1,job j2
WHERE j1.jpjid=j2.jid

SELECT j1.`jid` 编号,j1.`jname` 姓名,IF(j2.`jname` IS NULL,'总经理',j2.`jname`) 领导姓名
FROM job j1 LEFT JOIN job j2
ON j1.jpjid=j2.jid

Mysql-学习笔记(==》连接查询_高级查询五)的更多相关文章

  1. Oracle学习笔记(7)——高级查询(1)

    在学习高级查询之前,我们先了解一下怎样查看Oracle数据库中的全部表.由于我们要使用到Oracle数据库中SCOTT用户下的几张表(这些表是Oracle数据库自带的表). 分组查询 分组函数的概念: ...

  2. oracle学习笔记(十一) 高级查询

    高级查询 分组查询 select * from student [where ] [having ] --二次限定 [order by] --asc升序 desc降序 默认升序 查看EMPLOYEE表 ...

  3. MongoDB 学习笔记(二) 高级查询

    1.条件运算符 2.$all 匹配所有 3.$exists 判断字段是否存在 4.NUll 值处理 5.$mod 取模处理 6.$ne 不等于 7. $in 包含,与sql用法相同 8. $nin 不 ...

  4. MYSQL学习笔记——连接以及存储过程

    连接 当我们需要从多个表查询数据时,我们就需要使用到连接操作,mysql支持内连接,左连接以及右连接三种连接方式. 数据库准备 首先我们创建两个表t1, t2: create table t1(i1 ...

  5. Mysql学习笔记(004)- 条件查询

    条件查询 #进阶2:条件查询 /* 语法: select 查询列表③ from 表名① where 条件筛选② 分类: 一.按条件表达式筛选 条件运算符:> < = != <> ...

  6. Mysql学习笔记(002)-基础查询

    基础查询 # 进阶1:基础查询 /* 语法: select 查询列表 from 表名: 类似于:system.out.println(打印东西); 特点: 1.查询列表可以是:表中的字段,常量值,表达 ...

  7. MySQL学习笔记(一):查询

    查询实例: 1.创建数据库并使用: create database school; use school; 2.创建表并插入内容: create table student( Sno char(9) ...

  8. mysql学习第四天(高级查询)

    -- 第七章-- 1.查询入职日期最早和最晚的日期select min(hiredate),max(hiredate)from emp -- 2.查询职位以SALES开头的所有员工平均工资,最低工资, ...

  9. MySql学习笔记(一)之DQL常用查询

    MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前, ...

随机推荐

  1. [Reprint]c++中typename和class的区别介绍

    在c++Template中,很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?   相信学习C++的人对class这个关键字都非常明白,clas ...

  2. acm算法模板(3)

    位  运  算 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作.运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字 ...

  3. apache高负载性能调优

    先阅读apache配置优化建议如下,再对相关参数进行调整,观察服务器状况.Apache配置优化建议:进入/usr/local/apache2/conf/extra 目录下Apache优化,经过上述操作 ...

  4. phpredis 订阅者模式

    [TOC] 一.场景介绍 最近的一个项目需要用到发布/订阅的信息系统,以做到最新实时消息的通知.经查找后发现了redis pub/sub(发布/订阅的信息系统)可以满足我的开发需求,而且学习成本和使用 ...

  5. C#与js的各种交互

    今天遇到一个问题,查到不错的资料,放上来记录一下,以防忘记地址,算是我的笔记吧! 很多人都向在服务器端调用客户端的函数来操作,也就是在asp中调用javascript脚本中已经定义好的脚本函数.经过研 ...

  6. python添加tab键提示

    新建一个tab.py脚本 #!/usr/bin/python import sys import readline import rlcompleter import atexit import os ...

  7. C# 时间现实问题(12小时制与24小时制)

    最近在修改项目中遇到时间问题,12小时制与24小时制的问题,想再次跟各位同仁提个醒. yyyy-MM-dd HH:mm:ss------大写的HH为24小时制 yyyy-MM-dd hh:mm:ss- ...

  8. 【海岛帝国系列赛】No.7 海岛帝国:神圣之日

    50237242海岛帝国:神圣之日 [试题描述] 战争持续九个月了.“购物券”WHT的军队还在跟恐怖分子僵持着.WHT和LJX已经向“公务员”告急,情况不宜乐观.YSF为守护帝国决定打开“够累 的”星 ...

  9. Windows系统文件受损的修复技巧

    Windows2000/XP系统文件受损的修复技巧 意外重启.安装了不兼容的软件.恶意程序侵扰.误删文件……有太多种可能性会使我们的系统文件受损,而系统文件受损后最直接的表现就是系统不稳定.经常出现错 ...

  10. 【python cookbook】【字符串与文本】3.利用shell通配符做字符串匹配

    问题:当工作在Linux shell下时,使用常见的通配符模式(即,*.py.Dat[0-9]*.csv等)来对文本做匹配 解决方案:fnmatch模块提供的两个函数fnmatch().fnmatch ...