• Oracle 常用简单sql操作


    1. 无脑处理的常用sql

    1.1 新增字段等

    1. 添加字段

      -- Add/modify columns 
      alter table table_name add column_name varchar2(25);
      -- Add comments to the columns 
      comment on column table_name.column_name
        is '字段注释';
      
      • 1
      • 2
      • 3
      • 4
      • 5
    2. 修改字段

    1.2 备份表

    • 创建备份表:
      create table sys_user_bak as select * from sys_user;
      
      • 1
    • 懒人建表:
      create table new_table 
      as (select 'table_id' as table_id,'remark' as remark_1  from dual);
      
      • 1
      • 2

    1.3 insert into select

    1.3.1 生成主键 sys_guid()

    • sys_guid() 生成32位的唯一编码。来生成唯一主键

    1.3.2 insert into select

    • ① 表结构一致的情况,可以用下面简单的写法:
      insert into stu_test_his select * from stu_test;
      
      • 1
    • ② 表结构不一致的情况,需要 insert 的字段要相同,如下:
      insert into sys_user_detail (id,user_id,user_name,dept_id,dept_name
      ,create_time,update_time)
      select sys_guid()as id,t.user_id,t.user_name,t.dept_id,t2.dept_name,
      (SYSDATE),(SYSDATE+1)
      from sys_user t
      left join sys_company_dept t2 on t.dept_id= t2.dept_id
      where t2.parent_id='B001';
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      在这里插入图片描述

    1.4 update set select

    • 更新前数据:
      在这里插入图片描述
      在这里插入图片描述
    • 更新语句:
      update sys_user_detail t 
      set t.dept_name
      =(
      select t2.dept_name from sys_company_dept t2 where t2.dept_id=t.dept_id
      );
      
      • 1
      • 2
      • 3
      • 4
      • 5

    1.5 merge into

    • 对于上面的 1.3 + 1.4 ,可以用一个 merge into 解决,sql 如下
      merge into sys_user_detail d
      using (select t.user_id, t.user_name, t.dept_id, t2.dept_name
               from sys_user t
               left join sys_company_dept t2
                 on t.dept_id = t2.dept_id) temp
      on (d.dept_id = temp.dept_id)
      when matched then
        update
           set d.user_name = temp.user_name, d.dept_name = temp.dept_name
         where 1 = 1 and d.user_id=temp.user_id and d.dept_id=temp.dept_id
      when not matched then
        insert
          (id, user_id, user_name, dept_id, dept_name, create_time, update_time)
        values
          (sys_guid(),
           temp.user_id,
           temp.user_name,
           temp.dept_id,
           temp.dept_name,
           (SYSDATE),
           (SYSDATE + 1));
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22

    1.6 附1.3、1.4、1.5 的建表等sql

    • sys_user 与 sys_company_dept 的建表及数据参考下面文章中的【1.建表和准备数据】
      oracle递归查询(start with connect by prior)以及 树形统计connect_by_root(子节点汇总到父节点)
    • sys_user_detail
      -- Create table
      create table SYS_USER_DETAIL
      (
        id              VARCHAR2(32),
        user_id         VARCHAR2(20),
        user_name       VARCHAR2(50),
        dept_id         VARCHAR2(20),
        dept_name       VARCHAR2(50),
        graduate_school VARCHAR2(50),
        graduate_date   DATE,
        create_time     DATE,
        update_time     DATE
      )
      tablespace USERS
        pctfree 10
        initrans 1
        maxtrans 255
        storage
        (
          initial 64K
          next 1M
          minextents 1
          maxextents unlimited
        );
      -- Add comments to the columns 
      comment on column SYS_USER_DETAIL.id
        is '数据id';
      comment on column SYS_USER_DETAIL.user_id
        is '用户编号';
      comment on column SYS_USER_DETAIL.user_name
        is '用户name';
      comment on column SYS_USER_DETAIL.graduate_school
        is '毕业学校';
      comment on column SYS_USER_DETAIL.graduate_date
        is '毕业时间';
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36

    1.7 sequence

    • 创建:
      create sequence seq_id_student_id  
      minvalue 1  
      maxvalue 9999999999999999999999999999  
      start with 1  
      increment by 1  
      nocache; 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 使用
      select seq_id_student_id.nextval from dual;
      
      • 1
      在这里插入图片描述

    2. 语法直接用不能解决问题的

    2.1 将字段类型改成 clob 类型

    • 需要如下操作:

      -- 首先改成Long类型
      alter table table_name modify column_name long;
      
      -- 在Long类型的基础上改成clob类型
      alter table table_name modify column_name clob;
      
      • 1
      • 2
      • 3
      • 4
      • 5

    2.2 Oracle修改某个字段允许为null

    • 直接用下面语句修改不可以

      alter table table_name  modify column_name null;
      
      • 1
    • 需要用下面这些语句操作即可,如下:

      alter table table_name add column_name_temp number(20);  
      update table_name set column_name_temp=column_name;
      alter table table_name drop column column_name;
      alter table table_name add column_name number(20);  
      update table_name set column_name=column_name_temp;
      alter table table_name drop column column_name_temp;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      即:先新增一个临时字段,存储原有的值,删除原有的字段,新增原有的字段添加值,最后删除新增的临时字段

    2.3

    3. 常用函数sql

    3.1 树形统计(start with…)

    3.2 分组后累加->sum over(order by)

    3.2.1 查询及效果

    • 先查看表中数据:
      在这里插入图片描述
    3.2.1.1 查询(分组统计)
    • 只分组统计,不累加的效果:
      在这里插入图片描述
      select to_char(t.enter_time,'yyyy-MM-dd HH24'),count(0) num
      from mount_hua_tourist t
      group by to_char(t.enter_time,'yyyy-MM-dd HH24');
      
      • 1
      • 2
      • 3
    3.2.1.2 查询(分组后累加)
    • 按时间统计入上游客的人数(sql语句见下面:附建表 和 查询sql
      在这里插入图片描述

    3.2.2 附建表 和 查询sql

    1. 建表

      -- Create table
      create table MOUNT_HUA_TOURIST
      (
        tourist_id   VARCHAR2(30),
        tourist_name VARCHAR2(30),
        enter_time   DATE,
        out_time     DATE
      )
      tablespace USERS
        pctfree 10
        initrans 1
        maxtrans 255
        storage
        (
          initial 64K
          next 1M
          minextents 1
          maxextents unlimited
        );
      -- Add comments to the table 
      comment on table MOUNT_HUA_TOURIST
        is '华山游客记录表';
      -- Add comments to the columns 
      comment on column MOUNT_HUA_TOURIST.tourist_id
        is '华山游客id';
      comment on column MOUNT_HUA_TOURIST.tourist_name
        is '华山游客name';
      comment on column MOUNT_HUA_TOURIST.enter_time
        is '入山时间';
      comment on column MOUNT_HUA_TOURIST.out_time
        is '离山时间';
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
    2. 插入数据

      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A001', '游客1', to_date('13-10-2022 07:12:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A002', '游客2', to_date('13-10-2022 08:13:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A003', '游客3', to_date('13-10-2022 08:34:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A004', '游客4', to_date('13-10-2022 08:50:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A005', '游客5', to_date('13-10-2022 09:10:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A006', '游客6', to_date('13-10-2022 10:13:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      insert into mount_hua_tourist (TOURIST_ID, TOURIST_NAME, ENTER_TIME, OUT_TIME)
      values ('A007', '游客7', to_date('13-10-2022 10:44:41', 'dd-mm-yyyy hh24:mi:ss'), null);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
    3. sql查询

      --先按照 时间 排序,然后累加 num
      select to_char(t.enter_time,'yyyy-MM-dd HH24'),count(0) num,
      sum(count(0)) over(order by to_char(t.enter_time,'yyyy-MM-dd HH24')) sum_up 
      from mount_hua_tourist t
      where 1=1
      --and to_char(t.enter_time,'yyyy-MM-dd')= to_char(sysdate,'yyyy-MM-dd')
      and to_char(t.enter_time,'yyyy-MM-dd')= '2022-10-13'
      and t.out_time is null
      group by to_char(t.enter_time,'yyyy-MM-dd HH24');
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    4. 效果
      在这里插入图片描述

    3.3 regexp_substr() 函数->分割字符串

    3.4 count()、sum() 函数

    1. 先看数据
      在这里插入图片描述
    2. 需求1:按性别维度统计各犬舍的狗狗数据量(count 函数
      select t.kennels_num ,t.dog_sex,count(t.dog_sex)
      from dog t
      group by t.dog_sex,t.kennels_num
      order by t.kennels_num,t.dog_sex;
      
      • 1
      • 2
      • 3
      • 4
      在这里插入图片描述
    3. 需求2
      如果男孩和女孩的情况为性别已知,其他情况按未知性别计算,统计性别已知未知的数量
      如下:
      select 
      sum(case t.dog_sex when '0' then 1 when '1' then 1 else 0 end)know_sex,
      sum(case t.dog_sex when '2' then 1 when '3' then 1 else 0 end)not_know_sex
      from dog t;
      
      • 1
      • 2
      • 3
      • 4
      在这里插入图片描述
    4. 需求3:在需求2的基础上,根据犬舍去统计
      select t.kennels_num,
      sum(case t.dog_sex when '0' then 1 when '1' then 1 else 0 end)know_sex,
      sum(case when t.dog_sex in('2','3') then 1 else 0 end)not_know_sex
      from dog t
      group by t.kennels_num;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      在这里插入图片描述

    3.5 ROUND() 与 TRUNC() 函数

    1. ROUND(x,y) 四舍五入,y缺省时,默认y=0,y是几就是保留几位小数
      • 例1:不解释了,一看就懂
        在这里插入图片描述
      • 例2:百分数问题,如下:
        在这里插入图片描述
        select round(1/23,4) r1_1, 
        trim(concat(to_char(100*round(1/23,4),'990.99'),'%')) r1_2,
        round(92/95,4)r2_1, 
        trim(concat(to_char(100*round(92/95,4),'990.99'),'%'))r2_2 
        from dual;
        
        • 1
        • 2
        • 3
        • 4
        • 5
    1. TRUNC() 直接截取,不四舍五入
      在这里插入图片描述

    3.6 日期函数

    1. 用上面函数对日期进行四舍五入,不解释直接看
      在这里插入图片描述
      在这里插入图片描述
    2. extract(fmt from 日期),提取日期中的特定部分
      select sysdate,
             extract(year from sysdate) year,
             extract(month from sysdate) month,
             extract(day from sysdate) day,
             extract(hour from systimestamp) hour,
             extract(minute from systimestamp) minute,
             extract(second from systimestamp) second
        from dual;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      在这里插入图片描述
    3. to_char()函数,不解释,自己看
      • 常用几个:
        select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss')d1,
        to_char(sysdate,'yyyy-MM-dd HH24:mm:ss')d2,
        to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')d3,
        to_char(sysdate,'yyyy-MM-dd HH:mm:ss')d4,
        to_char(sysdate,'YYYY"年"MM"月"DD"日" HH24:MI:SS')d5
        from dual;
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        在这里插入图片描述
      • 其他(到小时):
        select t.enter_time,
        to_char(t.enter_time,'yyyy-MM-dd HH24')d1,
        to_char(t.enter_time,'yyyy-MM-dd HH24:mi')d2,
        to_char(t.enter_time,'yyyy-MM-dd HH24:mi:ss')d3
        from mount_hua_tourist t;
        
        • 1
        • 2
        • 3
        • 4
        • 5
        在这里插入图片描述
    1. to_date()
      select to_date('2020-11-12 ','yyyy-MM-dd'),
      to_date('2020-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') 
      from dual;
      
      • 1
      • 2
      • 3
      在这里插入图片描述
    2. to_timestamp()
      select to_timestamp('2020-01-05', 'yyyy-mm-dd hh24:mi:ss:ff'),
      to_timestamp('2020-01-05 23:46.24.855000', 'yyyy-mm-dd hh24:mi:ss:ff')
      from dual;
      
      • 1
      • 2
      • 3
      在这里插入图片描述
    3. add_months()
      select sysdate,add_months(sysdate,3) from dual;
      
      • 1
      在这里插入图片描述
    4. 关于查看日期是周几,以及当周的第几天等
      • 首先用上述的 to_char() 函数 ,如下:
        select to_char(sysdate,'d') from dual;--周的第几天(周日是第一天的情况)
        select to_char(sysdate-1,'d') from dual;--周的第几天(周一是第一天的情况)
        
        • 1
        • 2
      • 几个测试例子如下:
        在这里插入图片描述
        select 
        to_date('2022-12-31','yyyy-MM-dd'),
        to_char(to_date('2022-12-31','yyyy-MM-dd'),'d') r_1_0,--'d' 周的第几天(周日是第一天的情况)
        to_char(to_date('2022-12-31','yyyy-MM-dd')-1,'d') r_1_1,--'d' 周的第几天(周一是第一天的情况)
        to_char(to_date('2022-12-31','yyyy-MM-dd'),'dy')  r_2, --'dy' 求出星期几
        to_char(to_date('2022-12-31','yyyy-MM-dd'),'day') r_3,--'day' 求出星期几
        to_char(to_date('2022-12-31','yyyy-MM-dd'),'dd') r_4,--'dd'月的第几天
        to_char(to_date('2022-12-31','yyyy-MM-dd'),'ddd')r_5--'ddd'年的第几天
        from dual;
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
    5. 当前时间往前推n天的时间(当前时间减去n天)
      select 
       sysdate - interval '2' day,
       sysdate -2 
       from dual; 
      
      • 1
      • 2
      • 3
      • 4
      在这里插入图片描述

    3.7 其他单行函数

    3.7.1 NVL(X,VALUE)

    • NVL(X,VALUE)函数,如果X为空,返回value,否则返回X
      在这里插入图片描述

    3.7.2 nvl2(x,value1,value2)

    • nvl2(x,value1,value2) 函数,如果x非空,返回value1,否则返回value2
      在这里插入图片描述

    3.8 decode()

    1. 语法:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
      解释:当“条件”等于“值1”的时候,显示“返回值1”,等于“值2”的时候,显示“返回值2”,依次类推,如果都不满足,则返回“缺省值”即默认值。
    2. 先看数据:
      在这里插入图片描述
    3. 使用 decode()函数
      select t.dog_name,
      decode(t.dog_sex,'0','男孩','1','女孩','2','绝育','未知')sex,
      t.dog_desc
      from dog t;
      
      • 1
      • 2
      • 3
      • 4
      在这里插入图片描述
    4. 对比 case when
      select t.dog_name,
      (case t.dog_sex when '0' then '男孩' when '1' then '女孩' when '2' then '绝育'else '未知'end)sex,
      t.dog_desc
        from dog t;
      
      • 1
      • 2
      • 3
      • 4
      在这里插入图片描述

    3.9 Oracle 行转列

    • 先看原始数据:
      在这里插入图片描述
      select t.table_name,t.column_name,t.data_type 
      from all_tab_columns t 
      where t.table_name='DOG_TEST';
      
      • 1
      • 2
      • 3

    3.9.1 用 decode 进行行转列

    • 效果如下:
      在这里插入图片描述
    • sql 语句:
      select t.table_name,
      max(decode(t.column_name,'ID',t.data_type)) ID,
      max(decode(t.column_name,'DOG_NAME',t.data_type)) DOG_NAME,
      max(decode(t.column_name,'DOG_SEX',t.data_type)) DOG_SEX,
      max(decode(t.column_name,'DOG_DESC',t.data_type)) DOG_DESC
      from all_tab_columns t
      where t.table_name='DOG_TEST'
      group by table_name;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    3.9.2 用 case when 进行行转列

    • sql 如下:
      select t.table_name,
      max(case t.column_name when 'ID' then t.data_type end)ID,
      max(case t.column_name when 'DOG_NAME' then t.data_type end)DOG_NAME,
      max(case t.column_name when 'DOG_SEX' then t.data_type end)DOG_SEX,
      max(case t.column_name when 'DOG_DESC' then t.data_type end)DOG_DESC
      from all_tab_columns t
      where t.table_name='DOG_TEST'
      group by table_name;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    • 效果如下:
      在这里插入图片描述

    3.10 Oracle 列转行

    • 先准备数据
      create table tab_columns_test as
      select t.table_name,
      max(case t.column_name when 'ID' then t.data_type end)ID,
      max(case t.column_name when 'DOG_NAME' then t.data_type end)DOG_NAME,
      max(case t.column_name when 'DOG_SEX' then t.data_type end)DOG_SEX,
      max(case t.column_name when 'DOG_DESC' then t.data_type end)DOG_DESC
      from all_tab_columns t
      where t.table_name='DOG_TEST'
      group by table_name;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      在这里插入图片描述

    3.10.1 用 unpivot进行 列转行

    • 对上面数据进行列转行,sql 语句如下:
      select table_name,col_key,col_value
      from tab_columns_test 
      unpivot(col_value for col_key in(ID, DOG_NAME, DOG_SEX,DOG_DESC));
      
      • 1
      • 2
      • 3
    • 效果如下:
      在这里插入图片描述

    3.10.2 用case when 进行 列转行

    3.11 函数LISTAGG() 与 函数WM_CONCAT()

    • 先看原始数据
      在这里插入图片描述

    3.11.1 LISTAGG() 函数

    • 如下:
      select dept_id,dept_name,
      LISTAGG(user_name, ',') WITHIN GROUP(order by user_name) as all_user_names
      from sys_user_detail where 1=1
      and dept_id='D001'
      group by dept_id,dept_name; 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      在这里插入图片描述

    3.11.2 WM_CONCAT() 函数

    • 如下:
      select dept_id,WM_CONCAT(user_name) all_user_names 
      from sys_user_detail
      WHERE dept_id ='D001'
      GROUP BY dept_id;
      
      • 1
      • 2
      • 3
      • 4
      在这里插入图片描述
    • 需要注意的是 WM_CONCAT() 函数在19c里没有,没研究,想深入了解的,自己看看吧,Oracle 19c下标识符无效,如下:
      在这里插入图片描述

    4. Oracle中创建dblink方法

    • 这种情况适用于,两个数据库之间的访问,比如:现在有两个数据库(ip不一样,不在一个服务器上),数据库1hi@ip1:1521/orclpdb1数据库2hello@ip2:1521/orcl,现在想在数据库1上访问数据库2,如何实现,请往下看

    4.1 先授权(创建dblink的权限)

    1. 查看是否有权限
      select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
      
      • 1
    2. 如果没有权限,授权
      grant create public database link,drop public database link to hi; 
      
      • 1
      或者直接授权 create any table
      grant create any table to hi
      
      • 1
    3. 查看授权后的权限
      select * from user_sys_privs
      
      • 1
      在这里插入图片描述

    4.2 在数据库1的hi用户下创建dblink

    1. 创建语句如下:

      create public database link hi_to_hello_DBLINK    
       connect to hello identified by hello123  
       using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = ip2)(PORT = 1521)))
       (CONNECT_DATA =(SERVICE_NAME = orcl)))';
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述

    2. 查看创建的dblink
      下面两个查询语句都可,如下:

      select * from dba_db_links;
      
      select * from dba_objects where object_type='DATABASE LINK';
      
      • 1
      • 2
      • 3

      在这里插入图片描述
      在这里插入图片描述

    3. 查看创建的dblink(plsql里)
      如下:
      在这里插入图片描述

    4.3 在数据库1中通过dblink访问数据库2里的数据

    • 访问hel自己用户下的数据,如下:
       select * from test_table@hi_to_hello_DBLINK;
       
       select * from hello.test_table@hi_to_hello_DBLINK;
      
      • 1
      • 2
      • 3
      在这里插入图片描述
      在这里插入图片描述
    • 当然也可以访问ip2orcl里其他用户的数据,只有hello用户原本可访问即可
      在这里插入图片描述

    4.4 附过程sql

    • 如下:
      --1.查询是否有创建 dblink 的权限
      select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
      
      --2.如果没有权限,则授权
      grant create public database link,drop public database link to hi; 
      grant create any table to hi;
      
      --3.创建dblink
      
      create public database link hi_to_hello_DBLINK    
       connect to hello identified by hello123  
       using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = ip2)(PORT = 1521)))
       (CONNECT_DATA =(SERVICE_NAME = orcl)))';
       
      --4.查看你创建的dblink
       
      select * from dba_db_links;
      
      select * from dba_objects where object_type='DATABASE LINK';
      
      --5.访问数据库
      
       select * from test_table@hi_to_hello_DBLINK;
       
       select * from hello.test_table@hi_to_hello_DBLINK;
       
       select * from hello2.sys_company_dept@hi_to_hello_DBLINK;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27

    5.

  • 相关阅读:
    2022年计算机专业毕业设计课题推荐
    基于Java+SSM+MySQL的高校智能排课系统设计与实现
    vivo前端智能化实践:机器学习在自动网页布局中的应用
    Optimize File Size for Accessible PDFs
    C++ 20 新特性简介
    Python loglog()函数
    Windows与网络基础-25-二进制基础
    语法基础(变量、输入输出、表达式与顺序语句)
    2023.11.17 关于 Spring Boot 日志文件
    跨界协作:借助gRPC实现Python数据分析能力的共享
  • 原文地址:https://blog.csdn.net/suixinfeixiangfei/article/details/126918156