Oracle和Mysql数据库

数据库

  • Oracle 体系结构与基本概念
    • 体系结构
    • 基本概念
      • 表空间(users)和数据文件
      • 段、区、块
      • Oracle数据库的基本元素
  • Oracle数据库启动和关闭
    • Oracle数据库启动
    • Oracle数据库关闭
  • Sqlplus
    • sqlplus 登录数据库管理系统
      • 使用sqlplus登录Oracle数据库
      • 远程登录
      • 解锁用户
      • 修改用户密码
      • 查看当前语言环境
    • sqlplus基本操作
      • 显示当前用户
      • 查看当前用户下的表
      • 查看员工表的结构
      • 设置行宽
      • 设置页大小
      • 永久设置行宽、页宽
      • 设置员工ename的列宽
      • 设置薪水的列宽
    • Oracle默认方案
      • scott方案
        • 业务场景
        • 根据公司业务抽离出的表
      • hr方案
  • SQL
    • SQL语言的类型
      • DML
      • DDL
      • DCL
    • 基本 SELECT 语句
      • 查询案例
        • 查询员工号、姓名、薪水
        • 别名:as
        • DISTINCT关键字
        • 算数运算 + - * / 和 NULL值
      • 过滤和排序数据
        • where条件过滤
          • 查询10号部门的员工信息
          • 查询"KING"的信息
          • 修改系统当前日期格式
          • 比较运算
          • like:模糊查询
          • 逻辑运算
        • order by 排序
          • 使用 ORDER BY 子句排序
      • 单行函数
        • 字符函数
        • 数值函数
        • 时间函数
        • 日期函数
        • 转换函数
        • 通用函数
        • 条件表达式
      • 分组函数
        • 分组数据
          • 查询“部门”的平均工资
          • group by后面有多列的情况
        • having
          • 查询平均薪水大于2000的部门
          • 求10号部门的平均工资
      • 多表查询
        • 笛卡尔积
        • 等值连接
        • 不等值连接
        • 外连接
        • 自连接

Oracle 体系结构与基本概念

体系结构

Oracle服务器 :是一个数据管理系统(RDBMS),它提供开放的、 全面的、近乎完整的信息管理。由1个数据库和一个(或多个)实例组成。数据库位于硬盘上,实例位于内存中。
在这里插入图片描述

基本概念

表空间(users)和数据文件

1:n(表空间:数据文件)
逻辑概念:表空间由多个数据文件组成。位于实例上,在内存中。
物理概念:数据文件,位于硬盘之上。(C:\app\Administrator\oradata\orcl目录内后缀为.DBF的文件)
一个表空间可以包含一个或者是多个数据文件。
/home/oracle/app/oradata/orcl

段、区、块

在这里插入图片描述
段存在于表空间中;段是区的集合;区是数据块的集合;数据块会被映射到磁盘块。
在这里插入图片描述
在这里插入图片描述

Oracle数据库的基本元素

  • 方案schema
    方案就是一个集合,包含多个表(tables)、视图(views)、序列(sequences)、存储过程(store procudures)、索引(indexes)、同义词(synonyms)。
    oracle中每个用户都对应一个方案,方案名就是用户名。
  • 表table
    表示存储数据的逻辑容器,类似excel多行多列的表格。表创建的时候要定义它的每一列的列名以及该列的数据类型。(如:name char(10),表示定义列名为name类型为字符串型)
    创建表之后才可以往里边添加数据。
  • 视图view
    从多张表或者其他视图提取出用户所关心数据的一张虚表
  • 存储过程
    一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译。
  • 序列sequence
    是oracle提供的用于产生一系列唯一数字的数据库对象。
  • 索引index
    用于加快数据的检索,类似于书籍的索引。
  • 同义词synonyms
    别名的意思,和视图的功能类似。就是一种映射关系。

Oracle数据库启动和关闭

前提条件: 使用Oracle用户登录Linux操作系统
[root@localhost ~]# su - oracle
在这里插入图片描述
数据库管理员用户:
用户名:sys
密 码:sys

Oracle数据库启动

第一步: 通过数据库管理员登录Oracle数据库
[oracle@localhost ~]$ sqlplus / as sysdba;
在这里插入图片描述

第二步: 启动Oracle数据库
SQL> startup
在这里插入图片描述
第三步: 启动监听服务

SQL> quit
[oracle@localhost ~]$ lsnrctl start
在这里插入图片描述

Oracle数据库关闭

第一步: 通过数据库管理员登录Oracle数据库
[oracle@localhost ~]$ sqlplus / as sysdba;
在这里插入图片描述
第二步: 关闭Oracle数据库

SQL> shutdown immediate
在这里插入图片描述

第三步: 关闭监听服务
SQL> quit
[oracle@localhost ~]$ lsnrctl stop
在这里插入图片描述

Sqlplus

Oracle的sqlplus是与oracle数据库进行交互的客户端工具,借助sqlplus可以查看、修改数据库记录。在sqlplus中,可以运行sqlplus命令与sql语句
Sqlplus命令是用来修改以及调整sqlplus工具的命令。
Sql语句是用来让服务器执行相关动作的命令。

sqlplus 登录数据库管理系统

前提条件是Oracle数据库必须启动。

使用sqlplus登录Oracle数据库

sqlplus 用户名/密码
[oracle@localhost ~]$ sqlplus scott/11
在这里插入图片描述

远程登录

sqlplus 用户名/密码@//ip/实例名 ↙
远程登录oracle服务器方式,如(sqlplus scott/11@//192.168.161.130/orcl)
在这里插入图片描述
在这里插入图片描述

解锁用户

[oracle@localhost ~]$ sqlplus / as sysdba;
SQL> alter user scott account unlock;

在这里插入图片描述

修改用户密码

[oracle@localhost ~]$ sqlplus / as sysdba;
SQL> alter user scott identified by 11;
在这里插入图片描述

查看当前语言环境

SQL> select userenv('language') from dual;
在这里插入图片描述

sqlplus基本操作

前提条件是使用scott用户登录
[oracle@localhost ~]$ sqlplus scott/11

显示当前用户

SQL> show user
在这里插入图片描述

查看当前用户下的表

SQL> select *from tab;
在这里插入图片描述

查看员工表的结构

SQL> desc dept;
在这里插入图片描述

设置行宽

默认显示不好看,因此需要设置行宽。
在这里插入图片描述SQL> set linesize 140;

在这里插入图片描述

设置页大小

SQL> set pagesize 100;
在这里插入图片描述

永久设置行宽、页宽

在这里插入图片描述

在这里插入图片描述
永久设置edit打开为gedit。
在这里插入图片描述

设置员工ename的列宽

在这里插入图片描述

SQL> col ename for a6 (a表示字符串)
在这里插入图片描述

设置薪水的列宽

col sal for 9999(一个9表示一位数字)
在这里插入图片描述

Oracle默认方案

安装oracle数据库默认会自动创建scott和hr两个用户以及其方案,这些都是oracle提供给我们学习和练习的数据,我们直接在上边练习就好。

scott方案

业务场景

Scott(斯科特)是一家软件公司的数据分析师,公司为其提供专门的数据库管理账号以及方案。
公司有总裁一名(president)、经理(manager)、店员(clerk)、销售专员(salesman),分析师(analyst)若干。
公司设置有多个部门:会计部(accounting)、研发部(researching)、销售部(sales)。

根据公司业务抽离出的表
  • 员工信息表EMP(Employee)
  • 部门表DEPT(Department)
  • 工资等级表(SALGRADE)
  • 奖金表(BONUS)

在这里插入图片描述

grade: 薪水等级
losal: 最低薪水
hisal: 最高薪水
在这里插入图片描述

deptno: 部门编号
dname: 部门名称
loc: 部门位置

在这里插入图片描述
empno: 员工编号
ename: 员工姓名
job: 员工工种
mgr: 员工上司
hiredate: 雇佣日期
sal: 员工薪水
comm: 员工奖金
deptno: 员工部门编号
在这里插入图片描述

hr方案

0

在这里插入图片描述

SQL

结构化查询语言(Structured Query Language)简称SQL,是对数据库进行增、删、查、改等操作的语言。
SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准.
各种不同的数据库对SQL语言的支持与标准存在着细微的不同,这是因为,有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。

SQL语言的类型

DML

数据库中,称呼增删改查,为DML语句。(Data Manipulation Language 数据操纵语言),如:
增 insert
删 delete
改 update
查 select

DDL

数据定义语言(Data Definition Language)。如:
create table(创建表)
alter table(修改表)
truncate table(清空表)
drop table(删除表)
create view(视图)
create index(索引)
create sequence(序列)
create synonym(同义词)

DCL

数据控制语言(Data Control Language)。如:
commit(提交)
rollback(回滚)

基本 SELECT 语句

基本语法格式为:
在这里插入图片描述
语法描述说明:
花括号{}括起的部分为必填部分。
中括号[]括起来的部分为可选部分。
多种形式的语法用竖线|来表示并列单选,或者的意思。

SQL语句使用注意事项:

  • SQL 语言大小写不敏感。
  • SQL 可以写在一行或者多行,以分号;作为一条sql语句的结束标志。
  • 关键字不能被缩写也不能分行。
  • 各子句一般要分行写。
  • 使用缩进提高语句的可读性。

查询案例

查询员工号、姓名、薪水

在这里插入图片描述
增加查询年薪(使用表达式)

在这里插入图片描述

别名:as

在这里插入图片描述
解决乱码问题,修改系统字符集。
在这里插入图片描述
解决方法

DISTINCT关键字

去除结果集重复的行。
在这里插入图片描述

算数运算 + - * / 和 NULL值
  • 乘除的优先级高于加减
  • 优先级相同时,按照从左至右运算
  • 可以使用括号改变优先级

查询: 员工号、姓名、月薪、年薪、奖金、年收入。
在这里插入图片描述
结果不正确。没有奖金的员工,年收入不正确。
NULL值问题:
包含NULL值的表达式都为空。
NULL != NULL
任何算数运算碰到NULL值都变成NULL,任何逻辑运算碰到NULL值都变成假

解决:滤空函数:nvl(a, b) 如果a为NULL, 函数返回b。所以:sal * 12 + nvl(comm, 0) 年收入。
在这里插入图片描述
NULL != NULL举例:
在这里插入图片描述
在SQL中,判断一值是否等于另外一值不用“=” 和“!=”而使用is和is not。
在这里插入图片描述

过滤和排序数据

where条件过滤
查询10号部门的员工信息

在这里插入图片描述

查询"KING"的信息

在这里插入图片描述

修改系统当前日期格式

查询入职日期为1981年11月17日的员工:
在这里插入图片描述
查看系统当前的日期格式:
在这里插入图片描述
获取系统当前日期格式:

SQL> select * from v$nls_parameters在这里插入图片描述
修改日期格式:

SQL> alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd '

在这里插入图片描述
再次查询:
在这里插入图片描述
改回系统默认格式:SQL> alter session set NLS_DATE_FORMAT = ‘DD-MON-RR’;

比较运算

普通比较运算符:

= 等于(不是==)> 大于
>= 大于等于< 小于
<= 小于等于<> 不等于(也可以是!=)

查询薪水不等于1250的员工信息:
在这里插入图片描述
查询工资在1000-2000之间的员工:
在这里插入图片描述
在这里插入图片描述
查询81年2月至82年2月入职的员工信息:
在这里插入图片描述

IN:在集合中。(not in 不在集合中)

在这里插入图片描述
查询部门号为10或20的员工信息:
在这里插入图片描述

在这里插入图片描述

like:模糊查询

‘%’匹配任意多个字符。
‘_’匹配一个字符。
查询名字以S开头的员工:
在这里插入图片描述

查询名字是4个字的员工:
在这里插入图片描述
转义字符:

增加测试例子:向表中插入员工:
SQL> insert into emp(empno, ename, sal, deptno) values(1001, ’ TOM_ABC ', 3000, 10)

查询名字中包含_的员工:

SQL> select * from emp where ename like '%\_% ' escape '\';
在这里插入图片描述
转义单引号本身:

SQL> select 'hello '' world' from dual;

使用两个单引号来完成转义。

在这里插入图片描述

逻辑运算

AND 逻辑与
OR 逻辑或
NOT 逻辑非

如果
……where 表达式1 and 表达式2;
……where 表达式2 and 表达式1;
这两句SQL语句功能一样吗?效率一样吗?
SQL在解析where的时候,是从右至左解析的。
所以and时应该将易假的值放在右侧,or时应该将易真的值放在右侧。

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

order by 排序

order by + 列名,表达式,别名,序号。 注意:语法要求order by 子句应放在select的结尾。

使用 ORDER BY 子句排序

• ASC(ascend): 升序。默认采用升序方式。
• DESC(descend): 降序

查询员工信息,按月薪排序:
在这里插入图片描述

order by后有多列时,列名之间用逗号隔分,order by会同时作用于多列。
在这里插入图片描述
在这里插入图片描述

desc 只作用于最近的一列,两列都要降序排,则需要两个desc。即:
在这里插入图片描述
order by + 列名,表达式,别名,序号。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查询员工信息, 按奖金由高到低排序:
在这里插入图片描述

结果前面的值为NULL, 数据在后面,如果是一个100页的报表,这样显示肯定不正确。较为人性化的显示应该将空值放在最后, 即:
在这里插入图片描述

排序的规则

  • 可以按照select语句中的列名排序
  • 可以按照别名列名排序
  • 可以按照select语句中的列名的顺序值排序
  • 如果要按照多列进行排序,则规则是先按照第一列排序,如果相同,则按照第二列排序;以此类推

单行函数

单行函数:只对一行数据进行计算,产生一个结果。函数可以没有参数,但必须要有返回值。如:concat、nvl

  • 操作数据对象 hello world
  • 接受参数返回一个结果
  • 只对一行进行变换
  • 每行返回一个结果
  • 可以转换数据类型
  • 可以嵌套
  • 参数可以是一列或一个值
字符函数

操作对象是字符串。
大致可分为两大类:一类是大小写控制函数,主要有
lower 转小写
在这里插入图片描述

upper 转大写
在这里插入图片描述

initcap 首字母大写
在这里插入图片描述

另一类是字符控制函数:有CONCAT、SUBSTR、LENGTH/LENGTHB、INSTR、LPAD | RPAD、TRIM、REPLACE

concat(a,b):连接字符串a和b,只能连接两个

在这里插入图片描述

注意:SQL双引号“”表示别名,使用‘’来表示字符串。

另一种连接字符串的方法,使用||,可以做到多个字符串连接
在这里插入图片描述
在这里插入图片描述

substr(a, b):从a中,第b位开始取(计数从1开始),取到结尾。
在这里插入图片描述

substr(a, b, c):从a中,第b位开始,向右取c位。
在这里插入图片描述

length:字符数, lengthb:字节数
在这里插入图片描述

instr:在母串中查找子串, 找到返回下标,计数从1开始。没有返回0
在这里插入图片描述

lpad:左填充,参1:待填充的字符串,参2:填充后字符串的总长度(字节), 参3:填充什么
rpad:右填充。
在这里插入图片描述

trim:去掉前后指定的字符
在这里插入图片描述
在这里插入图片描述

replace:替换
在这里插入图片描述
在这里插入图片描述

数值函数

ROUND: 四舍五入
在这里插入图片描述

TRUNC: 截断
在这里插入图片描述

MOD: 求余

在这里插入图片描述

时间函数

在Oracle中日期型的数据,既有日期部分,也有时间部分。下一节介绍日期部分。
在这里插入图片描述
显示 昨天、今天、明天:
在这里插入图片描述
计算员工的工龄:
在这里插入图片描述

日期函数

上面求取员工工龄的结果不精确,如果想将其算准确,可以使用日期函数来做。

months_between:两个日期值相差的月数(精确值) 跟between…and无关
在这里插入图片描述

add_months:在某个日期值上,加上多少的月,正数向后计算,负数向前计算。
在这里插入图片描述

last_day:日期所在月的最后一天。
在这里插入图片描述

next_day:指定日期的下一个日期

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

转换函数

在不同的数据类型之间完成转换。将“123” 转换为 123。有隐式转换和显式转换之分。

隐式转换:
在这里插入图片描述

显式转换:
在这里插入图片描述

隐式转换的前提条件是:被转换的对象是可以转换的。

在这里插入图片描述
显示转换:借助to_char(数据,格式)、to_number、to_date函数来完成转换。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果隐式转换和显示转换都可以使用,应该首选哪个呢?

SQL优化:如果隐式、显式都可以使用,应该首选显式,这样可以省去Oracle的解析过程。

在固定的格式里加入自定义的格式,是可以的,必须要加“”。
在这里插入图片描述
反向操作:已知字符串“2024-2-1 18:30:20 ”转化成日期。
在这里插入图片描述
在这里插入图片描述

查询员工的薪水:2位小数, 本地货币代码, 千位符
在这里插入图片描述
将$2,975.00转化成数字:
在这里插入图片描述

通用函数

这些函数适用于任何数据类型,同时也适用于空值:

  • NVL (expr1, expr2)
    在这里插入图片描述

  • NVL2 (expr1, expr2, expr3)

  • NULLIF (expr1, expr2)

  • COALESCE (expr1, expr2, …, exprn)

nvl2: 是nvl函数的增强版。 nvl2(a, b, c) 当a = null 返回 c, 否则返回b。
在这里插入图片描述

nullif: nullif(a, b) 当 a = b 时返回null, 不相等的时候返回a值。
在这里插入图片描述

coalesce: coalesce(a, b, c, …, n) 从左向右找参数中第一个不为空的值。
在这里插入图片描述

条件表达式

例子:老板打算给员工涨工资, 要求:
总裁(PRESIDENT)涨1000,经理(MANAGER)涨800,其他人涨400。请将涨前、涨后的薪水列出。

但是在SQL中无法实现if else 逻辑。当有这种需求的时候,可以使用case 或者 decode
case: 是一个表达式,其语法为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
decode:是一个函数,其语法为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分组函数

分组函数作用于一组数据,并对一组数据返回一个值。
如:AVG、COUNT、MAX、MIN、SUM操作的是一组数据,返回一个结果。
求员工的工资总额:
在这里插入图片描述

员工人数:
在这里插入图片描述

平均工资:
在这里插入图片描述

求员工的平均奖金:
在这里插入图片描述

☆NULL空值:组函数都有自动滤空功能(忽略空值),所以:
在这里插入图片描述

如何屏蔽 组函数 的滤空功能:
在这里插入图片描述
但是实际应用中,结果为14和结果为4都有可能对,看问题本身是否要求统计空值。

count函数:求个数,如果要求不重复的个数,使用distinct。
求emp表中的工种:
在这里插入图片描述

分组数据

group by

按照group by 后给定的表达式,将from后面的table进行分组。针对每一组,使用组函数。

查询“部门”的平均工资

SQL> select deptno,avg(sal)from emp group by deptno;
在这里插入图片描述
上述SQL语句可以抽象成:select a, 组函数(x) from 表 group by a; 这样的格式。

如果select a, b 组函数(x) …… group by 应该怎么写?
注意:在SELECT 列表中所有没有包含在组函数中的列,都必须在group by的后面出现。所以上问应该写成group by a, b;没有b语法就会出错,不会执行SQL语句。但,反之可以。group by a,b,c; c可以不出现在select语句中。

group by后面有多列的情况

SQL> select deptno,job,avg(sal) from emp group by deptno,job order by 1;

因为deptno, job 两列没有在组函数里面,所以必须同时在group by后面。
该SQL的语义:按部门,不同的职位统计平均工资。先按第一列分组,如果第一列相同,再按第二列分组。
所以查询结果中,同一部门中没有重复的职位。

having

使用 HAVING 过滤分组:

  1. 行已经被分组。
  2. 使用了组函数。
  3. 满足HAVING 子句中条件的分组将被显示。

语法:
在这里插入图片描述

查询平均薪水大于2000的部门

分析:该问题实际上是在分组的基础上过滤分组。
SQL> select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000;
在这里插入图片描述

注意:
不能在 WHERE 子句中使用组函数。
可以在 HAVING 子句中使用组函数。

从功能上讲,where和having都是将满足条件的结果进行过滤。但是差别是where子句中不能使用 组函数!所以上句中的having不可以使用where代替。

求10号部门的平均工资

在这里插入图片描述
在子句中没有使用组函数的情况下,where、having都可以,应该怎么选择?

SQL优化: 尽量采用where。
如果有分组的话,where是先过滤再分组,而having是先分组再过滤。当数据量庞大如1亿条,where优势明显。

多表查询

多表查询的过程中其实就会构造多个表的一个笛卡尔积。

笛卡尔积

笛卡尔积就是两个集合的乘积计算,其实跟我们普通的乘法分配律相像,不过是作用于集合:

如果有一个集合M(a,b) 和集合N(c,d) , 那么集合的乘积
M x N = (a,b) x (c,d)= ( a x (c,d), b x (c,d) ) = ( ac,ad,bc,bd)

具体到我们的数据库表如下:
在这里插入图片描述
笛卡尔积的行数 = table1的行数 x table2的行数
笛卡尔积的列数 = table1的列数 + table2的列数

比如:
select * from emp,dept; 会得到如下的一个表
在这里插入图片描述
多表查询就是按照给定条件(连接条件),从笛卡尔全集中选出正确的结果。
比如上图理应该两个deptno 相同的数据才是有意义的数据。

根据连接条件的不同可以划分为:等值链接、不等值链接、外链接、自连接 。

在这里插入图片描述

等值连接

从概念上,区分等值连接和不等值连接非常简单,只需要辨别where子句后面的条件,是“=”为等值连接。不是“=”为不等值连接。

查询员工信息:员工号 姓名 月薪和部门名称

通常在进行多表查询的时,会给表起一个别名,使用“别名.列名”的方式来获取数据,直接使用“表名.列名”语法上是允许的,但是实际很少这样用。
SQL> select e.empno,e.ename,e.sal,e.deptno,d.dname,d.deptno from emp e , dept d where e.deptno= d.deptno;
在这里插入图片描述
如果:select e.empno, e.ename, e.sal, e.deptno, d.dname, d.deptno from emp e, dept d;
直接得到的是笛卡尔全集。其中有错误结果。所以应该加 where 条件进行过滤。
如果有N个表,where后面的条件至少应该有N-1个。

不等值连接

将上面的问题稍微调整下,查询员工信息:员工号 姓名 月薪 和 薪水级别(salgrade表)

分析:
在这里插入图片描述

看到员工总的薪水级别,共有5级,员工的薪水级别应该满足 >=当前级别的下限,<=该级别的上限:

SQL> select e.empno,e.ename,e.sal,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;

在这里插入图片描述

外连接

按部门统计员工人数,显示如下信息:
部门号 部门名称 人数

分析:
人数:一定是在emp表中,使用count()函数统计emp表中任一非空列均可。
部门名称:在dept表dname中,直接读取即可。
部门号:任意,两张表都有。

在这里插入图片描述
注意:由于使用了组函数count(),所以组函数外的d.deptno和d.dname必须放到group by后。

但是select * from dept发现40号部门没有显示出来,原因是40号部门没有员工,where没满足。结果不对,40号部门没有员工,应该在40号部门位置显示0。
在这里插入图片描述
我们希望: 在最后的结果中,包含某些对于where条件来说不成立的记录 (外连接的作用)

左外连接:当 where e.deptno=d.deptno 不成立的时候,=左边所表示的信息,仍然被包含。
写法:与叫法相反:where e.deptno=d.deptno(+)

右外连接:当 where e.deptno=d.deptno 不成立的时候,=右边所表示的信息,仍然被包含。
写法:依然与叫法相反:where e.deptno(+)=d.deptno

以上我们希望将没有员工的部门仍然包含到查询的结果当中。因此应该使用外链接的语法。

右外链接写法
在这里插入图片描述
左外链接写法
在这里插入图片描述

自连接

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式软件中常见的 8 种数据结构

数据结构是一种特殊的组织和存储数据的方式&#xff0c;可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。 几乎所有已开发的程序或软件系统都使用数据结构。此外&#xff0c;数据结构属于计算机科学和软件工程的基础。当…

SpringBoot:@Profile注解和Spring EL

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、Prof…

业务流程自动化平台在制造业应用案例,助力业务自动化、智能化

捷昌驱动成立于2000年&#xff0c;并于2018年9月在上海证券交易所上市&#xff0c;是一家专注于线性驱动产品研发、生产及销售的科技集团。 公司整合全球资源&#xff0c;为智慧办公、医疗康护、智能家居、工业自动化等关联产业提供驱动及智能控制解决方案&#xff0c;以科技驱…

Linux系统安全:安全技术 和 防火墙

一、安全技术 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安全决策依据,类 似于监控…

Sentinel安装

1、下载 sentinel官方提供了UI控制台&#xff0c;方便我们对系统做限流设置。大家可以在GitHub下载。 2、运行 将jar包放到任意非中文目录&#xff0c;执行命令&#xff1a; java -jar sentinel-dashboard-1.8.1.jar 如果要修改Sentinel的默认端口、账户、密码&#xff0c;…

【unity小技巧】unity3d环境带雾的昼夜系统变化

最终效果 文章目录 最终效果眩光素材眩光配置全局灯光配置天空盒配置天空盒资产配置天空盒&#xff0c;开启雾 代码控制天空盒 环境 雾 灯光昼夜交替变化参考完结 眩光素材 链接&#xff1a;https://pan.baidu.com/s/1qlFSJSju6ZjwCylwkh14eA?pwdveww 提取码&#xff1a;veww…

面试150 二进制求和 位运算

Problem: 67. 二进制求和 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public String addBinary(String a, String b){StringBuilder ans new Stri…

【知识点】Java多线程

文章目录 线程基础happen-before规则基础概念线程方法线程状态转换状态控制参考链接 线程应用线程安全常用锁独享锁 VS 共享锁自旋锁可重入锁 VS 非可重入锁锁的状态无锁偏向锁轻量级锁重量级锁综述 公平锁非公平锁同步锁乐观锁悲观锁对比 AQS基础说明原理概览常用方法应用场景…

Java 基于 SpringBoot+Vue 的考研论坛管理系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

十分钟上手vue!

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 一 vue.js的导入及使用 vue安装…

【Boost】:parser代码的基本结构(二)

parser代码的基本结构 一.总体概述二. EumeFile的实现三.ParserHtml的实现四.SaveHtml实现五.完整源代码 打开parser.cc,用vscode或者vim都行。 一.总体概述 首先递归式的把文件名和路径读入一个数组内&#xff0c;接着把数组内的每一个数据按照一定的格式进行划分&#xff0c;…

云原生业务全流程DevOps配置预研与实践

背景 我在一个二线城市&#xff08;山东济南&#xff09;&#xff0c;相对与北上广深杭这些IT业发达的城市来说&#xff0c;济南IT业对于业内新技术的接受度是有点慢的&#xff0c;国内很多一线大厂早先几年前就开始实践使用的技术&#xff0c;我们这边也是近两年才开始慢慢兴…

10. BI - 决策树的使用及可视化

本文为 「茶桁的 AI 秘籍 - BI 篇 第 10 篇」 文章目录 可视化探索决策树原理决策树算法决策树可视化泰坦尼克海难数据 Hi&#xff0c;你好。我是茶桁。 上一节课&#xff0c;咱们了解了图形的具体绘制方法&#xff0c;接下来咱们还要看看除了图形绘制之外&#xff0c;还有哪些…

手把手教你开发Python桌面应用-PyQt6图书管理系统-主界面UI背景及状态栏代码设置

锋哥原创的PyQt6图书管理系统视频教程&#xff1a; PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

山东淄博刑侦大队利用无人机抓获盗窃团伙

山东淄博刑侦大队利用无人机抓获盗窃团伙 近期&#xff0c;山东淄博临淄区发生多起盗窃案件。通过视频追踪和调查访问&#xff0c;推断临淄区某村可能为嫌疑人藏匿地点。刑侦大队无人机应急小组迅速到达现场&#xff0c;经无人机高空侦查&#xff0c;发现并锁定了嫌疑人的藏匿…

5. 基础网络服务与应用配置

5.1 实验一&#xff1a;FTP 基础配置实验 5.1.1 实验介绍 5.1.1.1 关于本实验 设备支持多种文件管理方式&#xff0c;用户根据任务和安全性要求选择合适的文件管理方式。 用户可以通过直接登录系统、FTP&#xff08;File Transfer Protocol&#xff09;、TFTP&#xff08;T…

Linux实验记录:使用vsftpd服务传输文件

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 为了解决在多样复杂的设备之间解决传…

2024年数学建模美赛 A~E 题目解析

2024美赛A题&#xff1a;资源可用性和性别比例 背景 尽管一些动物物种不属于通常的雄性或雌性&#xff0c;大多数物种在出生时要么显著地为雄性&#xff0c;要么为雌性。虽然许多物种在出生时表现出1:1的性别比&#xff0c;但其他物种则偏离了这个均衡的性别比例。这被称为性…

Netty核心原理与基础实战(二)——详解Bootstrap 备份

接上篇&#xff1a;Netty核心原理与基础实战&#xff08;一&#xff09; 1 Bootstrap基础概念 Bootstrap类是Netty提供的一个便利的工厂类&#xff0c;可以通过它来完成Netty的客户端或服务端的Netty组件的组装&#xff0c;以及Netty程序的初始化和启动执行。Netty的官方解释是…

【Linux】线程池

线程池 一、线程池的概念1、线程池的优点2、线程池的应用场景 二、线程池的实现1、实现逻辑2、threadpool线程池&#xff08;1&#xff09;threadpool.hpp代码&#xff08;2&#xff09;为什么线程池中需要有互斥锁和条件变量&#xff1f;&#xff08;3&#xff09;注意点&…
最新文章