mysql常用语句

https://support.huaweicloud.com/bestpractice-css/css_07_0034.html

从不同表取不同字段

从一个表中选择所有字段:

SELECT *
FROM table_name;

从多个表中选择所有字段:

SELECT *
FROM table1, table2, table3
WHERE table1.id = table2.id AND table2.id = table3.id;

从一个表中按条件选择字段:

SELECT column1, column2, column3
FROM table_name
WHERE condition;

从多个表中选择多个字段:

SELECT t1.column1, t2.column2, t3.column3
FROM table1 t1, table2 t2, table3 t3
WHERE t1.id = t2.id AND t2.id = t3.id;

从多个表中按条件选择字段:

SELECT t1.column1, t2.column2, t3.column3
FROM table1 t1, table2 t2, table3 t3
WHERE t1.id = t2.id AND t2.id = t3.id AND condition;

sql与include标签

sql标签和include标签一般是一起使用的,sql标签中id属性对应include标签中的refid属性。

通过include标签将sql片段和原sql片段进行拼接成一个完整的sql语句进行执行。

sql标签可以用来定义可复用的sql代码片段,可以通过include标签包含在其他语句中。

<!-- 通用查询结果列 -->
<sql id="baseColumnList">
  SELECT
  id,
  name,
  sex
</sql>
 
<select id="selectById" resultType="com.property.vo.EmployeeVO">
   <include refid="baseColumnList"/>
   FROM employee
   WHERE is_deleted = 0
</select>

拼接后:SELECT id,name,sex FROM employee WHERE is_deleted = 0

查询字段、关联表、where条件都可以使用。

了解JOIN操作

JOIN是MySQL中用于连接两个或多个表的操作。在使用JOIN操作时,我们需要指定连接的字段,这些字段需要在两个或多个表中都存在。JOIN操作可以分为以下几种类型:

  • INNER JOIN(内连接):只返回两个表中连接字段相等的行。

  • LEFT JOIN(左连接):返回左表中的所有行,以及右表中连接字段相等的行。

  • RIGHT JOIN(右连接):返回右表中的所有行,以及左表中连接字段相等的行。

  • FULL OUTER JOIN(全外连接):返回左右两个表中的所有行。

Left join

Left join(左连接)是一种关系型数据库查询操作,用来将两个表中的符合连接条件的记录组合在一起。左连接包含左表的所有记录,以及与左表匹配的右表中的记录。如果右表中没有与左表匹配的记录,则右表的值为null。

左连接的语法:SELECT 列1, 列2, … FROM 左表 LEFT JOIN 右表 ON 连接条件

示例代码:

假设有两个表:

学生表(student):

学号 姓名
101 张三
102 李四
103 王五

成绩表(score):

学号 课程 分数
101 语文 80
101 数学 90
102 语文 75
103 数学 85
104 语文 70

查询学生表和成绩表的左连接:

SELECT student.学号, student.姓名, score.课程, score.分数
FROM student
LEFT JOIN score ON student.学号 = score.学号;

查询结果:

学号 姓名 课程 分数
101 张三 语文 80
101 张三 数学 90
102 李四 语文 75
103 王五 数学 85
104 null 语文 70

其中,学生表中的每个记录都与成绩表中符合条件的记录进行了左连接,如果成绩表中没有与学生表匹配的记录,则右表的值为null

你可能感兴趣的:(JAVA进阶,mysql,oracle,数据库)