Java菜鸟学习日记18

SQL关联语句
user
1 张三 1
2 李四 2
3 王五 2
4 赵六  
department
1 教学部  
2 招生部  
3 班主任部  
  1. user LEFT JOIN department ON user.id = departmrnt.id
    1. 将department表中的对应数据填充在对应的位置,user表的行数不变
    2. 有对应关系则对应,无则为null
  2. user RIGHT JOIN department ON user.id = departmrnt.id
    1. 以department表为主,将用户表中的数据对应过来。如果用户表中对应了多条,则department复制出相应的条数
    2. 最终表行数可能与department不相等,通常会多
U
user1 1 张三 1
user2 2 李四 2
user3 3 王五 2
user4 4 赵六  
D
department1 1 教学部
department2 2 招生部
department3 3 班主任部
U*D
user1*department1 user1*department2 user1*department3
user2*department1 user2*department2 user2*department3
user3*department1 user3*department2 user3*department3
user4*department1 user4*department2 user4*department3
然后找到每一个user中departmentid对应的department中的departmentid
user1*department1
user2*department2
user3*department2
user4*null
得到的user表行数不变
D*U
department1*user1 department1*user2 department1*user3 department1*user4
department2*user1 department2*user2 department2*user3 department2*user4
department3*user1 department3*user2 department3*user3 department3*user4
然后找到每一个department中departmentid对应的user中的departmentid
department1*user1
department2*user2
department2*user3
department3*null
得到的department表行数可能增加
SELECT u.*,d.* FROM u,d:相当于u x d (笛卡尔积)
SELECT d.*,u.* FROM u,d:想到与d x u (笛卡尔积)
SELECT u.*,d.* FROM u INNER JOIN d:如果希望从笛卡尔积中筛选数据,可以加ON u.xxx=d.xxx
SELECT u.*,d.* FROM u LEFT JOIN d ON u.xxx=d.xxx
SELECT u.*,d.* FROM u RIGHT JOIN d ON u.xxx=d.xxx
左连接和右连接的区别在于以哪个表为主(主表中的数据都会出现在结果中,即使没有匹配数据)
外键
  • 外键是一种约束条件,设计师使用外键建立表与表之间的连接关系,外键指定的连接有业务意义。它可以强制保持数据的对应关系,不允许意外的数据(没有对应上的数据)存在。它还可以在外键表数据变化时,级联更新、删除或者设置NULL关联表主表中的数据
  • 外键的存在是对关联查询(左、右、内连接等)的一种规范
  • 外键保持数据一致性的选项
    • Casvade:级联(当外键表(department)中的数据变化时,会更新、删除主表(user)中的数据)
    • Set Null:设置为空(当外键表(department)中的数据变化时,会将主表(user)中的数据设置为Null,user数据不会被删除)
    • No Action/Restrict:禁止操作(如果更新外键表时,主表中有与其关联的数据,则更新操作失败,相当于未执行任何操作。如果非要更新、删除则应现将关联数据删除或者通过设置为其他值的方式断开关联关系)
  • 命名规则:fk_主表名_关联表名
    • fk_:开头一看就要知道是外键
    • 主表名_关联表名:可以很清楚的看到是哪两个表之间的关系
JSP incllude
JSP 的 include 指令可以实现JSP代码的共享引用,可以解决JSP代码的重复问题
代码重复会造成严重的后期维护问题,非常不利于代码的修改、升级
代码重复是质量查的最常见表现,是重构要消灭的第一目标。
不断地通过重构消除项目中的重复代码,就能够提升能力。
为什么做移动页面要使用谷歌浏览器
因为IOS和Android系统中的浏览器都是WebKit内核,而谷歌浏览器使用的就是WebKit内核
Firefox的查看器和网络监视等工具是中文的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值