【MySQL】07.表内容的操作

[复制链接]
发表于 2025-5-25 12:50:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1. insert

我们先创建一个表结构,这部分操作我们使用这张表完成我们的操作:
  1. mysql> create table student(
  2.     -> id int primary key auto_increment,
  3.     -> name varchar(20) not null,
  4.     -> qq varchar(20) unique
  5.     -> );
  6. Query OK, 0 rows affected (0.04 sec)
复制代码
示例演示: 
  1. -- 单行插入
  2. mysql> insert into student values(100, '张三', '11111');
  3. Query OK, 1 row affected (0.00 sec)
  4. mysql> insert into student values(101, '李四', NULL);
  5. Query OK, 1 row affected (0.01 sec)
  6. -- 多行插入
  7. mysql> insert into student(name,qq) values('王五', '22222'),('赵六',' ');
  8. Query OK, 2 rows affected (0.00 sec)
  9. Records: 2  Duplicates: 0  Warnings: 0
  10. mysql> select * from student;
  11. +-----+--------+-------+
  12. | id  | name   | qq    |
  13. +-----+--------+-------+
  14. | 100 | 张三   | 11111 |
  15. | 101 | 李四   | NULL  |
  16. | 102 | 王五   | 22222 |
  17. | 103 | 赵六   |       |
  18. +-----+--------+-------+
  19. 4 rows in set (0.00 sec)
  20. -- 插入冲突更新
  21. mysql> insert into student(id,name,qq) values(102,'周七', '33333');
  22. ERROR 1062 (23000): Duplicate entry '102' for key 'student.PRIMARY'
  23. mysql> insert into student(id,name,qq) values(102,'周七', '33333') on duplicate key update name = '周七', qq = '33333';
  24. Query OK, 2 rows affected (0.00 sec)
  25. mysql> select * from student;
  26. +-----+--------+-------+
  27. | id  | name   | qq    |
  28. +-----+--------+-------+
  29. | 100 | 张三   | 11111 |
  30. | 101 | 李四   | NULL  |
  31. | 102 | 周七   | 33333 |
  32. | 103 | 赵六   |       |
  33. +-----+--------+-------+
  34. 4 rows in set (0.00 sec)
  35. -- 替换
  36. mysql> replace into student (id, name) VALUES (100, '田八');
  37. Query OK, 2 rows affected (0.00 sec)
  38. mysql> select * from student;
  39. +-----+--------+-------+
  40. | id  | name   | qq    |
  41. +-----+--------+-------+
  42. | 100 | 田八   | NULL  |
  43. | 101 | 李四   | NULL  |
  44. | 102 | 周七   | 33333 |
  45. | 103 | 赵六   |       |
  46. +-----+--------+-------+
  47. 4 rows in set (0.00 sec)
复制代码
2. update

  1. -- 将张三同学的数学成绩变更为 100 分
  2. mysql> update exam_result set math = 100 where name = '张三';
  3. Query OK, 1 row affected (0.00 sec)
  4. Rows matched: 1  Changed: 1  Warnings: 0
  5. mysql> select * from exam_result;
  6. +----+--------+---------+------+---------+
  7. | id | name   | chinese | math | english |
  8. +----+--------+---------+------+---------+
  9. |  2 | 张三   |      67 |  100 |      56 |
  10. |  3 | 李四   |      87 |   78 |      77 |
  11. |  4 | 王五   |      88 |   98 |      90 |
  12. |  5 | 赵六   |      82 |   84 |      67 |
  13. |  6 | 田八   |      70 |   73 |      78 |
  14. |  7 | 刘九   |      75 |   65 |      30 |
  15. +----+--------+---------+------+---------+
  16. 6 rows in set (0.00 sec)
  17. -- 将张三同学的数学成绩变更为 60 分,语文成绩变更为 70 分
  18. mysql> update exam_result set math = 60,chinese = 70 where name = '张三';
  19. Query OK, 1 row affected (0.01 sec)
  20. Rows matched: 1  Changed: 1  Warnings: 0
  21. mysql> select * from exam_result;
  22. +----+--------+---------+------+---------+
  23. | id | name   | chinese | math | english |
  24. +----+--------+---------+------+---------+
  25. |  2 | 张三   |      70 |   60 |      56 |
  26. |  3 | 李四   |      87 |   78 |      77 |
  27. |  4 | 王五   |      88 |   98 |      90 |
  28. |  5 | 赵六   |      82 |   84 |      67 |
  29. |  6 | 田八   |      70 |   73 |      78 |
  30. |  7 | 刘九   |      75 |   65 |      30 |
  31. +----+--------+---------+------+---------+
  32. 6 rows in set (0.00 sec)
  33. -- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
  34. mysql> update exam_result set math = math + 30 order by chinese + math + english limit 3;
  35. Query OK, 3 rows affected (0.01 sec)
  36. Rows matched: 3  Changed: 3  Warnings: 0
  37. mysql> select * from exam_result;
  38. +----+--------+---------+------+---------+
  39. | id | name   | chinese | math | english |
  40. +----+--------+---------+------+---------+
  41. |  2 | 张三   |      70 |   90 |      56 |
  42. |  3 | 李四   |      87 |   78 |      77 |
  43. |  4 | 王五   |      88 |   98 |      90 |
  44. |  5 | 赵六   |      82 |   84 |      67 |
  45. |  6 | 田八   |      70 |  103 |      78 |
  46. |  7 | 刘九   |      75 |   95 |      30 |
  47. +----+--------+---------+------+---------+
  48. 6 rows in set (0.00 sec)
  49. -- 将所有同学的语文成绩更新为原来的 2 倍
  50. mysql> update exam_result set chinese = chinese * 2;
  51. Query OK, 6 rows affected (0.00 sec)
  52. Rows matched: 6  Changed: 6  Warnings: 0
  53. mysql> select * from exam_result;
  54. +----+--------+---------+------+---------+
  55. | id | name   | chinese | math | english |
  56. +----+--------+---------+------+---------+
  57. |  2 | 张三   |     140 |   90 |      56 |
  58. |  3 | 李四   |     174 |   78 |      77 |
  59. |  4 | 王五   |     176 |   98 |      90 |
  60. |  5 | 赵六   |     164 |   84 |      67 |
  61. |  6 | 田八   |     140 |  103 |      78 |
  62. |  7 | 刘九   |     150 |   95 |      30 |
  63. +----+--------+---------+------+---------+
  64. 6 rows in set (0.00 sec)
复制代码
3. delete

  1. -- 删除张三同学的考试成绩
  2. mysql> delete from exam_result where name = '张三';
  3. Query OK, 1 row affected (0.00 sec)
  4. mysql> select * from exam_result;
  5. +----+--------+---------+------+---------+
  6. | id | name   | chinese | math | english |
  7. +----+--------+---------+------+---------+
  8. |  3 | 李四   |     174 |   78 |      77 |
  9. |  4 | 王五   |     176 |   98 |      90 |
  10. |  5 | 赵六   |     164 |   84 |      67 |
  11. |  6 | 田八   |     140 |  103 |      78 |
  12. |  7 | 刘九   |     150 |   95 |      30 |
  13. +----+--------+---------+------+---------+
  14. 5 rows in set (0.00 sec)
  15. -- 删除整张表
  16. delete from for_delete;
  17. Query OK, 3 rows affected (0.00 sec)
  18. SELECT * FROM for_delete;
  19. Empty set (0.00 sec)
  20. -- 截断整表数据,注意影响行数是 0,所以实际上没有对数据真正操作
  21. truncate for_truncate;
  22. Query OK, 0 rows affected (0.10 sec)
  23. SELECT * FROM for_truncate;
  24. Empty set (0.00 sec)
  25. -- delete 和 truncate 的其中一个区别是truncate会清空auto_increment。
复制代码
4. select

这部分使用下面的表进行操作:
  1. mysql> create table exam_result(
  2.     -> id int primary key auto_increment,
  3.     -> name varchar(20) not null,
  4.     -> chinese float default 0,
  5.     -> math float default 0,
  6.     -> english float default 0
  7.     -> );
  8. Query OK, 0 rows affected (0.03 sec)
  9. mysql> insert into exam_result(name,chinese,math,english) values('张三',67,98,56),
  10.     -> ('李四',87,78,77);
  11. Query OK, 2 rows affected (0.01 sec)
  12. Records: 2  Duplicates: 0  Warnings: 0
  13. mysql> insert into exam_result(name,chinese,math,english) values('王五', 88, 98, 90), ('赵六', 82, 84, 67),('田八', 70, 73, 78),('刘九', 75, 65, 30);
  14. Query OK, 4 rows affected (0.01 sec)
  15. Records: 4  Duplicates: 0  Warnings: 0
复制代码
4.1 根本查询 

4.1.1 简单查询

  1. -- 全列查询
  2. mysql> select * from exam_result;
  3. +----+--------+---------+------+---------+
  4. | id | name   | chinese | math | english |
  5. +----+--------+---------+------+---------+
  6. |  2 | 张三   |      67 |   98 |      56 |
  7. |  3 | 李四   |      87 |   78 |      77 |
  8. |  4 | 王五   |      88 |   98 |      90 |
  9. |  5 | 赵六   |      82 |   84 |      67 |
  10. |  6 | 田八   |      70 |   73 |      78 |
  11. |  7 | 刘九   |      75 |   65 |      30 |
  12. +----+--------+---------+------+---------+
  13. 6 rows in set (0.00 sec)
  14. -- 查询部分列
  15. mysql> select id,name,chinese from exam_result;
  16. +----+--------+---------+
  17. | id | name   | chinese |
  18. +----+--------+---------+
  19. |  2 | 张三   |      67 |
  20. |  3 | 李四   |      87 |
  21. |  4 | 王五   |      88 |
  22. |  5 | 赵六   |      82 |
  23. |  6 | 田八   |      70 |
  24. |  7 | 刘九   |      75 |
  25. +----+--------+---------+
  26. 6 rows in set (0.00 sec)
  27. -- 查询字段为表达式
  28. mysql> select id,name,chinese+math+english from exam_result;
  29. +----+--------+----------------------+
  30. | id | name   | chinese+math+english |
  31. +----+--------+----------------------+
  32. |  2 | 张三   |                  221 |
  33. |  3 | 李四   |                  242 |
  34. |  4 | 王五   |                  276 |
  35. |  5 | 赵六   |                  233 |
  36. |  6 | 田八   |                  221 |
  37. |  7 | 刘九   |                  170 |
  38. +----+--------+----------------------+
  39. 6 rows in set (0.00 sec)
  40. -- 为查询列指定别名
  41. mysql> select id,name,chinese+math+english 总分 from exam_result;
  42. +----+--------+--------+
  43. | id | name   | 总分   |
  44. +----+--------+--------+
  45. |  2 | 张三   |    221 |
  46. |  3 | 李四   |    242 |
  47. |  4 | 王五   |    276 |
  48. |  5 | 赵六   |    233 |
  49. |  6 | 田八   |    221 |
  50. |  7 | 刘九   |    170 |
  51. +----+--------+--------+
  52. 6 rows in set (0.00 sec)
  53. -- 去重查询
  54. mysql> select distinct math from exam_result;
  55. +------+
  56. | math |
  57. +------+
  58. |   98 |
  59. |   78 |
  60. |   84 |
  61. |   73 |
  62. |   65 |
  63. +------+
  64. 5 rows in set (0.01 sec)
复制代码
4.1.2 where

比力运算符:
运算符说明>, >=,<,<=大于,大于等于,小于,小于等于=等于,NULL 不安全,例如 NULL = NULL 的效果是 NULL<=>等于,NULL 安全,例如 NULL NULL 的效果是 TRUE(1)!=, <>不等于BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= values <=a1,返回 TRUE(1)IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)IS NULL是 NULLIS NOT NULL不是 NULLLIKE模糊匹配。% 表示任意多个(包罗 0 个)任意字符;_ 表示任意一个字符 逻辑运算符:
运算符说明AND多个条件必须都为 TRUE(1),效果才是 TRUE(1)OR任意一个条件为 TRUE(1), 效果为 TRUE(1)NOT条件为 TRUE(1),效果为 FALSE(0) 示例演示:
  1. -- 英语不及格的同学及英语成绩 ( < 60 )
  2. mysql> select name,english from exam_result where english < 60;
  3. +--------+---------+
  4. | name   | english |
  5. +--------+---------+
  6. | 张三   |      56 |
  7. | 刘九   |      30 |
  8. +--------+---------+
  9. 2 rows in set (0.00 sec)
  10. -- 语文成绩在 [80, 90] 分的同学及语文成绩
  11. mysql> select name,chinese from exam_result where chinese between 80 and 90;
  12. +--------+---------+
  13. | name   | chinese |
  14. +--------+---------+
  15. | 李四   |      87 |
  16. | 王五   |      88 |
  17. | 赵六   |      82 |
  18. +--------+---------+
  19. 3 rows in set (0.00 sec)
  20. mysql> select name,chinese from exam_result where chinese >= 80 and chinese <= 90;
  21. +--------+---------+
  22. | name   | chinese |
  23. +--------+---------+
  24. | 李四   |      87 |
  25. | 王五   |      88 |
  26. | 赵六   |      82 |
  27. +--------+---------+
  28. 3 rows in set (0.00 sec)
  29. -- 数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
  30. mysql> select name,math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;
  31. +--------+------+
  32. | name   | math |
  33. +--------+------+
  34. | 张三   |   98 |
  35. | 王五   |   98 |
  36. +--------+------+
  37. 2 rows in set (0.00 sec)
  38. mysql> select name,math from exam_result where math in(58,59,98,99);
  39. +--------+------+
  40. | name   | math |
  41. +--------+------+
  42. | 张三   |   98 |
  43. | 王五   |   98 |
  44. +--------+------+
  45. 2 rows in set (0.01 sec)
  46. -- 姓张的同学 及 赵某同学
  47. mysql> select name from exam_result where name like '张%' or name like '赵_';
  48. +--------+
  49. | name   |
  50. +--------+
  51. | 张三   |
  52. | 赵六   |
  53. +--------+
  54. 2 rows in set (0.00 sec)
  55. -- 语文成绩好于英语成绩的同学
  56. mysql> select name,chinese,english from exam_result where chinese > english;
  57. +--------+---------+---------+
  58. | name   | chinese | english |
  59. +--------+---------+---------+
  60. | 张三   |      67 |      56 |
  61. | 李四   |      87 |      77 |
  62. | 赵六   |      82 |      67 |
  63. | 刘九   |      75 |      30 |
  64. +--------+---------+---------+
  65. 4 rows in set (0.00 sec)
  66. -- 总分在 200 分以下的同学
  67. mysql> select name,chinese+math+english from exam_result where chinese + math + english < 200;
  68. +--------+----------------------+
  69. | name   | chinese+math+english |
  70. +--------+----------------------+
  71. | 刘九   |                  170 |
  72. +--------+----------------------+
  73. 1 row in set (0.00 sec)
  74. -- 语文成绩 > 80 并且不姓张的同学
  75. mysql> select name,chinese from exam_result where chinese > 80 and name not like '张%';
  76. +--------+---------+
  77. | name   | chinese |
  78. +--------+---------+
  79. | 李四   |      87 |
  80. | 王五   |      88 |
  81. | 赵六   |      82 |
  82. +--------+---------+
  83. 3 rows in set (0.00 sec)
  84. -- 张某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80
  85. mysql> select * from exam_result where name like '张%' or (chinese + math + english > 200 and chinese < math and english >80);
  86. +----+--------+---------+------+---------+
  87. | id | name   | chinese | math | english |
  88. +----+--------+---------+------+---------+
  89. |  2 | 张三   |      67 |   98 |      56 |
  90. |  4 | 王五   |      88 |   98 |      90 |
  91. +----+--------+---------+------+---------+
  92. 2 rows in set (0.00 sec)
复制代码
4.1.3 order by

  1. -- 同学及数学成绩,按数学成绩升序显示
  2. mysql> select name,math from exam_result order by math;
  3. +--------+------+
  4. | name   | math |
  5. +--------+------+
  6. | 刘九   |   65 |
  7. | 田八   |   73 |
  8. | 李四   |   78 |
  9. | 赵六   |   84 |
  10. | 张三   |   98 |
  11. | 王五   |   98 |
  12. +--------+------+
  13. 6 rows in set (0.01 sec)
  14. -- 同学及总分,按总分排序显示
  15. mysql> select name,chinese + math + english 总分 from exam_result order by 总分;
  16. +--------+--------+
  17. | name   | 总分   |
  18. +--------+--------+
  19. | 刘九   |    170 |
  20. | 张三   |    221 |
  21. | 田八   |    221 |
  22. | 赵六   |    233 |
  23. | 李四   |    242 |
  24. | 王五   |    276 |
  25. +--------+--------+
  26. 6 rows in set (0.00 sec)
  27. -- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
  28. mysql> select * from exam_result order by math desc,english,chinese;
  29. +----+--------+---------+------+---------+
  30. | id | name   | chinese | math | english |
  31. +----+--------+---------+------+---------+
  32. |  2 | 张三   |      67 |   98 |      56 |
  33. |  4 | 王五   |      88 |   98 |      90 |
  34. |  5 | 赵六   |      82 |   84 |      67 |
  35. |  3 | 李四   |      87 |   78 |      77 |
  36. |  6 | 田八   |      70 |   73 |      78 |
  37. |  7 | 刘九   |      75 |   65 |      30 |
  38. +----+--------+---------+------+---------+
  39. 6 rows in set (0.00 sec)
  40. -- 查询姓张的同学或者姓刘的同学数学成绩,结果按数学成绩由高到低显示
  41. mysql> select * from exam_result where name like '张%' or name like '刘%' order by math desc;
  42. +----+--------+---------+------+---------+
  43. | id | name   | chinese | math | english |
  44. +----+--------+---------+------+---------+
  45. |  2 | 张三   |      67 |   98 |      56 |
  46. |  7 | 刘九   |      75 |   65 |      30 |
  47. +----+--------+---------+------+---------+
  48. 2 rows in set (0.00 sec)
复制代码
4.1.4 limit offset

对查询效果进行分页处置处罚:
  1. mysql> select * from exam_result limit 3 offset 0;
  2. +----+--------+---------+------+---------+
  3. | id | name   | chinese | math | english |
  4. +----+--------+---------+------+---------+
  5. |  2 | 张三   |      67 |   98 |      56 |
  6. |  3 | 李四   |      87 |   78 |      77 |
  7. |  4 | 王五   |      88 |   98 |      90 |
  8. +----+--------+---------+------+---------+
  9. 3 rows in set (0.00 sec)
  10. mysql> select * from exam_result limit 3 offset 3;
  11. +----+--------+---------+------+---------+
  12. | id | name   | chinese | math | english |
  13. +----+--------+---------+------+---------+
  14. |  5 | 赵六   |      82 |   84 |      67 |
  15. |  6 | 田八   |      70 |   73 |      78 |
  16. |  7 | 刘九   |      75 |   65 |      30 |
  17. +----+--------+---------+------+---------+
  18. 3 rows in set (0.00 sec)
  19. mysql> select * from exam_result limit 3 offset 6;
  20. Empty set (0.00 sec)
复制代码
4.1.5 insert into

  1. mysql> insert into son_table select * from exam_result;
  2. Query OK, 5 rows affected (0.01 sec)
  3. Records: 5  Duplicates: 0  Warnings: 0
  4. mysql> select * from son_table;
  5. +----+--------+---------+------+---------+
  6. | id | name   | chinese | math | english |
  7. +----+--------+---------+------+---------+
  8. |  3 | 李四   |     174 |   78 |      77 |
  9. |  4 | 王五   |     176 |   98 |      90 |
  10. |  5 | 赵六   |     164 |   84 |      67 |
  11. |  6 | 田八   |     140 |  103 |      78 |
  12. |  7 | 刘九   |     150 |   95 |      30 |
  13. +----+--------+---------+------+---------+
  14. 5 rows in set (0.00 sec)
复制代码
4.1.6 group by

在select中使用group by 子句可以对指定列进行分组查询
  1. -- 显示每个部门的平均工资和最高工资
  2. select deptno,avg(sal),max(sal) from EMP group by deptno;
  3. -- 每个部门的每种岗位的平均工资和最低工资
  4. select avg(sal),min(sal),job, deptno from EMP group by deptno, job;
复制代码
4.2 复合查询

4.2.1 多表连接

接下来我们使用下面两张表来进行查询:

• 表现雇员名、雇员工资以及所在部门的名字
  1. select EMP.ename, EMP.sal, DEPT.dname from EMP, DEPT where EMP.deptno = DEPT.deptno;
复制代码
• 表现部门号为10的部门名,员工名和工资
  1. select ename, sal,dname from EMP, DEPT where EMP.deptno = DEPT.deptno and DEPT.deptno = 10;
复制代码
• 表现各个员工的姓名,工资,及工资级别
  1. select ename, sal, grade from EMP, SALGRADE where EMP.sal between losal and hisal;
复制代码
4.2.2 自连接

• 表现员工FORD的上级领导的编号和姓名
  1. -- 使用的子查询
  2. select empno,ename from emp where emp.empno = (select mgr from emp where ename = 'FORD');
  3. -- 使用多表查询(自查询)
  4. --from emp leader, emp worker,给自己的表起别名,因为要先做笛卡尔积,所以别名可以先识别
  5. select leader.empno,leader.ename from emp leader, emp worker where
  6.     leader.empno = worker.mgr and worker.ename='FORD';
复制代码
4.2.3 子查询

• 表现SMITH同一部门的员工
  1. select * from EMP WHERE deptno = (select deptno from EMP where ename = 'smith');
复制代码
• 查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的
  1. select ename,job,sal,deptno from emp where
  2. job in (select distinct job from emp where deptno = 10) and deptno<>10;
复制代码
• 表现工资比部门30的所有员工的工资高的员工的姓名、工资和部门号
  1. select ename, sal, deptno from EMP
  2. where sal > all(select sal from EMP where deptno = 30);
复制代码
• 表现工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)
  1. select ename, sal, deptno from EMP
  2. where sal > any(select sal from EMP where deptno = 30);
复制代码
• 查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人
  1. select ename from EMP
  2. where (deptno, job) = (select deptno, job from EMP where ename = 'SMITH') and ename <> 'SMITH';
复制代码
• 表现每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资
  1. select ename, deptno, sal, format(asal,2) from EMP,
  2. (select avg(sal) asal, deptno dt from EMP group by deptno) tmp
  3. where EMP.sal > tmp.asal and EMP.deptno = tmp.dt;
复制代码
• 查找每个部门工资最高的人的姓名、工资、部门、最高工资
  1. select EMP.ename, EMP.sal, EMP.deptno, ms from EMP,
  2. (select max(sal) ms, deptno from EMP group by deptno) tmp
  3. where EMP.deptno=tmp.deptno and EMP.sal=tmp.ms;
复制代码
4.2.4 归并查询

• 将工资大于2500或职位是MANAGER的人找出来
  1. select ename, sal, job from EMP
  2. where sal > 2500
  3. union
  4. select ename, sal, job from EMP
  5. where job = 'MANAGER';--去掉了重复记录
复制代码
• 将工资大于25000或职位是MANAGER的人找出来
  1. select ename, sal, job from EMP
  2. where sal > 2500
  3. union all
  4. select ename, sal, job from EMP
  5. where job = 'MANAGER';
复制代码
4.3 表里连接

4.3.1 内连接

内连接实际上就是使用where子句对两种表形成的笛卡儿积进行筛选。
• 表现SMITH的名字和部门名称
  1. -- 用前面的写法
  2. select ename, dname from EMP, DEPT
  3. where EMP.deptno = DEPT.deptno and ename = 'SMITH';
  4. -- 用标准的内连接写法
  5. select ename, dname from EMP inner
  6. join DEPT on EMP.deptno = DEPT.deptno and ename = 'SMITH';
复制代码
4.3.2 外连接

左外连接
如果连合查询,左侧的表完全表现我们就说是左外连接
• 查询所有门生的成绩,如果这个门生没有成绩,也要将门生的个人信息表现出来
  1. select * from stu left join exam on stu.id = exam.id;
复制代码
右外连接
如果连合查询,右侧的表完全表现我们就说是右外连接。
• 对stu表和exam表连合查询,把所有的成绩都表现出来,即使这个成绩没有门生与它对应,也要表现出来
  1. select * from stu right join exam on stu.id = exam.id;
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表