当前位置: 首页 > news >正文

湛江专业网站建设广州全屋定制

湛江专业网站建设,广州全屋定制,知名软装设计公司,新闻稿范文300字SQL中 JOIN 的两种连接类型#xff1a;内连接#xff08;自然连接、自连接、交叉连接#xff09;、外连接#xff08;左外连接、右外连接、全外连接#xff09; 1. 自然连接#xff08;natural join#xff09;#xff08;内连接#xff09; 学生表 mysql sele…SQL中 JOIN 的两种连接类型内连接自然连接、自连接、交叉连接、外连接左外连接、右外连接、全外连接 1. 自然连接natural join内连接 学生表 mysql select * from student; ---------------------- | id | name | code | ---------------------- | 1 | 张三 | 20181601 | | 2 | 尔四 | 20181602 | | 3 | 小红 | 20181603 | | 4 | 小明 | 20181604 | | 5 | 小青 | 20181605 | ---------------------- 5 rows in set (0.00 sec)CREATE TABLE student (id int NOT NULL AUTO_INCREMENT,name varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,code int DEFAULT NULL,PRIMARY KEY (id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci;INSERT INTO student (name, code) VALUES(张三, 20181601),(尔四, 20181602),(小红, 20181603),(小明, 20181604),(小青, 20181605);成绩表 mysql select * from score; --------------------- | id | grade | code | --------------------- | 1 | 55 | 20181601 | | 2 | 88 | 20181602 | | 3 | 99 | 20181605 | | 4 | 33 | 20181611 | --------------------- 4 rows in set (0.00 sec)CREATE TABLE score (id int NOT NULL AUTO_INCREMENT,grade int DEFAULT NULL,code int DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci;INSERT INTO score (id, grade, code) VALUES (1, 55, 20181601), (2, 88, 20181602), (3, 99, 20181605), (4, 33, 20181611);自然连接不用指定连接列也不能使用ON语句它默认比较两张表里相同的列。 SELECT * FROM student NATURAL JOIN score;显示结果如下 mysql select * from student natural join score; ----------------------------- | id | code | name | grade | ----------------------------- | 1 | 20181601 | 张三 | 55 | | 2 | 20181602 | 尔四 | 88 | ----------------------------- 2 rows in set (0.00 sec)–自然连接 natural join 自动判断连接条件完成连接. –自然内连接 natural inner join select *|字段列表 from 左表 natural [inner] join 右表; 自然内连接其实就是内连接,这里的匹配条件是由系统自动指定. –自然外连接 natural outer join 自然外连接分为自然左外连接和自然右外连接.匹配条件也是由系统自动指定. –自然左外连接 natural left join select *|字段列表 from 左表 natural left [outer] join 右表; –自然右外连接 natural right join select *|字段列表 from 右表 natural right [outer] join 左表; 2. 内连接inner join 和自然连接区别之处在于内连接可以自定义两张表的不同列字段。 内连接有两种形式显式和隐式。 1隐式的内连接没有INNER JOIN形成的中间表为两个表的笛卡尔积。 SELECT student.name,score.code FROM student,score WHERE score.codestudent.code;2显示的内连接一般称为内连接有INNER JOIN形成的中间表为两个表经过ON条件过滤后的笛卡尔积。 SELECT student.name,score.code FROM student INNER JOIN score ON score.codestudent.code;例以下1、2语句执行结果相同。 mysql SELECT student.name,score.code FROM student,score WHERE score.codestudent.code; mysql SELECT student.name,score.code FROM student INNER JOIN score ON score.codestudent.code; ------------------ | name | code | ------------------ | 张三 | 20181601 | | 尔四 | 20181602 | | 小青 | 20181605 | ------------------ 3 rows in set (0.00 sec)mysql select student.*,score.* from student inner join score; mysql select student.*,score.* from student inner join score; ------------------------------------------- | id | name | code | id | grade | code | ------------------------------------------- | 1 | 张三 | 20181601 | 4 | 33 | 20181611 | | 1 | 张三 | 20181601 | 3 | 99 | 20181605 | | 1 | 张三 | 20181601 | 2 | 88 | 20181602 | | 1 | 张三 | 20181601 | 1 | 55 | 20181601 | | 2 | 尔四 | 20181602 | 4 | 33 | 20181611 | | 2 | 尔四 | 20181602 | 3 | 99 | 20181605 | | 2 | 尔四 | 20181602 | 2 | 88 | 20181602 | | 2 | 尔四 | 20181602 | 1 | 55 | 20181601 | | 3 | 小红 | 20181603 | 4 | 33 | 20181611 | | 3 | 小红 | 20181603 | 3 | 99 | 20181605 | | 3 | 小红 | 20181603 | 2 | 88 | 20181602 | | 3 | 小红 | 20181603 | 1 | 55 | 20181601 | | 4 | 小明 | 20181604 | 4 | 33 | 20181611 | | 4 | 小明 | 20181604 | 3 | 99 | 20181605 | | 4 | 小明 | 20181604 | 2 | 88 | 20181602 | | 4 | 小明 | 20181604 | 1 | 55 | 20181601 | | 5 | 小青 | 20181605 | 4 | 33 | 20181611 | | 5 | 小青 | 20181605 | 3 | 99 | 20181605 | | 5 | 小青 | 20181605 | 2 | 88 | 20181602 | | 5 | 小青 | 20181605 | 1 | 55 | 20181601 | ------------------------------------------- 20 rows in set (0.00 sec) 拓展 自连接内连接 https://baike.baidu.com/item/%E8%87%AA%E8%BF%9E%E6%8E%A5/2556770 新的学生表 CREATE TABLE new_student (id int NOT NULL AUTO_INCREMENT,name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,code int DEFAULT NULL,grade int DEFAULT NULL,PRIMARY KEY (id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci;INSERT INTO test.new_student(id, name, code, grade) VALUES (1, 张三, 20181601, 55); INSERT INTO test.new_student(id, name, code, grade) VALUES (2, 尔四, 20181602, 88); INSERT INTO test.new_student(id, name, code, grade) VALUES (3, 小红, 20181603, 77); INSERT INTO test.new_student(id, name, code, grade) VALUES (4, 小明, 20181604, 66); INSERT INTO test.new_student(id, name, code, grade) VALUES (5, 小青, 20181605, 99);问题查询显示成绩小于小明的学生和成绩 当表中的某一个字段与这个表中另外字段的相关时我们可能用到 自连接 。 mysql select * from new_student; ----------------------------- | id | name | code | grade | ----------------------------- | 1 | 张三 | 20181601 | 55 | | 2 | 尔四 | 20181602 | 88 | | 3 | 小红 | 20181603 | 77 | | 4 | 小明 | 20181604 | 66 | | 5 | 小青 | 20181605 | 99 | ----------------------------- 5 rows in set (0.00 sec)mysql select st2.name, st2.grade from new_student st1, new_student st2 where st1.name小明 and st1.grade st2.grade; --------------- | name | grade | --------------- | 尔四 | 88 | | 小红 | 77 | | 小青 | 99 | --------------- 3 rows in set (0.00 sec)数据库中自然连接与内连接的区别 1、自然连接一定是内连接内连接不一定是自然连接 2、内连接不把重复的属性除去自然连接要把重复的属性除去 3、内连接要求相等的分量不一定是公共属性自然连接要求相等的分量必须是公共属性 4、内连接不把重复的属性除去自然连接要把重复的属性除去。 3.外连接outer join 1左外连接left outer join返回指定左表的全部行右表对应的行如果左表中数据在右表中没有与其相匹配的行则在查询结果集中显示为空值。 例 SELECT student.name,score.code FROM student LEFT JOIN score ON score.codestudent.code; 查询结果如下 mysql select student.name,score.code from student left join score on score.codestudent.code; ------------------ | name | code | ------------------ | 张三 | 20181601 | | 尔四 | 20181602 | | 小红 | NULL | | 小明 | NULL | | 小青 | 20181605 | ------------------ 5 rows in set (0.00 sec)2右外连接right outer join与左外连接类似是左外连接的反向连接。 SELECT student.name,score.codeFROM student RIGHT JOIN score ON score.codestudent.code;mysql select student.name,score.code from student right join score on score.codestudent.code; ------------------ | name | code | ------------------ | 张三 | 20181601 | | 尔四 | 20181602 | | 小青 | 20181605 | | NULL | 20181611 | ------------------ 4 rows in set (0.00 sec)3全外连接full outer join把左右两表进行自然连接左表在右表没有的显示NULL右表在左表没有的显示NULL。MYSQL不支持全外连接适用于Oracle和DB2。 在MySQL中可通过求左外连接与右外连接的合集来实现全外连接。 例 SELECT student.name,score.code FROM student LEFT JOIN score ON score.codestudent.code UNION SELECT student.name,score.code FROM student RIGHT JOIN score ON score.codestudent.code;mysql select student.name,score.code from student left join score on score.codestudent.code union select student.name,score.code from student right join score on score.codestudent.code; ------------------ | name | code | ------------------ | 张三 | 20181601 | | 尔四 | 20181602 | | 小红 | NULL | | 小明 | NULL | | 小青 | 20181605 | | NULL | 20181611 | ------------------ 6 rows in set (0.00 sec) 4.交叉连接cross join相当与笛卡尔积左表和右表组合。 内连接 SELECT student.name,score.code FROM student CROSS JOIN score ON score.codestudent.code; mysql select student.name,score.code from student cross join score on score.codestudent.code; ------------------ | name | code | ------------------ | 张三 | 20181601 | | 尔四 | 20181602 | | 小青 | 20181605 | ------------------ 3 rows in set (0.00 sec)mysql select student.*,score.* from student cross join score on score.codestudent.code; ------------------------------------------- | id | name | code | id | grade | code | ------------------------------------------- | 1 | 张三 | 20181601 | 1 | 55 | 20181601 | | 2 | 尔四 | 20181602 | 2 | 88 | 20181602 | | 5 | 小青 | 20181605 | 3 | 99 | 20181605 | ------------------------------------------- 3 rows in set (0.00 sec)mysql select student.*,score.* from student cross join score; ------------------------------------------- | id | name | code | id | grade | code | ------------------------------------------- | 1 | 张三 | 20181601 | 4 | 33 | 20181611 | | 1 | 张三 | 20181601 | 3 | 99 | 20181605 | | 1 | 张三 | 20181601 | 2 | 88 | 20181602 | | 1 | 张三 | 20181601 | 1 | 55 | 20181601 | | 2 | 尔四 | 20181602 | 4 | 33 | 20181611 | | 2 | 尔四 | 20181602 | 3 | 99 | 20181605 | | 2 | 尔四 | 20181602 | 2 | 88 | 20181602 | | 2 | 尔四 | 20181602 | 1 | 55 | 20181601 | | 3 | 小红 | 20181603 | 4 | 33 | 20181611 | | 3 | 小红 | 20181603 | 3 | 99 | 20181605 | | 3 | 小红 | 20181603 | 2 | 88 | 20181602 | | 3 | 小红 | 20181603 | 1 | 55 | 20181601 | | 4 | 小明 | 20181604 | 4 | 33 | 20181611 | | 4 | 小明 | 20181604 | 3 | 99 | 20181605 | | 4 | 小明 | 20181604 | 2 | 88 | 20181602 | | 4 | 小明 | 20181604 | 1 | 55 | 20181601 | | 5 | 小青 | 20181605 | 4 | 33 | 20181611 | | 5 | 小青 | 20181605 | 3 | 99 | 20181605 | | 5 | 小青 | 20181605 | 2 | 88 | 20181602 | | 5 | 小青 | 20181605 | 1 | 55 | 20181601 | ------------------------------------------- 20 rows in set (0.00 sec) 参考链接 自然连接、内连接、外连接左外连接、右外连接、全外连接、交叉连接 百科自连接 数据库中自然连接与内连接的区别 MySQL数据库的46种基本语法 MySQL 自连接讲解
http://wiki.neutronadmin.com/news/267775/

相关文章:

  • 福田区网站建wordpress leaf
  • php做网站的优势网站备案依据
  • 做像淘宝网的网站郑州企业网站快速优化多少钱
  • wpsppt网站链接怎么做万网官网登陆
  • 定制级高端网站建设网站开发和
  • 网站被k文章修改进口博览会2022
  • 网站建设的税率阳光保险官方网站
  • 建设部网站1667号公告长沙 外贸网站建设公司
  • 网站建设设计服务商企业管理咨询合同书范本
  • 网站排名推广怎么做网页设计提升班
  • 网站的搜索功能一般怎么做如何做网站改版
  • 51做网站网站个性化设计
  • 已注册域名怎么做网站呢网站建设师薪资
  • 房产中介网站建设技巧网站设计时应考虑哪些因素
  • iis 网站 500长春火车站时刻表
  • 旅游自媒体网站怎么做学校网站群建设设计
  • 企业网站备案材料搭建网站的方案
  • 专业网站设计的公司价格设计产品
  • 手机企业网站多少钱标志网
  • 泾川建设路网站株洲seo优化高手
  • 网站 二级域名南京安居建设集团网站
  • 个人做排行网站江苏建设教育网官网入口
  • 网站开发流程有几个阶段桂林设计单位资质升级网站
  • 电影网站制作自我介绍网页设计代码
  • 网站建设项目延期验收申请莱芜论坛莱芜话题吕金梦
  • 茂名仿站定制模板建站一套完整的室内设计图
  • 单位建设网站的意义网站开发技术概况
  • 阅文集团旗下哪个网站做的最好ftp 转 wordpress
  • 河南城乡建设网站网站建设方案策划书前言
  • python适合大型网站开发吗wordpress传输失败