总结
总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
SELECT LENGTH( ‘PostgreSQL12数据库’ )
– 字符串小写与大写
– postgresql,POSTGRESQL
SELECT LOWER( ‘PostgreSQL’ ),UPPER( ‘PostgreSQL’ )
– 字符串出现的位置(下标从1开始)
– 8
SELECT POSITION( ‘S’ IN ‘PostgreSQL’ );
– 获取子字符串(下标从1开始)
– SQL
SELECT SUBSTRING( ‘PostgreSQL’ FROM 8 FOR 3 );
– 删除字符串的指定字符
– PostgreSQL
SELECT TRIM( BOTH ‘s’ FROM ‘sPostgreSQLss’ );
– 删除字符两端空格
– PostgreSQL
SELECT TRIM( ’ PostgreSQL ’ )
– 替换指定位置的字符
– PostgreSQL
SELECT OVERLAY( ‘PxxxgreSQL’ PLACING ‘ost’ FROM 2 FOR 3 );
– 替换所有子字符为另一个字符
– PostgreSQL
SELECT REPLACE( ‘PostgresQL’, ‘sQ’, ‘SQ’ );
– 根据分隔字符返回第x个字符串
– PostgreSQL
SELECT SPLIT_PART( ‘MySQL|PostgreSQL|Greenplum’, ‘|’, 2 );
– 分组拼接字符串 类似与 group_concat
STRING_AGG(fields, ‘,’ )
STRING_AGG(fields, ‘,’ ORDER BY fields)
#### 2.2 日期函数
| 函数 | 说明 | 返回类型 |
| --- | --- | --- |
| current\_date | 当前日期 | date |
| current\_time | 当前时间 | time with time zone |
| current\_timestamp、now() | 当前时间戳 | timestamp with time zone |
| date\_part(text, timestamp) | 获取子域(等效于extract) | double precision |
| extract(unit from date) | 获取子域 | double precision |
| date\_trunc(text, timestamp) | 截取指定的精度 | timestamp |
部分实例:
– 获取当前的日期、时间、时间戳
– 2022-10-19,15:22:38.890969+08,2022-10-19 15:22:38.890969+08,2022-10-19 15:22:38.890969+08
SELECT CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,now()
– 获取子域 year,month,day,hour,minute,second
– 2022
SELECT date_part(‘year’,TIMESTAMP’2022-10-19 11:07:30’)
– 10
SELECT extract(‘month’ FROM now())
– 截取指定的精度
– now() 2022-10-19 16:43:17.895054+08
– 2022-10-19 00:00:00+08
SELECT date_trunc(‘day’, now());
– 2022-10-19 16:00:00+08
SELECT date_trunc(‘hour’, now());
其他实例:
– 日期加减 year,month,day,hour,minute,second
– 2022-10-19 13:51:00.409176+08 --> 2022-11-18 13:51:00.409176+08
SELECT now( ) + INTERVAL ‘1 month’ - INTERVAL ‘1 day’
– 字符串转时间戳
– 2022-10-19 16:53:12+08
SELECT to_timestamp( ‘2022-10-19 16:53:12’, ‘YYYY-MM-DD hh24:mi:ss’ )
– 日期转字符串
– 2022-10-19 16:52:28
SELECT to_char ( now( ), ‘YYYY-MM-DD hh24:mi:ss’ )
– 2018-12-06
SELECT to_char ( CAST (‘’|| 20181206 AS TIMESTAMP ), ‘YYYY-MM-DD’ )
– 空值函数(默认值的类型要跟字段的值类型一致)
SELECT COALESCE( fieldsName, fieldsDefaultValue)
#### 2.3 其他函数
– 根据分组将字段值放入array并获取排序后的值
SELECT ( ARRAY_AGG ( fields order by fieldsName desc ) ) [ 1 ] FROM table
### 3.主要修改
#### 3.1字段别名
– 字段别名(需要添加双引号 否则会变小写)
SELECT fields_name AS “fieldsName” FROM table_name
#### 3.2 concat
– MySQL
concat(‘%’, #{keyword}, ‘%’)
– PostgreSQL
‘%’ || #{keyword} || ‘%’
### 4.替换语句
数据库需要安装以下扩展:
– 用于uuid函数
CREATE extension “uuid-ossp”;
以下使用bat脚本进行全量替换:
| 原始值 | 替换值 |
| --- | --- |
| STR\_TO\_DATE | TO\_TIMESTAMP |
| str\_to\_date | to\_timestamp |
| %Y-%m-%d %H:%i:%s | YYYY-MM-DD hh24:mi:ss |
| %Y-%m-%d | YYYY-MM-DD |
| %H:%i:%s | hh24:mi:ss |
| %Y-%m | YYYY-MM |
| date\_format | to\_char |
| sysdate() | to\_timestamp ( ‘’ || now( ), ‘YYYY-MM-DD hh24:mi:ss’ ) |
| uuid() | uuid\_generate\_v4() |
| IFNULL | COALESCE |
| ifnull | coalesce |
### 5.脚本分享
#### 5.1 脚本内容
@echo off
setlocal EnableDelayedExpansion
:: (1)替换 STR_TO_DATE 函数为 TO_TIMESTAMP
set “strOld1=STR_TO_DATE”
set “strNew1=TO_TIMESTAMP”
echo (1)Replac: STR_TO_DATE TO TO_TIMESTAMP
:: (2)替换 str_to_date 函数为 to_timestamp
set “strOld2=str_to_date”
set “strNew2=to_timestamp”
echo (2)Replac: str_to_date TO to_timestamp
for /f %%i in (‘dir /b /s /a:-d *.xml’) do (
pwsh -Command "(gc %%i) -replace ‘%strOld1%’, ‘%strNew1%’ -replace ‘%strOld2%’, ‘%strNew2%’ | Out-File %%i -Encoding utf8 "
)
:: (3)替换日期格式 %Y-%m-%d %H:%i:%s 为 YYYY-MM-DD hh24:mi:ss
set “strOld1=%%Y-%%m-%%d %%H:%%i:%%s”
set “strNew1=YYYY-MM-DD hh24:mi:ss”
echo (3)Replac: %%Y-%%m-%%d %%H:%%i:%%s TO YYYY-MM-DD hh24:mi:ss
:: (4)替换日期格式 %Y-%m-%d 为 YYYY-MM-DD
set “strOld2=%%Y-%%m-%%d”
set “strNew2=YYYY-MM-DD”
echo (4)Replac: %%Y-%%m-%%d TO YYYY-MM-DD
:: (5)替换日期格式 %H:%i:%s 为 hh24:mi:ss
set “strOld3=%%H:%%i:%%s”
set “strNew3=hh24:mi:ss”
echo (5)Replac: %%H:%%i:%%s TO hh24:mi:ss
最后我们该如何学习?
1、看视频进行系统学习
这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring源码深度解析:
Mybatis 3源码深度解析:
Redis学习笔记:
Spring Boot核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。