【MySQL】第六章 多表操作

第六章 多表操作

  • 联合查询
    • 基本语法
      • select - from -1-
      • union
      • select - from -2-
    • select字段数量必需一致,即select出来的列必需一致
    • 本质:把两个查询结果进行合并
    • 排序-->+order by
      • 在SQL中,ORDER BY语句用于对查询结果集中的记录进行排序。默认情况下,ORDER BY会按照升序(ASC)对数据进行排序,即从小到大。如果需要按照降序(DESC)排序,即从大到小,可以在列名后面加上DESC关键字
      • SELECT * FROM employees ORDER BY department_id ASC, hire_date DESC;-->这个SQL语句将选择员工表employees中的所有员工,并先按部门ID升序排序,然后在相同部门中按雇佣日期降序排序。
    • WHERE category_id<>3--> 筛选出不等于3的category_id
    • desc-->按降序排列
  • 连接查询(将多张表的关联字段进行连接并查询)
    • 交叉连接查询
      • 将查询出的表的行记录将那些连接组成
      • 基本语法
        • select - from -1- cross join -2-;
        • select - from -1-,-2-;
    • 内连接查询
      • 交叉连接查询会返回很多无效的数据
      • 内连接插叙可以限定查询语句的条件,去除无效数据
      • 基本语法
        • 隐式
          • select - from -1-,-2- where -c-
        • 显式
          • select - from -1- join -2- on -c-
      • 自连接查询
    • 外连接查询
      • 查询出其中一张数据表符合条件之外的其他数据
      • 基本语法
        • select ---.- from -1- left|right join -2- on -c-;
          • left -->左查询,一般-1-为左表,-2-为右表;right-->右查询
      • 左外连接查询
        • 左连接返回左表中的所有记录,以及右表中匹配的记录。如果右表中没有匹配的记录,那么结果中的右表字段将以NULL填充。
      • 右外连接查询
  • 子查询
    • 标量子查询
      • 这种子查询只能返回一个值(一行一列)。它通常用在比较运算符(如=、>、<等)后面。
      • SELECT employee_name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
    • 表子查询
      • 返回的是一个结果集,即多行多列的数据。它可以用在FROM子句或者IN、EXISTS、ANY、ALL等关键字后面.
  • 外键约束
    • 基本语法
      • 创建表时添加
        • constraint + 外键约束的名称
        • foreign key(外键列名)
        • references 主表名称(主键列名)
        • 例子
          • 在这个例子中,外键约束确保了员工表中的每个部门ID都必须在部门表中存在,否则尝试插入或更新员工表中的部门ID将会失败。
      • 修改
        •  HAVING子句是用来对分组后的结果进行过滤的。
          • 由于WHERE子句不能与聚合函数一起使用,HAVING子句被引入SQL语言以弥补这一不足。
          • HAVING子句通常与GROUP BY子句一起使用,允许在分组的基础上进行条件筛选,只返回满足特定条件的分组数据
          • 基本语法
            • 例子
  • 32
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中进行MySQL操作需要使用JDBC(Java Database Connectivity)技术,具体步骤如下: 1. 加载MySQL驱动程序 在Java中连接MySQL数据库需要加载MySQL驱动程序,可以使用Class.forName()方法加载。 ``` Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接 使用DriverManager.getConnection()方法建立数据库连接,需要传入数据库URL、用户名和密码。 ``` String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 创建Statement对象 使用Connection.createStatement()方法创建Statement对象,用于执行SQL语句。 ``` Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句 使用Statement.executeUpdate()方法执行SQL语句,可以执行增、删、改操作。 ``` String sql = "insert into user(name, age) values('Tom', 20)"; stmt.executeUpdate(sql); ``` 使用Statement.executeQuery()方法执行SQL查询语句,返回ResultSet对象,可以遍历结果集获取查询结果。 ``` String sql = "select * from user"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(name + " " + age); } ``` 5. 关闭连接 使用Connection.close()方法关闭连接。 ``` conn.close(); ``` 以上是Java进行MySQL操作的基本步骤,具体操作需要根据业务需求来设计SQL语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值