业务复习知识点Oracle查询

news2024/12/25 12:14:53
  • 业务数据查询-1
    1. 单表查询
      1. 数据准备

自来水收费系统建表语句.sql

      1. 简单条件查询

        1. 精确查询

需求 :查询水表编号为 30408 的业主记录

查询语句 :

select * from t_owners where watermeter= '30408';

查询结果 :

        1. 模糊查询

需求 :查询业主名称包含“刘”的业主记录

查询语句 :

select * from t_owners where name like '%刘%'

查询结果 :

        1. and 运算符

需求 :查询业主名称包含“刘”的并且门牌号包含 5 的业主记录

查询语句 :

select * from t_owners where name like '%刘%' and housenumber like '%5%';

查询结果 :

        1. or 运算符

需求 :查询业主名称包含“刘”的或者门牌号包含 5 的业主记录

查询语句 :

select * from t_owners

where name like '%刘%' or housenumber like '%5%';

查询结果 :

        1. and 与 or 运算符混合使用

需求 :查询业主名称包含“刘”的或者门牌号包含 5 的业主记录 ,并且地址编号 为 3 的记录。

语句 :

select * from t_owners

where (name like '%刘%' or housenumber like '%5%')

      and addressid=3

查询结果 :

因为 and 的优先级比 or 大 ,所以我们需要用 (    )  来改变优先级。

        1. 范围查询

需求 :查询台账记录中用水字数大于等于 10000 ,并且小于等于 20000 的记录

我们可以用>=  和<=来实现

select * from t_account

where usenum>=10000 and usenum<=20000;

我们也可以用 between      ..    and      ..来实现

select * from t_account

where usenum between 10000  and 20000

        1. 空值查询

需求 :查询 T_PRICETABLE 表中 MAXNUM 为空的记录

语句 :

select * from t_pricetable t where maxnum is null

查询结果 :

需求 :查询 T_PRICETABLE 表中 MAXNUM 不为空的记录

语句 :

select * from t_pricetable t where maxnum is not null

查询结果 :

      1. 去掉重复记录

需求 :查询业主表中的地址 ID,不重复显示

语句 :

select distinct addressid from t_owners;

      1. 排序查询

1.升序排序

需求 :对 T_ACCOUNT 表按使用量进行升序排序

语句 :

select * from t_account order by usenum;

查询结果 :

2.降序排序

需求 :对 T_ACCOUNT 表按使用量进行降序排序

语句 :

select * from t_account order by usenum desc;

查询结果 :

      1. 基于伪列的查询

在 Oracle 的表的使用过程中 ,实际表中还有一些附加的列,称为伪列。

伪列就 像表中的列一样 ,但是在表中并不存储。伪列只能查询,不能进行增删改操作。

接下来学习两个伪列 :ROWID 和 ROWNUM。

1 ROWID

表中的每一行在数据文件中都有一个物理地址 ,ROWID 伪列返回的就是该行的 物理地址。

使用 ROWID 可以快速的定位表中的某一行。ROWID 值可以唯一的标识表中的一行。

由于 ROWID 返回的是该行的物理地址 ,因此使用 ROWID 可以显示行是如何存储的。

查询语句:

select rowid, t.* from t_area t

查询结果如下:

我们可以通过指定 ROWID 来查询记录

select rowID,t.*

from T_AREA t

where ROWID= 'AAAStKAANAAAAC/AAC';

查询结果如下 :

2 ROWNUM

在查询的结果集中 ,ROWNUM 为结果集中每一行标识一个行号 ,第一行返回 1 , 第二行返回 2 ,以此类推。通过 ROWNUM 伪列可以限制查询结果集中返回的行数

查询语句:

select rownum,t.* from t_owners t

查询结果如下 :

我们的分页查询需要用到此伪列,在本章第四小节详细讲解。

      1. 聚合统计

ORACLE 的聚合统计是通过分组函数来实现的 ,与 MYSQL 一致。

1.  聚合函数

( 1 ) 求和   sum

需求 :统计 2012 年所有用户的用水量总和

select sum(usenum) from t_account where year= '2012'

查询结果如下 :

( 2 ) 求平均 avg

需求 :统计 2012 年所有用水量 (字数) 的平均值

select avg(usenum) from T_ACCOUNT where year= '2012'

查询结果如下 :

( 3 ) 求最大值 max

需求 :统计 2012 年最高用水量 (字数)

select max(usenum) from T_ACCOUNT where year= '2012'

查询结果如下 :

( 4 ) 求最小值 min

需求 :统计 2012 年最低用水量 (字数)

select min(usenum) from t_account where year= '2012'

查询结果如下 :

( 5 ) 统计记录个数 count

需求 :统计业主类型 ID 为 1 的业主数量

select count(*) from t_owners t where ownertypeid=1

查询结果如下 :

2.  分组聚合 Group by

需求 :按区域分组统计水费合计数

语句 :

select areaid, sum(money) from t_account group by areaid

查询结果 :

3.  分组后条件查询 having

需求 :查询水费合计大于 16900 的区域及水费合计

语句 :

select areaid,sum(money) from t_account

group by areaid

having sum(money)>169000

查询结果 :

    1. 多表查询

      1. 多表内连接查询

( 1 ) 需求 :查询显示业主编号 ,业主名称 ,业主类型名称

如下图 :

查询语句 :

select

   t1.id, t1.name, t2.name

from t_owners t1, t_ownertype t2

where t1.ownertypeid=t2.id

;

select

   t1.id, t1.name, t2.name

from t_owners t1

inner join t_ownertype t2 on t1.ownertypeid=t2.id

;

( 2 ) 需求 :查询显示业主编号 ,业主名称、地址和业主类型 ,如下图

分析 :此查询需要三表关联查询。分别是业主表 ,业主分类表和地址表

语句 :

select o.id 业主编号, o.name 业主名称, ad.name 地址, ot.name 业主类型

from t_owners o,t_ownertype ot,t_address ad

where o.ownertypeid=ot.id and o.addressid=ad.id

select

   t1.id 业主编号,

   t1.name 业主名称,

   t2.name 地址,

   t3.name 业主类型

from t_owners t1

     join t_address t2 on t1.addressid=t2.id

     join t_ownertype t3 on t1.ownertypeid=t3.id

;

( 3 ) 需求 :查询显示业主编号、业主名称、地址、所属区域、业主分类 ,如下图 :

分析 :这里需要四个表关联查询 ,比上边多了一个区域表 ( T_AREA )

查询语句 :

select o.id 业主编号,o.name 业主名称,ar.name 区域,

       ad.name 地址, ot.name 业主类型

from t_owners o ,t_ownertype ot,t_address ad,t_area ar

where o.ownertypeid=ot.id  and  o.addressid=ad.id  

       and ad.areaid=ar.id

( 4 ) 需求 :查询显示业主编号、业主名称、地址、所属区域、  收费员、业主分 类 ,如下图 :

分析 :此查询比上边又多了一个表 T_OPERATOR

语句 :

select ow.id 业主编号, ow.name 业主名称, ad.name 地址,

       ar.name 所属区域, op.name 收费员, ot.name 业主类型

from t_owners ow,t_ownertype ot,t_address ad, t_area ar, t_operator op

where ow.ownertypeid=ot.id and ow.addressid=ad.id

      and ad.areaid=ar.id and ad.operatorid=op.id

      1. 左外连接查询

需求 :查询业主的账务记录 ,显示业主编号、名称、年、月、金额。如果此业主 没有账务记录也要列出姓名。

分析 :我们要查询这个结果 ,需要用到 T_OWNERS (业主表)    ,T_ACCOUNT (台账表)    按照查询结果 ,业主表为左表、账务表为右表。

按照 SQL1999 标准的语法 ,查询语句如下 :

SELECT ow.id, ow.name, ac.year, ac.month, ac.money

FROM t_owners ow left join t_account ac on ow.id=ac.owneruuid

按照 ORACLE 提供的语法 ,就很简单了 :

SELECT ow.id, ow.name, ac.year, ac.month,ac.money

FROM t_owners ow,t_account ac

WHERE ow.id=ac.owneruuid(+)

如果是左外连接 ,就在右表所在的条件一端填上 (+)

      1. 右外连接查询

需求 :查询业主的账务记录 ,显示业主编号、名称、年、月、金额。

如果账务记录没有对应的业主信息 ,也要列出记录。如下图 :

SQL1999 标准的语句

select ow.id, ow.name, ac.year, ac.month, ac.money

from t_owners ow right join t_account ac on ow .id=ac .owneruuid

ORACLE 的语法

select ow.id,ow.name,ac.year,ac.month,ac.money

from t_owners ow, t_account ac

where ow.id(+) = ac.owneruuid

    1. 子查询

      1. where 子句中的子查询

1.  单行子查询

   只返回一条记录

   单行操作符

需求 :查询 2012 年 1 月用水量大于平均值的台账记录

语句 :

select * from t_account

where year='2012' and month='01'

and usenum>

    (select avg(usenum) from t_account where year= '2012' and month='01')

查询结果 :

平均值为 :

2.  多行子查询

   返回了多条记录

   多行操作符

in  运算符

( 1 ) 需求 :查询地址编号为 1、3、4  的业主记录

分析 :如果我们用 or 运算符编写 ,SQL 非常繁琐 ,所以我们用 in 来进行查询

语句如下 :

select * from t_owners

where addressid in (1,3,4)

查询结果如下 :

select * from t_owners

where addressid in (1,3,4)

( 2 ) 需求 :查询地址含有“花园”的业主的信息

语句 :

select * from t_owners

where addressid in

(select id from t_address where name like '%花园%')

查询结果 :

select * from t_owners

where addressid in

(select id from t_address where name like '%花园%')

( 3 ) 需求 :查询地址不含有“花园”的业主的信息

语句 :

select * from t_owners

where addressid not in

      (select id from t_address where name like '%花园%')

查询结果 :

select * from t_owners

where addressid not in

      (select id from t_address where name like '%花园%')

      1. from 子句中的子查询

from 子句的子查询为多行子查询

需求 :查询显示业主编号 ,业主名称 ,业主类型名称 ,条件为业主类型为”居民” , 使用子查询实现。

语句 :

select * from

(select o.id 业主编号, o.name 业主名称, ot.name 业主类型

  from t_owners o, t_ownertype ot

  where o.ownertypeid=ot.id)

where 业主类型='居民'

查询结果如下:

      1. select 子句中的子查询

select  子句的子查询必须为单行子查询

( 1 ) 需求 :列出业主信息 ,包括 ID ,名称 ,所属地址。

语句 :

select id, name,

       (select t2.name from t_address t2 where t2.id=t1.addressid) addressname

from t_owners t1

查询结果如下 :

( 2 ) 需求 :列出业主信息 ,包括 ID ,名称 ,所属地址 ,所属区域。

语句:

select

   t1.id,

   t1.name,

   (select name from t_address where id=t1.addressid) address_name,

   (select (select t3.name from t_area t3 where t2.areaid=t3.id ) from t_address t2 where t2.id=t1.addressid) as area_name

from t_owners t1

;

查询结果如下 :

    1. 分页查询

      1. 简单分页

需求 :分页查询台账表 T_ACCOUNT ,每页 10 条记录

分析 :我们在 ORACLE 进行分页查询 ,需要用到伪列 ROWNUM 和嵌套查询

我们首先显示前 10 条记录 ,语句如下 :

select rownum, t.* from t_account t where rownum<=10

显示结果如下 :

那么我们显示第 11 条到第 20 条的记录呢?编写语句 :

select rownum,t .* from t_account t

where rownum>10 and rownum<=20

查询结果 :

嗯?怎么没有结果?

这是因为 rownum 是在查询语句扫描每条记录时产生的 ,所以不能使用“大于”符号 ,只能使用“小于”或“小于等于”,只用“等于”也不行。

那怎么办呢?我们可以使用子查询来实现

select * from

       (select rownum r,t.* from T_ACCOUNT t where rownum<=20)

where r>10

查询结果如下 :

      1. 基于排序的分页

需求 :分页查询台账表 T_ACCOUNT ,每页 10 条记录 ,按使用字数降序排序。

我们查询第 2 页数据 ,如果基于上边的语句添加排序 ,语句如下 :

select * from

       (select rownum r,t.* from T_ACCOUNT t

        where rownum<=20

        order by usenum desc)

where r>10

;

查询结果如下 :

经过验证 ,我们看到第 2 页的结果应该是下列记录

所以推断刚才的语句是错误的 !那为什么是错误的呢 ?

我们可以先单独执行嵌套查询里面的那句话

select rownum r,t.* from t_account t

where rownum<=20 order by usenum desc

你会看到查询结果如下 :

你会发现排序后的 R 是乱的。这是因为 ROWNUM 伪列的产生是在表记录扫描 是产生的 ,而排序是后进行的 ,排序时 R 已经产生了 ,所以排序后 R 是乱的。

那该如何写呢 ?

很简单 ,我们只要再嵌套一层循环( 一共三层)  ,让结果先排序 ,然后对排序后 的结果再产生 R ,这样就不会乱了。

语句如下 :

select * from

  (select rownum r, t.* from

          (select * from T_ACCOUNT order by usenum desc) t

   where rownum<=20)

where r>10

结果如下 :

    1. 单行函数

      1. 字符函数

函    数

说                明

ASCII

返回对应字符的十进制值

CHR

给出十进制返回字符

CONCAT

拼接两个字符串 ,与  || 相同

INITCAT

将字符串的第一个字母变为大写

INSTR

找出某个字符串的位置

INSTRB

找出某个字符串的位置和字节数

LENGTH

以字符给出字符串的长度

LENGTHB

以字节给出字符串的长度

LOWER

将字符串转换成小写

LPAD

使用指定的字符在字符的左边填充

LTRIM

在左边裁剪掉指定的字符

RPAD

使用指定的字符在字符的右边填充

RTRIM

在右边裁剪掉指定的字符

REPLACE

执行字符串搜索和替换

SUBSTR

取字符串的子串

SUBSTRB

取字符串的子串 (以字节)

SOUNDEX

返回一个同音字符串

TRANSLATE

执行字符串搜索和替换

TRIM

裁剪掉前面或后面的字符串

UPPER

将字符串变为大写

常用字符函数讲解 :

( 1 ) 求字符串长度 LENGTH

语句 :

select length('ABCD') from dual;

显示结果为 :

( 2 ) 求字符串的子串 SUBSTR

语句 :

select substr('ABCD',2,2) from dual;

显示结果为 :

( 3 ) 字符串拼接 CONCAT

语句 :

select concat('ABC', 'D') from dual;

查询结果如下 :

我们也可以用||  对字符串进行拼接

select 'ABC' || 'D' from dual;

查询结果同上。

      1. 数值函数

函数

说明

ABS(value)

绝对值

CEIL(value)

大于或等于 value 的最小整数

COS(value)

余弦

COSH(value)

反余弦

EXP(value)

e 的 value 次幂

FLOOR(value)

小于或等于 value 的最大整数

LN(value)

value 的自然对数

LOG(value)

value 的以 10 为底的对数

MOD(value,divisor)

求模

POWER(value,exponent)

value 的 exponent 次幂

ROUND(value,precision)

按 precision 精度 4 舍 5 入

SIGN(value)

value 为正返回 1;为负返回-1;为 0 返回 0.

SIN(value)

余弦

SINH(value)

反余弦

SQRT(value)

value  的平方根

TAN(value)

正切

TANH(value)

反正切

TRUNC(value,按 precision)

按照 precision 截取 value

VSIZE(value)

返回 value 在 ORACLE 的存储空间大小

常用数值函数讲解 :

( 1 ) 四舍五入函数 ROUND

语句 :

select round(100.567) from dual

查询结果如下 :

语句 :

select round(100.567,2) from dual;

查询结果如下 :

( 2 ) 截取函数 TRUNC

语句 :

select trunc(100.567) from dual;

查询结果 :

语句 :

select trunc(100.567, 2) from dual;

查询结果 :

( 3 ) 取模   MOD

语句 :

select mod(10, 3) from dual;

结果 :

(三) 日期函数

函   数

描      述

ADD_MONTHS

在日期 date 上增加 count 个月

GREATEST(date1,date2,. . .)

从日期列表中选出最晚的日期

LAST_DAY( date )

返回日期 date 所在月的最后一天

LEAST( date1, date2, . . .)

从日期列表中选出最早的日期

MONTHS_BETWEEN(date2, date1)

给出  Date2 - date1  的月数(可以是小数)

NEXT_DAY( date,’day’)

给出日期 date 之后下一天的日期 ,这里的 day 为星期 , 如 :MONDAY,Tuesday 等。

NEW_TIME(date, ’this’,’other’)

给出在 this  时区=Other 时区的日期和时间

ROUND(date,’format’)

未指定 format 时 ,如果日期中的时间在中午之前 ,则 将日期中的时间截断为 12 A.M.(午夜 ,一天的开始),否 则进到第二天。

时间截断为 12 A.M.(午夜 ,一天的开始), 否则进到第二天。

TRUNC(date,’format’)

未指定 format 时 ,将日期截为 12 A.M.( 午夜 ,一天的开始).

我们用 sysdate 这个系统变量来获取当前日期和时间

语句如下 :

select sysdate from dual;

查询结果如下 :

常用日期函数讲解 :

( 1 ) 加月函数 ADD_MONTHS:在当前日期基础上加指定的月

语句 :

select add_months(sysdate, 2) from dual

查询结果如下 :

( 2 )求所在月最后一天 LAST_DAY

语句 :

select last_day(sysdate) from dual

查询结果如下 :

( 3 ) 日期截取 TRUNC

语句 :

select trunc(sysdate) from dual

查询结果如下 :

语句 :

select trunc(sysdate, 'yyyy') from dual

查询结果如下 :

语句 :

select trunc(sysdate, 'mm') from dual

查询结果如下 :

      1. 转换函数

函   数

描      述

CHARTOROWID

将 字符转换到  rowid 类型

CONVERT

转换一个字符节到另外一个字符节

HEXTORAW

转换十六进制到 raw 类型

RAWTOHEX

转换 raw 到十六进制

ROWIDTOCHAR

转换  ROWID 到字符

TO_CHAR

转换日期格式到字符串

TO_DATE

按照指定的格式将字符串转换到日期型

TO_MULTIBYTE

把单字节字符转换到多字节

TO_NUMBER

将数字字串转换到数字

TO_SINGLE_BYTE

转换多字节到单字节

常用转换函数讲解 :

( 1 ) 数字转字符串 TO_CHAR

语句 :

select to_char(1024) from dual

查询结果 :

( 2 )  日期转字符串 TO_CHAR

语句 :

select to_char(sysdate, 'yyyy-mm-dd') from dual

查询结果 :

语句 :

select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual

查询结果 :

语句 :

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual

查询结果 :

( 3 )字符串转日期 TO_DATE

语句 :

select to_date('2017-01-01', 'yyyy-mm-dd') from dual

查询结果如下 :

( 4 ) 字符串转数字 TO_NUMBER

语句 :

select to_number('100'), '100' from dual

查询结果如下 :

      1. 其它函数

( 1 ) 空值处理函数 NVL

用法 :

NVL (检测的值 ,如果为 null 的值)  ;

语句 :

select NVL(NULL, 0) from dual

查询结果如下 :

需求 :

显示价格表中业主类型 ID 为 1 的价格记录 ,如果上限值为 NULL,则显示 9999999

语句 :

select price, minnum, nvl(maxnum,9999999)

from t_pricetable

where ownertypeid=1

查询结果 :

( 2 ) 空值处理函数 NVL2

用法 :

NVL2 (检测的值,如果不为 null 的值,如果为 null 的值)  ;

需求 :显示价格表中业主类型 ID 为 1 的价格记录 ,如果上限值为 NULL,显示“不限“ .

语句 :

select price, minnum, nvl2(maxnum, to_char(maxnum), '不 限')

from t_pricetable

where ownertypeid=1

( 3 ) 条件取值 decode

语法 :

decode(条件,值 1,翻译值 1,值 2,翻译值 2,...值 n,翻译值 n,缺省值)

【功能】根据条件返回相应值

需求 :显示下列信息 (不要关联查询业主类型表 ,直接判断 1 2 3  的值)

语句 :

select name,

       decode(ownertypeid, 1, '居 民', 2, '行 政 事 业 单 位', 3, '商业') as 类型     

from t_owners

上边的语句也可以用 case when then  语句来实现

select name,

       (case ownertypeid

         when 1 then '居民'

         when 2 then '行政事业单位 '

         when 3 then '商业'       end)

from t_owners

还有另外一种写法 :

select name,

      (case

        when ownertypeid=1 then '居民'

        when ownertypeid=2 then '行政事业'

        when ownertypeid=3 then '商业'

      end )

from t_owners

时间相关函数

时间相关函数的注意 :

Orcale中时间类型date是 必须为 年月日时分秒的样式

和mysql中不一样 没有单独的year时间类型

01-to_date是把字符串转化为时间类型:

SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL;

SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL;

SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL;

SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL;

SELECT TO_DATE('2006', 'YYYY') FROM DUAL;

02-trunc函数截取后的结果依然为时间类型

select sysdate S1,

trunc(sysdate) S2,

trunc(sysdate,'year') YEAR,

trunc(sysdate,'month') MONTH ,

trunc(sysdate,'day') DAY

from dual;

03-to_char函数的结果为字符串类型

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;

select to_char(sysdate,'yyyy') as nowYear from dual;

select to_char(sysdate,'mm') as nowMonth from dual;

select to_char(sysdate,'dd') as nowDay from dual;

select to_char(sysdate,'hh24') as nowHour from dual;

select to_char(sysdate,'mi') as nowMinute from dual;

select to_char(sysdate,'ss') as nowSecond from dual;

    1. 行列转换

需求 :按月份统计 2012 年各个地区的水费 ,如下图

代码如下:

select  

  (select name from T_AREA where id= areaid ) 区域,

  sum ( case when month= '01' then money else 0 end) 一月,

  sum ( case when month= '02' then money else 0 end) 二月,

  sum ( case when month= '03' then money else 0 end) 三月,

  sum ( case when month= '04' then money else 0 end) 四月,

  sum ( case when month= '05' then money else 0 end) 五月,

  sum ( case when month= '06' then money else 0 end) 六月,

  sum ( case when month= '07' then money else 0 end) 七月,

  sum ( case when month= '08' then money else 0 end) 八月,

  sum ( case when month= '09' then money else 0 end) 九月,

  sum ( case when month= '10' then money else 0 end) 十月,

  sum ( case when month= '11' then money else 0 end) 十一月,

  sum ( case when month= '12' then money else 0 end) 十二月

from t_account

where year='2012'

group by areaid

;

需求 :按季度统计 2012 年各个地区的水费 ,如下图

语句如下 :

select

   (select t2.name from t_area t2 where id=t1.areaid) 区域,

    sum(case when month in ('01', '02', '03') then money end) as 一月,

    sum(case when month in ('04', '05', '06') then money end) as 二月,

    sum(case when month in ('07', '08', '09') then money end) as 三月,

    sum(case when month in ('10', '11', '12') then money end) as 四月

from t_account t1

where year='2012'

group by areaid

    1. 集合运算

      1. 什么是集合运算

集合运算,集合运算就是将两个或者多个结果集组合成为一个结果集。集合运算 包括 :

  • UNION ALL(并集) ,返回各个查询的所有记录 ,包括重复记录。
  • UNION(并集) ,返回各个查询的所有记录 ,不包括重复记录。
  • INTERSECT(交集) ,返回两个查询共有的记录。
  • MINUS(差集) ,返回第一个查询检索出的记录减去第二个查询检索出的记录之 后剩余的记录。

      1. 并集运算

UNION ALL  不去掉重复记录

select * from t_owners where id<=7

union all

select * from t_owners where id>=5

结果如下 :

UNION  去掉重复记录

select * from t_owners where id<=7

union

select * from t_owners where id>=5

      1. 交集运算

select * from t_owners where id<=7

intersect

select * from t_owners where id>=5

结果如下:

      1. 差集运算

select * from t_owners where id<=7

minus

select * from t_owners where id>=5

结果如下:

如果我们用 minus 运算符来实现分页 ,语句如下 :

select rownum,t.* from t_account t where rownum<=20

minus

select rownum,t.* from t_account t where rownum<=10

结果如下:

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

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

相关文章

mysql添加普通索引(简单使用)

前言&#xff1a;以订单表&#xff08;oms_order&#xff09;为例&#xff0c;添加用户id&#xff08;user_id&#xff09;为普通索引 mysql添加普通索引&#xff08;简单使用&#xff09; 1.查看表已经存在的索引情况a.语法b.使用c.结果&#xff08;这里还没有添加所以&#…

MT3029 战神小码哥

注意点&#xff1a;不能先按时间排序&#xff0c;在每个时间点选最大的。如果第一秒有p11&#xff0c;第二秒有p210和p311&#xff0c;则如果按时间来&#xff0c;则先选第一秒的1&#xff0c;再选第二秒的 11&#xff1b;但是有更优的策略&#xff1a;第一秒选p3,第二秒选p2。…

【1431】java学习网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 学习网站系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

ARP 攻击神器:ARP Spoof 保姆级教程

一、介绍 arpspoof是一种网络工具&#xff0c;用于进行ARP欺骗攻击。它允许攻击者伪造网络设备的MAC地址&#xff0c;以欺骗其他设备&#xff0c;并截获其通信。arpspoof工具通常用于网络渗透测试和安全评估&#xff0c;以测试网络的安全性和漏洞。 以下是arpspoof工具的一些…

【考研高数】学习笔记分享

派大星说数学&#xff08;导学部分&#xff09; 关于做题 测试 答疑阶段 直播 群内 高中基础知识导学 一、数与式 述了课程学习和因式分解、分式拆解等知识点。学生应了解课程内容&#xff0c;带着疑问听课&#xff0c;不要抄笔记&#xff0c;导学课和基础课都有测验&…

【Linux】LInux下的进程状态

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

海内外电商平台架构探究:技术与商业的融合

随着全球化进程的加速和互联网的普及&#xff0c;电子商务在海内外市场都蓬勃发展。海外电商平台在连接全球买家和卖家、拓展国际市场方面发挥着重要作用&#xff0c;而国内电商平台则在满足国内消费需求、促进国内经济增长方面扮演着关键角色。本文将探讨海内外电商平台的架构…

常见大厂面试题(SQL)01

知乎问答最大连续回答问题天数大于等于3天的用户及其对应等级 1.描述 现有某乎问答创作者信息表author_tb如下(其中author_id表示创作者编号、author_level表示创作者级别&#xff0c;共1-6六个级别、sex表示创作者性别)&#xff1a; author_id author_level sex 101 …

基于STM32的DAC简易信号发生器设计(HAL库)

前言&#xff1a;本文为手把手教学制造 DAC 简易信号发生器的教程&#xff0c;本教程的 MCU 使用 STM32F103ZET6 。以 HAL 库的 DAC 函数作为代码基础进行编程&#xff0c;使得信号发生器可以产生各种类型的信号波&#xff0c;包括&#xff1a;方波、三角波、正弦波和噪声波&am…

Oracle解析exp、imp及常见的问题

前言 在工作中经常需要不同数据库的导入和导出。exp和imp可以实现数据的迁移。 exo会转储产生对应的二进制文件,里面包括数据的定义信息、数据内容等,即为dump文件。 下面是使用exp和imp的一些场景 exp和imp主要有4中模式: 1)数据库模式 数据库模式也就是我们说的全备…

Pytorch 计算深度模型的大小

计算模型大小的方法 卷积 时间复杂度 与 空间复杂度 的计算方式&#xff1a; C 通道的个数&#xff0c;K卷积核大小&#xff0c;M特征图大小&#xff0c;C_l-1是输入通道的个数&#xff0c;C_l是输出通道的个数 1 模型大小 MB 计算模型的大小的原理就是计算保存模型所需要…

sprinboot+人大金仓配置

1. .yml 配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSource#driverClassName: dm.jdbc.driver.DmDriver## todo 人大金仓driverClassName: com.kingbase8.Driverdruid:## todo 人大金仓master:url: jdbc:kingbase8://111.111.111.111:54321/dbname?cu…

区块链钱包开发——专业区块链开发

随着区块链技术的发展&#xff0c;钱包开发成为了一项至关重要的任务。本文将探讨区块链钱包开发的重要性&#xff0c;分析当前面临的挑战&#xff0c;并展望未来的发展趋势。 一、区块链钱包概述 区块链钱包是一种用于存储和管理数字货币的软件工具。它为用户提供了一个安全的…

巧用断点设置查找bug【debug】

默认设置的断点&#xff0c;当代码运行到断点处MCU就会被挂起&#xff0c;从而停在断点处。 但在某些情况下&#xff0c;如调试FCCU时&#xff0c;如果设置断点&#xff0c;MCU停下后将会导致 FCCU 配置WDG超时。或在调试类似电机控制类的应用时&#xff0c;不适当的断点会导 致…

中科院1区TOP ! 影响因子8.5,稳定检索33年口碑老刊,另附同领域SCI,录用快,手慢无!

【SciencePub学术】今天小编给大家带来了一本计算机类的高分优刊解读&#xff0c;隶属于Elsevier出版社&#xff0c;JCR1区&#xff0c;中科院1区TOP&#xff0c;影响因子高达8.5&#xff0c;领域相符的学者可考虑&#xff01; Expert Systems With Applications 1 期刊概况 …

代码随想录算法训练营第四十八天| LeetCode198.打家劫舍、213.打家劫舍II、337.打家劫舍III

一、LeetCode198.打家劫舍&#xff08;线性&#xff09; 题目链接/代码讲解/视频讲解&#xff1a;https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 状态&#xff1a;已解决 1.思路 这个题的关键就在于想清楚如何抉择某个房间偷不偷的问题。根据题…

Axure RP 9 for Mac/win:打造极致交互体验的原型设计神器

在数字化浪潮席卷全球的今天&#xff0c;原型设计作为产品开发的关键环节&#xff0c;其重要性不言而喻。Axure RP 9&#xff0c;作为一款专为设计师和开发者打造的原型设计软件&#xff0c;以其出色的交互设计能力和高效的协作体验&#xff0c;赢得了广大用户的青睐。 Axure …

不同语种下的应用该如何测试?

在测试的过程中&#xff0c;我们有时候会遇到不同语种的页面&#xff0c;通常涉及到国际化&#xff08;Internationalization, i18n&#xff09;和本地化&#xff08;Localization, l10n&#xff09;&#xff0c;在测试的过程中如何保障不同语种软件或应用质量&#xff0c;值得…

xgp会员一年多少钱?xgp一个月多少钱?微软商店xgp会员价格指南

xgp是xbox游戏平台。xgp是类似于steam、epic等&#xff0c;拥有丰富游戏资源的平台。该平 台的全称为“XBox Game Pass”&#xff0c;俗称为“西瓜皮”。xgp是会员订阅模式&#xff0c;开启会员后&#xff0c;所有游戏资源都为你开放。pc版的&#xff0c;第一个月10港币&#x…

1688代采系统:解决全球化采购难题的技术创新

跨境寻源通&#xff08;1688代采系统&#xff09;是面向全球化采购市场的一项技术创新&#xff0c;它旨在帮助企业更高效、便捷和安全地进行跨境采购。以下是这项服务的几个关键特点&#xff1a; 多语言支持&#xff1a;跨境采购往往面临语言障碍问题&#xff0c;而跨境寻源通…