MySQL连接
来源:互联网 发布:苹果手机免费看书软件 编辑:程序博客网 时间:2024/06/09 04:44
一:连接查询:
1.内连接:inner join
2.外连接:out join
二:内连接:
等值连接:where ‘=‘符号
非等值连接:from 返回一个乘积
三:外连接查询:
1.左外连接:
从左表中返回所有的记录,即便在右表中没有匹配的行。
2.右外连接:
从右表中返回所有的记录,即便在左表中没有匹配的行。
四:自连接查询:
数据表与自身进行连接:
五:不同的SQL JOIN 对比:
左外连接,右外连接及内连接的对比或区别:
内连接:如果表中至少有一个匹配,则返回行
左外连接:即使右表没有匹配,也从左表返回所有的行,如果该行左表无数据则返回null。
右外连接:即使左表没有匹配,也从右表返回所有的行,如果该行右表无数据则返回null。
六:连接查询参考代码:
CREATE DATABASE myschool;
USE myschool;
#课程表
CREATE TABLE subjects(
subjectNo INT(5) NOT NULL ,
subjectName VARCHAR(5) NOT NULL ,
subjectNum INT(5) NOT NULL ,
NO INT(5) NOT NULL
);
#添加数据
INSERT INTO `subjects`(`subjectNo`,`subjectName`,`subjectNum`,`No`)
VALUES (1,'Java',222,1),(2,'html',160,1),(3,'javaoop',230,2);
USE myschool;
#课程表
CREATE TABLE subjects(
subjectNo INT(5) NOT NULL ,
subjectName VARCHAR(5) NOT NULL ,
subjectNum INT(5) NOT NULL ,
NO INT(5) NOT NULL
);
#添加数据
INSERT INTO `subjects`(`subjectNo`,`subjectName`,`subjectNum`,`No`)
VALUES (1,'Java',222,1),(2,'html',160,1),(3,'javaoop',230,2);
#创建年级信息表
CREATE TABLE class(
id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
className VARCHAR(255) NOT NULL
);
#给年级表class 插入数据
INSERT INTO class (`className`) VALUES('大一'),('大二'),('大三'),('大四')
CREATE TABLE class(
id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
className VARCHAR(255) NOT NULL
);
#给年级表class 插入数据
INSERT INTO class (`className`) VALUES('大一'),('大二'),('大三'),('大四')
#类别表
CREATE TABLE IF NOT EXISTS category(
categoryId INT(10) AUTO_INCREMENT PRIMARY KEY,
categoryName VARCHAR(32) NOT NULL ,
pid INT(10)
);
#添加数据
INSERT INTO category (categoryName)
VALUES('软件开发'),('美术设计')
#内连接
SELECT g.className AS '年级',s.subjectName AS '课程'
FROM subjects AS s INNER JOIN class AS g ON g.id = s.No
#左外连接
SELECT className '年级',subjectName '课程'
FROM subjects AS s LEFT JOIN class AS g ON g.id = s.No
#右外连接
SELECT className '年级',subjectName '课程'
FROM subjects AS s RIGHT JOIN class AS g ON g.id = s.No
#自连接
SELECT a.categoryName AS '父栏目名称',b.categoryName AS '子栏目名称'
FROM category AS a INNER JOIN category AS b ON a.categoryId = b.pid
categoryId INT(10) AUTO_INCREMENT PRIMARY KEY,
categoryName VARCHAR(32) NOT NULL ,
pid INT(10)
);
#添加数据
INSERT INTO category (categoryName)
VALUES('软件开发'),('美术设计')
#内连接
SELECT g.className AS '年级',s.subjectName AS '课程'
FROM subjects AS s INNER JOIN class AS g ON g.id = s.No
#左外连接
SELECT className '年级',subjectName '课程'
FROM subjects AS s LEFT JOIN class AS g ON g.id = s.No
#右外连接
SELECT className '年级',subjectName '课程'
FROM subjects AS s RIGHT JOIN class AS g ON g.id = s.No
#自连接
SELECT a.categoryName AS '父栏目名称',b.categoryName AS '子栏目名称'
FROM category AS a INNER JOIN category AS b ON a.categoryId = b.pid
0 0
- MYSQl 连接
- 连接MySQL
- mysql连接
- MySQL连接
- 连接MySQl
- 连接mysql
- MySQL连接
- 连接MySQL
- MySql连接
- mysql连接
- mysql连接
- MySQL连接
- mysql 连接
- mysql连接
- MySql连接
- 连接mysql
- MySQL连接
- MySQL 连接
- Android Studio配置NDK
- JS 日期比较大小的简单实例
- vc获得路径中的文件名
- POJ 2955 Brackets
- 插入排序
- MySQL连接
- redis管道、事物与lua脚本
- 在window下安装mogodb数据库
- 文档对象模型DOM(Document Object Model),dom操作元素
- Linux下查看支持的信号列表
- 【JavaScript】找出数组中两数之和为指定值的所有整数对
- Uboot启动过程中的相关动作
- 数据结构--图 的JAVA实现(上)
- ZOJ2334 Monkey King 【左偏树模板题】