hivesql的基础知识点

news2024/10/6 12:34:01

目录

一、各数据类型的基础知识点

1.1 数值类型

整数

小数

float

double(常用)

decimal(针对高精度)

1.2 日期类型

date

datetime

timestamp

time

year

1.3 字符串类型

char

varchar / varchar2

blob /text

 tinyblob / tinytext

mediumblob / mediumtext

longblob / longtext

string(常用)

二、Hive中的常用函数

2.1 数值转换函数

round

取整 

精度取整函数

floor(向下取整函数)

ceil(向上取整函数)

abs(绝对值函数)

rand(取随机数函数)

2.2 日期函数

from_unixtime(时间戳转日期函数)

unix_timestamp(日期转时间戳函数)

to_date(日期时间转日期函数)

year(日期转年函数)

month(日期转月函数)

day(日期转天函数)

hour(日期转小时函数)

minute(日期转分钟函数)

second(日期转秒函数)

weekofyear(日期转周函数)

datediff(日期比较函数)

date_add(日期增加函数)

date_sub

months_between

2.3 条件函数

 if

coalesce() /nvl(非空函数)

case  when

2.4 字符串函数

length(字符串长度函数)

reverse(字符串反转函数)

concat(字符串拼接函数)

concat_ws(带分隔符的字符串连接函数)

substr / substring(字符串截取函数)

upper  (字符串转大写函数)

lower  (字符串转小写函数)

trim(去空格函数)

regexp_replace(正则表达式的替换函数)

regexp_extract(正则表达式的解析函数)

get_json_object(json解析函数)

split(分割字符串函数)

explode(炸裂函数)

posexplode(炸裂函数,带有下角标pos)

2.5 聚合函数

count(个数统计函数)

sum(总和统计函数)

avg(平均值统计函数)

min(最小值统计函数)

max(最大值统计函数)

高级聚合函数

   collect_list(多行变一行,不去重)

   collect_set(多行变一行,去重)

2.6 开窗函数

聚合函数

前后函数

lag

lead

头尾函数

first_value

last_value

排名函数

一、各数据类型的基础知识点

1.1 数值类型

        int 代表整数(hive常用bigint): float代表小数,double代表双精度,double比float精度更高,小数位更多。

整数

  • int

        有符号(signed)的和无符号(unsigned)的。有符号的取值区间为-2147483648~2147483647,无符号的取值区间为0~ 4294967295。宽度最多为11个数字 -int(11)

  • tinyint

       有符号和无符号的。有符号的取值范围是-128~127, 无符号的取值范围是0~255。 宽度最多为4个数字 -tinyint(4)

  • smallint

       有符号和无符号的。有符号的取值范围是-32767~32767 ,无符号的取值范围是0~65535。 宽度最多为4个数字 -tinyint(4)

  • mediumint

        有符号和无符号的。有符号的取值范围是-8388608~8388607 ,无符号的取值范围是0~16777215。 宽度最多为9个数字 -mediumint(9)

  • bigint(常用)

       有符号的和无符号的。宽度最多为20个数字-bigint(20)

小数

  • float

        代表小数,默认是(10,2)

  • double(常用)

        代表双精度,默认是(16,4)

  • decimal(针对高精度)

        比float精度更高,小数位更多,默认为(16,4)

1.2 日期类型

  • date

       代表 YYYY-MM-DD格式,例如:1989-12-31

  • datetime

        代表 YYYYY-MM-DD HH:MM:SS 格式,例如:1989-12-31 15:30:00

  • timestamp

        代表 时间戳,例如:1989年12月31日下午15:30,在数据库中存储为:19891231153000

  • time

       代表 HH:MM:SS格式

  • year

       以2位或4位格式存储年份值

  • 补充

1.3 字符串类型

  • char

       固定长度字符串(可以是汉字或字母),长度是1-255。如果内容小于指定长度,右边填充空格,如果不指定长度,默认是1。

  • varchar / varchar2

        可变字符串,长度取值是1-255。创建表使用该类型时必须指定长度。

  • blob /text

      最大长度65535,用于存储二进制大数据,如图片,无法指定长度。两者区别:blob类型对于大小写比较敏感。

  •  tinyblob / tinytext

        最大长度是255,不能指定长度。

  • mediumblob / mediumtext

       最大长度是16777215字符。

  • longblob / longtext

       最大长度是429496295字符。

  • string(常用)

二、Hive中的常用函数

2.1 数值转换函数

round

取整 
  • 语法:round(double a)
  • 返回值:bigint
  • 说明:返回double类型的整数值部分(遵循四舍五入)
  • 举例:select round(4.1578 ) --> 4
精度取整函数
  • 语法:round(double a, int b)
  • 返回值:double
  • 说明:返回指定精度的double类型
  • 举例:select round(4.1578 , 2)  --> 4.16

floor(向下取整函数)

  • 语法:floor(double a)
  • 返回值:bigint
  • 说明:返回等于或者小于该double变量的最大整数
  • 举例:select floor(34.12)  -->  34

ceil(向上取整函数)

  • 语法:ceil(double a)
  • 返回值:bigint
  • 说明:返回大于或者等于该double变量的最小的整数
  • 举例:select ceil(34.12) --> 35

abs(绝对值函数)

  • 语法:abs(double a )  、abs(int a)
  • 返回值:double 、int
  • 说明:返回数值a的绝对值
  • 举例:select  abs( - 3.9)  -->  3.9

rand(取随机数函数)

  • 语法:rand() 、rand(int n)
  • 返回值:double
  • 说明:rand(): 返回[0,1]范围内的随机数;
  • 举例:select rand()

2.2 日期函数

from_unixtime(时间戳转日期函数)

  • 语法:from_unixtime(bigint unixtime , string format)
  • 返回值:double
  • 说明:将unix时间戳转换到当前时区 的时间格式 ( 从1970-01-01 00:00:00 UTC 到指定时间相差的秒数 )
  • 举例:select from_unixtime(1323308943,'yyyyMMdd')  --> 20111208 

unix_timestamp(日期转时间戳函数)

  • 语法:unix_timestamp(string date)  、unix_timestamp(string date,string pattern)
  • 返回值:bigint
  • 说明:将格式为"yyyy-MM-dd HH:mm:ss"的日期 转换成 unix的时间戳。如果转换失败,则返回值为0;
举例:
select unix_timestamp('2024-02-01 22:17:23')  --> 1706825843
select unix_timestamp('20240201 20:17:11','yyyyMMdd HH:mm:ss') --> 1706825843

to_date(日期时间转日期函数)

  • 语法:to_date(string timestamp)
  • 返回值:string
  • 说明:返回日期时间字段中的日期部分
  • 举例:select to_date('2024-02-01 22:17:23') ---> 2024-02-01

year(日期转年函数)

  • 语法:year(string date)
  • 返回值:int
  • 说明:返回日期中的年份
  • 举例:select  year('2024-02-01 22:17:23')  ---> 2024 

month(日期转月函数)

  • 语法:month(string date)
  • 返回值:int
  • 说明:返回日期中的月份
  • 举例:select  month('2024-02-01 22:17:23')  ---> 2

day(日期转天函数)

  • 语法:day(string date)
  • 返回值:int
  • 说明:返回日期中的天
  • 举例:select  day('2024-02-01 22:17:23' ) ---> 1

hour(日期转小时函数)

  • 语法:hour(string date)
  • 返回值:int
  • 说明:返回日期中的小时
  • 举例:select  hour('2024-02-01 22:17:23') --->22

minute(日期转分钟函数)

  • 语法:minute(string date)
  • 返回值:int
  • 说明:返回日期中的分钟
  • 举例:select  minute('2024-02-01 22:17:23')  ---> 17

second(日期转秒函数)

  • 语法:second(string date)
  • 返回值:int
  • 说明:返回日期中的秒
  • 举例:select  ('2024-02-01 22:17:23')  ---> 23

weekofyear(日期转周函数)

  • 语法:weekofyear(string date)
  • 返回值:int
  • 说明:返回该日期在当年的周数
  • 举例:select weekofyear ('2024-02-01 22:17:23') --->5

datediff(日期比较函数)

  • 语法:datediff(string enddate,string startdate)
  • 返回值:int
  • 说明:返回   结束日期减去开始日期的天数
  • 举例:select datediff ('2024-02-01','2024-01-28')  ---> 4

date_add(日期增加函数)

  • 语法:date_add(string startdate , int days)
  • 返回值:string
  • 说明:返回   开始日期startdate 加上days天后的日期
  • 举例:select  date_add('2024-02-01',10)  ---> 2024-02-11

date_sub

  • 语法:date_sub(string startdate,int days)
  • 返回值:string
  • 说明:返回   开始日期startdate 减去days天后的日期
  • 举例:select  date_sub('2024-02-01',3) --->2024-01-29

months_between

  • 语法:months_between(string enddate,string startdate)
  • 返回值:double
  • 说明:返回   结束日期减去开始日期的月份数
举例:
select  months_between('2024-02-01','2024-01-01')  --> 1
select  months_between('2024-02-01','2024-01-11')  -->  0.67741935 

2.3 条件函数

 if

  • 语法:if(boolean testCondition, T valueTrue, T valueFalseOrNull)
  • 返回值:T
  • 说明:当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
  • 举例:select if(1=2,100,200)  --> 200

coalesce() /nvl(非空函数)

  • 语法:coalesce(T v1,T v2 ...)
  • 返回值:T
  • 说明:返回参数中的第一个非空值,如果所有值都为null,那么直接返回null
  • 举例:select coalesce(null,'100','50') --> 100
  • 两者区别
1.coalesce
   coalesce函数语法是:coalesce(表达式1,表达式2.....表达式n); coalesce函数的返回结果是第一个非空表达式,如果全是空,则返回空。
   coalesce函数的处理参数个数没有限制,使用时需要注意:对处理参数的数据类型有严格要求,所有表达式值是同一类型(转换成同一类型也可)。

2.nvl 
  nvl函数语法是:nvl(默认值,表达式); 如果默认值不为空返回默认值,如果默认值是空,则返回 表达式,如果两者都为空则返回空。
  nvl函数的处理参数个数有限,只能传两个参数。使用时需注意:“默认值”,“表达式”的值的数据类型没有要求,可相同也可不同。

case  when

  • 语法:case column  when vlaue1  then result1 
                                     when vlaue1  then result2
              else esult3
              end  as  column1
  • 返回值:T
  • 说明:如果column等于 vlaue1,那么返回result1 ; 如果column等于 vlaue2,那么返回result2;否则返回result3
举例:
select case 100  when 500 then 'false'
                 when 100 then 'true'
 else '?'  end ;  最终的输出结果是:true

2.4 字符串函数

length(字符串长度函数)

  • 语法:length(string A)
  • 返回值:int
  • 说明:返回字符串的长度
  • 举例:select  length('sghanan') ; ---> 7 

reverse(字符串反转函数)

  • 语法:reverse(string A)
  • 返回值:string
  • 说明:返回字符串A的反转结果
  • 举例:select  reverse('sghanxh') ; --->  hxnahgs 

concat(字符串拼接函数)

  • 语法:concat(string A ,string B.......)
  • 返回值:string
  • 说明:返回字符串拼接后的结果,支持输入任意个数的字符串
  • 举例:select  concat('ad','cv','op') ;---> adcvop

concat_ws(带分隔符的字符串连接函数)

  • 语法:concat_ws(string SEP, string A ,string B.......)
  • 返回值:string
  • 说明:返回输入字符串连接后的结果,SEP表示各个字符串的分隔符
  • 举例:select  concat_ws('|','ad','cv','op') ;---> ad|cv|op

substr / substring(字符串截取函数)

  • 语法:subtr( string A , int start) , substring( string A ,  int start )

        start 代表的是:截取起始的位置(从1 开始计数)

  • 返回值:string
  • 说明:截取从start 位置到结尾的字符串
  • 举例:select substr( 'abcde' ,3)  --> cde

                   select substr( 'abcde' ,-1)  --> e

upper  (字符串转大写函数)

  • 语法:upper(string A)
  • 返回值:string
  • 说明:返回字符串A的大写格式
  • 举例:select upper('absSedF')   ----> ABSSEDF

lower  (字符串转小写函数)

  • 语法:lower(string A)  
  • 返回值:string
  • 说明:去除字符串两边的空格
  • 举例:select  lower('absSedF')   ----> abssedf

trim(去空格函数)

  • 语法:trim(string A)
  • 返回值:string
  • 说明:返回字符串A的小写格式
  • 举例:select trim('  absSedF ')   ----> absSedF

                  select length('  absSedF ')    ---> 10

regexp_replace(正则表达式的替换函数)

  • 语法:regexp_replace(string A, string B, string C)
  • 返回值:string
  • 说明:将字符串A中符合java正则表达式的B替换成C;注意:有些情况下要使用转义字符;
举例:
select regexp_replace('foobasr' ,  'oo|ar','')  ----> fbasr
select regexp_replace('foobasr' ,  'oo|ba','')   --->fsr 
ps:正则表达式中的 | 竖线代表的是:'或'的意思,其中有一个为true,那整体就是true  

regexp_extract(正则表达式的解析函数)

  • 语法:regexp_extract(string subject, string pattern, int index)
  • 返回值:string
  • 说明:将字符串subject 按照pattern正则表达式的规则拆分,返回index指定的字符
    举例:
    select regexp_extract('foothebar','foo(.*?)(bar)' ,0)  ---->  foo
    select regexp_extract('foothebar','foo(.*?)(bar)' ,1)----> the
    select regexp_extract('foothebar','foo(.*?)(bar)' ,2) ---> bar
    上述代码,会将字符串 foothebar 拆分成 foor, the,bar;  对应的index 索引分别是:0,1,2 

get_json_object(json解析函数)

  • 语法:get_json_object(string json_string, string  path)
  • 返回值:string
  • 说明:解析json 的字符串json_string, 返回path指定的内容,如果输入的json字符串无效,那么返回null

split(分割字符串函数)

  • 语法:split(string str, string pat)
  • 返回值:array
  • 说明:按照pat分隔符分割 str, 返回分割后的字符串数组
select split('adgncf','n') --> ["adg","cf"]  

explode(炸裂函数)

  • 语法:lateral view explode(split(string str, string pat)) tmp as  column1
  • 返回值:string
  • 说明:按照pat分隔符分割 str,并将数组中的内容炸裂成多行字符串
举例:
select  student_score  from test lateral_view  explode(split(student_score,','))  sc as student_score 

posexplode(炸裂函数,带有下角标pos)

  • 语法:lateral view posexplode(split(string str, string pat)) tmp as  pos,item
  • 返回值:string
  • 说明:按照pat分隔符分割 str,并将数组中的内容炸裂成多行字符串(炸裂带有下角标pos)
举例:
select   student_name,
         student_score 
 from test
 lateral_view  posexplode(split(student_name,','))  sn as student_name_index, student_name
 laretal view posexplode(split(student_score,',')) sc as  student_score_index,student_score
 where student_name_index =  student_score_index ;

  ps: 炸裂函数的具体使用场景见文章:
HiveSQL题——数据炸裂和数据合并-CSDN博客文章浏览阅读711次,点赞17次,收藏11次。HiveSQL题——数据炸裂和数据合并https://blog.csdn.net/SHWAITME/article/details/135952216?spm=1001.2014.3001.5501

2.5 聚合函数

count(个数统计函数)

  • 语法:count(*),count(col)计数
  • 返回值:int
  • 说明:count(*)会统计包括null值在内的行; 
               count(expr)返回指定字段的个数(会过滤null值)
               count(distinct expr)返回指定字段的去重后个数(会过滤null值)
  • 举例:select count(user_id) from table;

sum(总和统计函数)

  • 语法:sum(col)
  • 返回值:double
  • 说明:sum(col) 统计某个结果集中col列相加的结果;
             sum(distinct  col )某个结果集中col列去重后相加的结果
  • 举例:select sum(*) from table;

avg(平均值统计函数)

  • 语法:avg(col) ,avg(distinct col)
  • 返回值:double
  • 说明:avg(col)统计某个结果集中col列的平均值;
              avg(distinct col)统计某个结果集中col列去重后的平均值
  • 举例:select avg(score) from table;

min(最小值统计函数)

  • 语法:min(col)
  • 返回值:double
  • 说明:统计某个结果集中col列的最小值
  • 举例:select min(score) from table

max(最大值统计函数)

  • 语法:max(col)
  • 返回值:double
  • 说明:统计某个结果集中col列的最大值
  • 举例:select max(score) from table
-- 总结:
1.count(*)操作时会统计null值,count(column)会过滤掉null值;
2.事实上除了count(*)计算,剩余的聚合函数例如: max(column),min(column),avg(column),count(column) 函数会过滤掉null值

高级聚合函数

   collect_list(多行变一行,不去重)
  • 语法:collect_list(col)
  • 返回值:array
  • 说明:在hive中是把一个key的多个信息收集起来合成一个,不去重
  • 举例:select avg(score) from table;
-- 举例:
with  tmp as (
select 'a' as test union all
select  'c' as test union all
select  's' as test union all
select  'd' as test
    )
select collect_list(test) from tmp;
结果:["c","s","d","a"] ,可以看出:聚合后的数组元素无法保证顺序性
   collect_set(多行变一行,去重)
  • 语法:collect_set(col)
  • 返回值:array
  • 说明:在hive中是把一个key的多个信息收集起来,去重
  • 举例:select avg(score) from table;
-- 举例:
with  tmp as (
select 'a' as test union all
select  'c' as test union all
select  'a' as test union all
select  'd' as test
    )
select collect_set(test) from tmp;
结果:["a","c","d"]

  ps: 聚合函数的具体使用场景见文章:

HiveSQL题——聚合函数(sum/count/max/min/avg)-CSDN博客文章浏览阅读739次,点赞18次,收藏17次。HiveSQL题——聚合函数(sum/count/max/min/avg)https://blog.csdn.net/SHWAITME/article/details/135918264?spm=1001.2014.3001.5501

2.6 开窗函数

聚合函数

  • 聚合函数分类:   count()、sum()、min()、max()、avg()
  • 语法:聚合函数() over( partition by column order by column  rows / range between..................)

  ps: 聚合函数的具体使用场景见文章:

HiveSQL题——聚合函数(sum/count/max/min/avg)-CSDN博客文章浏览阅读739次,点赞18次,收藏17次。HiveSQL题——聚合函数(sum/count/max/min/avg)https://blog.csdn.net/SHWAITME/article/details/135918264?spm=1001.2014.3001.5501

前后函数

  • lag
-- 取得column列前边的第n行数据,如果存在则返回,如果不存在,返回默认值default
lag(column,n,default) over(partition by order by)
  • lead
-- 取得column列后边的第n行数据,如果存在则返回,如果不存在,返回默认值default
lead(column,n,default) over(partition by order by),

  ps: 前后函数的具体使用场景见文章:

HiveSQL题——前后函数(lag/lead)-CSDN博客文章浏览阅读1.2k次,点赞23次,收藏21次。HiveSQL题——前后函数(lag/lead)https://blog.csdn.net/SHWAITME/article/details/135902998?spm=1001.2014.3001.5502

头尾函数

  • first_value
---当前窗口column列的第一个数值,如果有null值,则跳过
first_value(column,true) over (partition by ..order by.. 窗口子句) 

---当前窗口column列的第一个数值,如果有null值,不跳过
first_value(column,false) over (partition by ..order by.. 窗口子句)
  • last_value
--- 当前窗口column列的最后一个数值,如果有null值,则跳过
last_value(column,true) over (partition by ..order by.. 窗口子句) 
 
--- 当前窗口column列的最后一个数值,如果有null值,不跳过
last_value(column,false) over (partition by ..order by.. 窗口子句) 

排名函数

row_number() over(partition by .. order by .. ) 顺序排序(行号)——1、2、3
rank() over(partition by .. order by .. ) 并列排序,跳过重复序号——1、1、3
dense_rank()  over(partition by .. order by .. ) 并列排序,不跳过重复序号——1、1、2

ps:排序函数的具体使用场景见文章

HiveSQL题——排序函数(row_number/rank/dense_rank)-CSDN博客文章浏览阅读934次,点赞20次,收藏15次。HiveSQL题——排序函数(row_number/rank/dense_rank)https://blog.csdn.net/SHWAITME/article/details/135909662?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1428242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字符串的简单处理

第1题 ISBN号码 查看测评数据信息 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最…

图像超分辨率方法与在线工具

图像超分辨率(Super Resolution, SR)是一种增强图像分辨率的技术,目的是从低分辨率(Low Resolution, LR)图像重建出高分辨率(High Resolution, HR)图像。这项技术在视频增强、卫星图像处理、医学成像等领域有广泛应用。图像超分辨率方法可以分为三大类:插…

Python算法题集_矩阵置零

Python算法题集_矩阵置零 题73:矩阵置零1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【三层循环】2) 改进版一【纵横计数器】3) 改进版二【原地算法】 4. 最优算法 本文为Python算法题集之一的代码示例 题73:矩阵置零…

linux ln命令-linux软链接、硬链接-linux软、硬链接的区别(二):软链接

0、序 上一篇:linux ln命令-linux软链接、硬链接-linux软、硬链接的区别(一):硬链接 描述了硬链接相关内容,本篇主要描述软链接。 1、软链接 符号链接也称软链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。…

【JS】Express.js环境配置与示例

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Express.js环境配置与示例。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不…

【云手机】快速获取一台属于你的云手机,在云上调试你的应用!

0x00 前言 随着科技的飞速发展,云手机已然成为一种云端虚拟商品,它打破地域限制,让你随时随地畅享移动体验。红手指、小鱼云手机等平台虽便捷易用,却在可扩展性和隐私性方面有所欠缺。冗长的《隐私政策》是否让你望而却步&#x…

C++通用编程(2)

函数模板高级用法 1.分文件编写的优点2.普通函数的分文件编写3.函数模板的分文件编写4.细节提示5.函数模板应用高级decltype推导类型函数后置返回类型 6.总结 函数模板讲完后,C全部的函数类型我们就接触的差不多了。今天给做一些关于函数份文件编写的知识点补充。 1…

C# winform 多语言(json)方式实现

前后对比 使用nuget json工具包1.总体思路 创建对应的json字典对照表 { "测试":"Test", "语言":"Language", "设置":"Set", "中文(默认)":"Chinese (default)", "英文":"E…

【对象属性拷贝】⭐️按照需要转换的类型反射设置拷贝后对象的属性

背景: 小伙伴们大家好,最近开发的时候遇到一种情况,项目引入了全局序列化器来实现Date,LocalDateTime类型的字段根据时区转换,总体来说接口没什么要改动的,只要原来字段的属性是以上两种就行,但…

【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?

这样,你先在网上找一套完整openssh升级方案(不是yum或apt的,要源码安装的),然后在虚拟机上反复安装测试,直到把他理解了、背下来。 面试的时候让你简单说说linux命令什么的,你就直接把这个方案…

Linux服务详解

如有错误或有补充,以及任何改进的意见,请在评论区留下您的高见,同时文中给出大部分命令的示例,即是您暂时无法在Linux中查看,您也可以知道各种操作的功能以及输出 如果觉得本文写的不错,不妨点个赞&#x…

CentOS 7中搭建NFS文件共享服务器的完整步骤

CentOS 7中搭建NFS文件共享服务器的完整步骤 要求:实现镜像文件共享,并基于挂载的共享目录配置yum源。 系统环境: 服务器:172.20.26.167-CentOS7.6 客户端:172.20.26.198-CentOS7.6 1、在服务器和客户端上&#x…

案例分析技巧-软件工程

一、考试情况 需求分析(※※※※)面向对象设计(※※) 二、结构化需求分析 数据流图 数据流图的平衡原则 数据流图的答题技巧 利用数据平衡原则,比如顶层图的输入输出应与0层图一致补充实体 人物角色:客户、…

MySQL 索引和事务

目录 1 索引1.1 简介1.2 使用1.3 示例 2 事务2.1 简介2.2 使用 1 索引 1.1 简介 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引底层是…

TypeScript 学习笔记(Day4)

「写在前面」 本文为 b 站黑马程序员 TypeScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. TypeScript 学习笔记(Day1) 2. TypeScript 学习笔…

Three.js学习2:页面引入 Three.js

一、关于 Three.js 的版本 随着页面3D化应用越来越多,近两年 Three.js 处于飞速发展之中。现在 Three.js 几乎每个月都会发布一个新的版本,会增加新的 API,废掉一些旧的功能之类的。 可以从 Three.js 官网 Three.js – JavaScript 3D Libra…

web漏洞扫码工具

Invicti 是一种自动化但完全可配置的 Web 应用程序安全扫描程序,使您能够扫描网站、Web 应用程序和 Web 服务,并识别安全漏洞。Invicti 可以扫描所有类型的 Web 应用程序,无论其构建平台或语言。 Invicti 是唯一一款能够以只读且安全的方式自…

Next.js初识

Next.js初识 Next.js:这是一个用于生产环境的React 框架(国外用的比较多)。 Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能 无需任何配…

c#的反汇编对抗

文章目录 前记nim攻防基础FFI内存加载加解密、编码 后记C#类型转换表nim基础 前记 随便编写一个c#调用winapi并用vs生成dll,同时用csc生成exe using System; using System.Runtime.InteropServices; namespace coleak {class winfun{[DllImport("User32.dll")]publ…

【JavaEE进阶】 图书管理系统开发日记——叁

🌴前言 在前面我们实现了用户登录的接口。现在我们来实现图书列表展示页面。 🎋数据准备 创建图书表,并初始化数据 -- 图书表 DROP TABLE IF EXISTS book_info; CREATE TABLE book_info (id INT ( 11 ) NOT NULL AUTO_INCREMENT,book_nam…