springboot中sql注入与java安全开发
read file error: read notes: is a directory 2025-11-4 06:3:13 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

web后端进阶

一、多表关系

1.多表关系

  • 一对多(多对一)
    一对一
    多对多
    

2.解决方案

  • 一对多

    • 在数据库表中多的一方,添加字段,来关联一的一方的主键

  • 一对一

    • 在某一方添加一个字段,关联对方的主键(并且设置为unique)

  • 多对多

    • 需要新创建一个表实现

    • image-20251102201710201

3.物理外键

  • 现在已经不推荐,使用逻辑外键

  • 俩种添加方式
    -- 创建表时指定
    create table 表名(
        字段名 数据类型,
        ...
        [constraint] [外键名称] foreign key (外键字段名) references 主表 (字段名)	
    );
    -- 建完表后,添加外键
    alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表(字段名);
    
  • 也可以使用图形化界面添加

  • 通过右击表,点击showdiagram可以展现俩张表直接关系

    • image-20251102201314758

  • 使用物理外键约束后,更新父表会受限,从而保证数据一致性

二、多表查询

1.定义

  • 多表查询: 指从多张表中查询数据

  • 直接使用select * from dept,emp;会出现笛卡尔积

    • 即将所有情况全部组合

  • 加入约束,select * from dept,emp where dept.id = emp.dept_id;即可获取正常结果

2.分类

  • 连接查询

    • 内连接(查询交集部分级)

      • 隐式内连接

      • 查询交集部分级
        select * from dept,emp where dept.id = emp.dept_id;
        
      • 显式内连接

      • select emp.name,dept.name from emp inner join dept on emp.dept_id = dept.id;
            inner可以省略
        
    • 外连接

    • 左外连接与右外连接
          完全查询左边与完全查询右边
      select 字段列表 from 表1 left [outer] join 表2 on 连接条件 ...;  
      select emp.name,dept.name from emp left join dept on emp.dept_id = dept.id;
      
      
    • 将左边的全部挑出,同时右侧字段可以使用

    • 左右外连接可以互相转化

  • 子查询(SQL语句中嵌套select语句,称为嵌套查询,又称子查询。)

    • 标量子查询

      • 查询最早入职员工
            select * from emp where entry_date = (select min(entry_date) from emp)
        
    • 列子查询

      • select emp.name,dept.name from emp,dept 
            where emp.dept_id=dept.id and 
            dept_id in (select id from dept 

免责声明

1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。

3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/web/455512.html
如有侵权请联系:admin#unsafe.sh