第三周 学习的收获

SQL

33.成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
34.成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩
这两个题的重点是成绩是否重复,所以我们应该先在不重复的情况下查询出成绩最高的学生的信息,此处用到max()函数。而有重复的就可以用到之前查询到的结果作为条件,使结果返回多条记录。
查询时我们为了效果明显,可以在原本只有一条最高成绩记录的表中插入新的成绩信息,让表中多几条记录。
35.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
这里需要将自身作对比,所以要用到内连接。条件设为课程编号不同,学生编号和学生成绩相同。
这里有一点需要注意:直接按照以上条件查询出来的是有重复的,如下图:
在这里插入图片描述
这里的课程都出现了两次,因为在比较的时候a表和b表中值相等的情况取了两次。
需要对结果取唯一,用到group by语句,如下图:
在这里插入图片描述
HTML

标题,文字加粗居中(用时替代) #合并列: 合并之后删掉多余的两列 #合并行: ##合并之后去除多余 (垂直对齐方式)内容接触上单元格(top bottom left right) 水平对齐方式

#表格凸起,凹陷效果
立体表格效果其实就是将表格的亮边框颜色与暗边框颜色进行对比。
凸起:亮边框=black 暗边框=white
凹陷:亮边框=white 暗边框=black

##细线表格
【1】将表格自身的边框设置为0
border=0
【2】给表格设置背景颜色(也就是细线的颜色)
【3】设置单元格距离(西线的粗细)

**缩进技巧:tab向右缩进,shift tab向左缩进

*当中没有内容时默认不显示边框,如果想显示可以加一个空格
*超链接
链接的重要使用原则:回路。–优化:相关链接
链接类型:
【1】内部链接
首页 Java课程 网页设计课程 师资力量 视频下载
这样设计是为了链接的可用性:有去有回–让用户可以在想返回的时候直接点击“首页”即可
【2】外部链接
【3】e-mail链接
【4】局部链接:锚点(重要)
跳转到同一网页或其他文档中的指定位置
创建锚点:
显示内容
链接锚点:
显示内容
如果要跳转到另外一个页面的指定位置:
显示内容
【5】空链接
没有目标端点的链接
显示内容
例如:
设为首页

 添加收藏

【6】脚本链接

CSS

###css选择符
【1】选择符:指定要控制的对象
【2】选择符类型
(1)标签选择符
例如:p{ 属性:值;}
(2)ID选择符:ID具有唯一性,在网页中只出现一次。只 针对某一元素控制
例如:#ID{属性:值;}
(3)类选择符:针对某一类或某一些元素,控制其样式相 同。
例如:.类名称{属性:值;}
类定义后还要通过class="类名"应用
*同时给某个元素应用多个类,类名之间空格分割
例如:class=“类1 类2”
*类名或ID名不要用数字开头
【(4)】作用于所有元素:使用通配符

ps:*的作用范围很广,但效率很低,慎用。
##选择符的嵌套使用—包含选择符
如果我们针对某个元素的子元素进行控制,可以使用嵌套方式。不必再为子元素设置ID
语法:
父元素 子元素{属性:值;}
##选择符分组
多个选择符会有一些相同样式 ,这时我们可以把它们组成一个组
语法:
选择符1,选择符2,选择符3{属性:值;}

###css样式特点
【1】继承
网页中子元素继承父元素的"某些"特点
*"某些"而不是全部的原因:子元素有默认值时,使用 自己的默认值。
【2】层叠:子元素定义了与父元素相同的样式,会覆盖掉父 元素的样式,
后面的样式会覆盖前面的样式。

###css优先权

##css样式优先权
内联式>内嵌式>链接式>导入式
离得越近越优先
作用范围越小越优先

##css选择符优先权
行内>id>class>标签选择符
*特殊情况:提升优先权
用!important 加在想要提权的属性值后面

###css控制元素的某种状态—伪类
伪类语法:
元素名称:伪类名称{属性:值;}
例如:超链接的 鼠标经过状态
a:hover{text-decoration:underline;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在java中,有个List<PassengerDetailInfoPhoneNbr> phoneList的集合,数据为[{ "passengerPhoneNbr": "13614383602", "ecifPhoneNbr": "", "agentPhoneNbr": "13614380243", "customPhoneNbr": "", "chnName": "张忠", "oldFltDt": "2023-05-31 08:00:00", "oldDptAirportCd": "DSN", "oldArvAirportCd": "CGQ", "oldFltNbr": "KN2359", "newFltDt": "2023-06-01 08:00:00", "newDptAirportCd": "DSN", "newArvAirportCd": "CGQ", "newFltNbr": "KN2359" }],现在根据passengerPhoneNbr,ecifPhoneNbr,agentPhoneNbr,customPhoneNbr,去重新生成数据,最后的格式为[{ "phoneEncryption": "13614383602", "chnName": "张忠", "oldFltDt": "2023-05-31 08:00:00", "oldDptAirportCd": "DSN", "oldArvAirportCd": "CGQ", "oldFltNbr": "KN2359", "newFltDt": "2023-06-01 08:00:00", "newDptAirportCd": "DSN", "newArvAirportCd": "CGQ", "newFltNbr": "KN2359" }, { "phoneEncryption": "", "chnName": "张忠", "oldFltDt": "2023-05-31 08:00:00", "oldDptAirportCd": "DSN", "oldArvAirportCd": "CGQ", "oldFltNbr": "KN2359", "newFltDt": "2023-06-01 08:00:00", "newDptAirportCd": "DSN", "newArvAirportCd": "CGQ", "newFltNbr": "KN2359" }, { "phoneEncryption": "13614380243", "chnName": "张忠", "oldFltDt": "2023-05-31 08:00:00", "oldDptAirportCd": "DSN", "oldArvAirportCd": "CGQ", "oldFltNbr": "KN2359", "newFltDt": "2023-06-01 08:00:00", "newDptAirportCd": "DSN", "newArvAirportCd": "CGQ", "newFltNbr": "KN2359" }, { "phoneEncryption": "", "chnName": "张忠", "oldFltDt": "2023-05-31 08:00:00", "oldDptAirportCd": "DSN", "oldArvAirportCd": "CGQ", "oldFltNbr": "KN2359", "newFltDt": "2023-06-01 08:00:00", "newDptAirportCd": "DSN", "newArvAirportCd": "CGQ", "newFltNbr": "KN2359" } ]
06-13
你可以使用Java 8的Stream API和lambda表达式来实现该操作。首先,你需要创建一个新的PassengerDetailInfoPhoneNbr对象的列表。然后,使用forEach()方法对原始列表中的每个元素进行遍历,根据每个元素的passengerPhoneNbr、ecifPhoneNbr、agentPhoneNbr、customPhoneNbr属性的值来创建新的PassengerDetailInfoPhoneNbr对象,并将其添加到新的列表中。最后,将新列表作为结果返回即可。以下是代码示例: ``` List<PassengerDetailInfoPhoneNbr> phoneList = ... // 从某个地方获取PassengerDetailInfoPhoneNbr对象列表 List<PassengerDetailInfoPhoneNbr> newPhoneList = new ArrayList<>(); phoneList.forEach(phone -> { // 根据passengerPhoneNbr、ecifPhoneNbr、agentPhoneNbr、customPhoneNbr属性的值创建新的PassengerDetailInfoPhoneNbr对象 PassengerDetailInfoPhoneNbr newPhone1 = new PassengerDetailInfoPhoneNbr(); newPhone1.setPhoneEncryption(phone.getPassengerPhoneNbr()); newPhone1.setChnName(phone.getChnName()); newPhone1.setOldFltDt(phone.getOldFltDt()); newPhone1.setOldDptAirportCd(phone.getOldDptAirportCd()); newPhone1.setOldArvAirportCd(phone.getOldArvAirportCd()); newPhone1.setOldFltNbr(phone.getOldFltNbr()); newPhone1.setNewFltDt(phone.getNewFltDt()); newPhone1.setNewDptAirportCd(phone.getNewDptAirportCd()); newPhone1.setNewArvAirportCd(phone.getNewArvAirportCd()); newPhone1.setNewFltNbr(phone.getNewFltNbr()); newPhoneList.add(newPhone1); PassengerDetailInfoPhoneNbr newPhone2 = new PassengerDetailInfoPhoneNbr(); newPhone2.setPhoneEncryption(phone.getEcifPhoneNbr()); newPhone2.setChnName(phone.getChnName()); newPhone2.setOldFltDt(phone.getOldFltDt()); newPhone2.setOldDptAirportCd(phone.getOldDptAirportCd()); newPhone2.setOldArvAirportCd(phone.getOldArvAirportCd()); newPhone2.setOldFltNbr(phone.getOldFltNbr()); newPhone2.setNewFltDt(phone.getNewFltDt()); newPhone2.setNewDptAirportCd(phone.getNewDptAirportCd()); newPhone2.setNewArvAirportCd(phone.getNewArvAirportCd()); newPhone2.setNewFltNbr(phone.getNewFltNbr()); newPhoneList.add(newPhone2); PassengerDetailInfoPhoneNbr newPhone3 = new PassengerDetailInfoPhoneNbr(); newPhone3.setPhoneEncryption(phone.getAgentPhoneNbr()); newPhone3.setChnName(phone.getChnName()); newPhone3.setOldFltDt(phone.getOldFltDt()); newPhone3.setOldDptAirportCd(phone.getOldDptAirportCd()); newPhone3.setOldArvAirportCd(phone.getOldArvAirportCd()); newPhone3.setOldFltNbr(phone.getOldFltNbr()); newPhone3.setNewFltDt(phone.getNewFltDt()); newPhone3.setNewDptAirportCd(phone.getNewDptAirportCd()); newPhone3.setNewArvAirportCd(phone.getNewArvAirportCd()); newPhone3.setNewFltNbr(phone.getNewFltNbr()); newPhoneList.add(newPhone3); PassengerDetailInfoPhoneNbr newPhone4 = new PassengerDetailInfoPhoneNbr(); newPhone4.setPhoneEncryption(phone.getCustomPhoneNbr()); newPhone4.setChnName(phone.getChnName()); newPhone4.setOldFltDt(phone.getOldFltDt()); newPhone4.setOldDptAirportCd(phone.getOldDptAirportCd()); newPhone4.setOldArvAirportCd(phone.getOldArvAirportCd()); newPhone4.setOldFltNbr(phone.getOldFltNbr()); newPhone4.setNewFltDt(phone.getNewFltDt()); newPhone4.setNewDptAirportCd(phone.getNewDptAirportCd()); newPhone4.setNewArvAirportCd(phone.getNewArvAirportCd()); newPhone4.setNewFltNbr(phone.getNewFltNbr()); newPhoneList.add(newPhone4); }); // 返回新的PassengerDetailInfoPhoneNbr对象列表 return newPhoneList; ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值