2021-7-19学习总结

上午9点~中午12点

日常vj刷题,二分查找求最大值最小化(最小值最大化)问题。这类题目的核心是找到二分的范围区间进行二分查找,二分查找的条件通过一个judge函数检测,judge函数在不同题中有不同写法,但目的都是来判断一个解是否合法。

下午2点40~5点40

学习Java,Java疯狂讲义607~617
1,数据库函数:分为单行函数和多行函数,SQL中的函数是独立的程序单元,使用函数无需使用任何类。
2,单行函数的特征:
单行函数的参数可以是变量、常量、数据列,单行函数可以接受多个参数,但只能返回一返回值
单行函数会对每行单独起作用,每行返回一个结果
单行函数支持嵌套使用
3,MySQL提供了如下几个处理null的函数:
ifnull(e1,e2);如果e1为null,则返回e2,否则则返回e1
nullif(e1,e2);如果e1和e2相等则返回null,否则则返回e1
if(e1,e2,e3);如果e1为true,不等于0,且不等于null,则返回e2,否则返回e3
isnull(e1);判断e1是否为null,是则返回true,否则返回false
4,分组和组函数:
avg() 求平均值
sum() 求和
max () 求最大值
min() 求最小值
count() 求数量和
count(1) 推荐
count() 返回表中满足where条件的行的数量
count(列):返回列值非空的行的数量
5,为了记录显示分组可以在select语句后使用group by字句,group by语句后通常跟一个或者多个列名,例:

count (*)  将会对每组得到一个结果
select count(*)
from student_table
#将java_teacher列相同的记录当成一组
group by java_teacher;

6,如果需要对分组进行过滤,则应该使用having语句,having与where的区别:
不能再where字句中过滤组,仅用于过滤行,过滤组必须使用having字句
不能再where字句中使用组函数,having字句才可以使用组函数
7,连接查询:
交叉连接:

select s.*,teacher_name
from student_table s
cross join teacher_table t;

自然连接:

select s.*,teacher_name
from student_table s
natural join teacher_table t;

using字句连接,用于显示指定两个表中的同名列作为连接条件,两个表中必须有同名列,否则会出现错误。
on子句连接:连接条件放在on字句中指定。
左右、全外连接。
8,子查询:就是指在查询语句中嵌套另一个查询,支持多层嵌套,

select *     把子查询当作数据表。
from (select * from student_table) t
where t.java_teacher > 1;

如果需要子查询返回多个返回值则需要使用in,any,all等关键字。in可以单独使用,可以把子查询返回的多个值当成一个值列表。

select *
from student_table
where student_id in
(select teacher_id
from teacher_table);

any和all可以与>=、>、<、<=、<>、=等运算符结合使用,与any分别表示大于等于、大于、小于、小于等于、不等于、等于其中任何一个值,与all使用分别表示大于等于、大于、小于、小于等于、不等于、等于全部值。
<any只要小于值列表中的最大值即可,>any只要大于值列表中的最小值即可。<all要求小于值列表中的最小值,>all要求大于值列表中的最大值。

晚上7点~9点20

学习Java,Java疯狂讲义617~623,679-684JDBC的典型用法
DriverManager:用于管理JDBC驱动的服务类。
Connection:代表数据库连接对象。
Statement:用于执行SQL语句的工具接口。
ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得数据。
连接已有数据库:

import java.sql.*;

public class ConnMySql {
    public static void main(String[] args) throws Exception{
        Class.forName("com.mysql.cj.jdbc.Driver");
        try {
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://127.0.0.1:3306/db1?useSSL = false&serverTimezone = UTC",
                    "root","ttddww20021208");
            Statement stmt = conn.createStatement();
            if(conn != null) {
                System.out.println("yes");
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

连接成功返回yes。
访问文件和目录:

String getName() #返回次File对象表示的文件或者最后子一级路径名
String getPath() #返回此File对象对应的路径名
File getAbsoluteFile() #返回此File对象的绝对路径名
File getAbsolutePath() #返回此File对象所对应的绝对路径名String getParent() #返回此File对象所对应目录最后一级的父目录名
String getParent() #返回此File对象所对应目录最后一级的父目录名
long lastModified() #返回最后修改的时间
long length() #返回文件内容的长度
boolean createNewFile() #当此File对象所对应的文件不存在时,创建该File对象所对应的新文件,如果创建成功返回True,否则返回False
void deleteOnExit() #注册一个删除钩子,指定当JVM虚拟机退出时删除File对象所对应的文件夹和文件static File createTempFile(String prefix, String suffix) #在默认的临时文件下创建一个临时的空文件,使用给定前缀、系统随机生成
static File createTempFile(String prefix, String suffix) #在默认的临时文件下创建一个临时的空文件,使用给定前缀、系统随机生成
boolean mkdir() #试图创建一个File对象所对应的目录,创建成功返回True
String[] list() #列出File对象的所有文件名和路径名,返回String数组
File[] listFile() #列出File对象的所有子文件名和路径,返回File数组
static File[] listRoots() #列出系统所有的根路径

晚上9点20~10点

每日总结

7-18总结

7-18学习总结.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值