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. JQuery下CheckBox全选全不选反选

    <script src="JS/jquery-1.7.1.js"></script> <script type="text/javascri ...

  2. JavaScript: basis

    ref: http://www.imooc.com/code/387 1. html里直接嵌入js: <!DOCTYPE HTML> <html> <head> & ...

  3. 移动端下拉刷新,iScroll.js用法(转载)

    本文转载自: iScroll.js 用法参考 (share)

  4. 关于 VS 无法转到定义和无法转到使用的问题

    今天提交完代码以后突然发现  咦  怎么F12 .点击右键的方法都不能转到定义了    转到引用 也提示  没有发现   重启VS  还是不行 .去找王晓  他也不清楚(其实我知道 他应该也不清楚  ...

  5. 夺命雷公狗TP下关联查询

    记录下我们常用的关联查询: public function add4(){ $id=$_GET['id']; $this->list = M("student")->t ...

  6. 解决xfce4桌面图标消失的问题

    问题表现:panel还在,桌面的背景变成灰色,桌面图标消失,桌面右键没反映 解决方法:从登录管理器中登录另一个用户,发现桌面正常,猜测是由于家目录下的配置文件引起的. 删除 ~/.cache/sess ...

  7. linux下调整音量大小

    不得不说,在linux下整音频和视频真是不容易.在windows中自带了关于音频和视频的工具,在linux下要两眼一抹黑地使用命令进行操作. 主要还是在linux下没找到合适的gui的调整工具. 几番 ...

  8. OpenStack 新加计算节点后修改

    Contents [hide] 1 前提 2 iptables禁止snat= 3 vlan支持 4 Quota支持 5 修改物理资源设置. 6 添加collectd 7 重启服务 前提 我们使用fue ...

  9. sql创建删除修改表的基本操作

    1 建立表格 在建立好数据库以后,就可以根据储存资料的需求,使用SQL叙述建立所有需要的表格(table).建立表格的设定非常多,以建立"world.city"表格来说,它的叙述会 ...

  10. datasnap 的线程池(转)

    datasnap的线程池 新的datasnap使用INDY10的线程池.不管你知不知道,DATASNAP都是使用线程池了,这和MIDAS不同,MIDAS默认是没有线程池的. 跟踪INDY10线程池类T ...