当前位置: 首页 > article >正文

数据库:一文掌握 Oracle 的各种指令(Oracle指令备忘)

文章目录

    • 入门
      • SELECT 语句
      • SELECT INTO 语句
      • INSERT 语句
      • DELETE 语句
      • UPDATE 语句
    • SEQUENCES
      • CREATE SEQUENCE
      • ALTER SEQUENCE
      • 从字符串生成查询
      • 字符串操作
      • Instr
      • Replace
      • Substr
      • Trim
    • DDL SQL
      • 创建表
      • 添加列
      • 修改列
      • 删除列
      • 约束类型和代码
      • 显示约束
      • 选择参照约束
      • 对表设置约束
      • 表上的唯一索引
      • 添加唯一约束
      • 添加外部约束
      • 删除约束
    • INDEXES
      • 创建索引
      • 创建基于函数的索引
      • 重命名索引
      • 收集索引的统计信息
      • 删除索引
    • DBA 相关
      • 创建用户
      • 授予特权
      • 更改密码
      • 查看表空间的名称以及大小
      • 查看还没提交的事务
      • 查看数据库库对象
      • 查看数据库的版本
      • 查看数据库的创建日期和归档方式
      • 查看控制文件
      • 查看日志文件
      • 查看表空间的使用情況
      • 捕捉运行很久的SOL

入门

SELECT 语句

SELECT * 
FROM beverages 
WHERE field1 = 'Kona' AND field2 = 'coffee' AND field3 = 122;

SELECT INTO 语句

SELECT name, address, phone_number 
INTO v_employee_name, v_employee_address, v_employee_phone_number 
FROM employee 
WHERE employee_id = 6;

INSERT 语句

使用 VALUES 关键字插入

INSERT INTO table_name 
VALUES ('Value1', 'Value2', ... );INSERT INTO table_name (Column1, Column2, ... ) 
VALUES ( 'Value1', 'Value2', ... );

使用 SELECT 语句插入

INSERT INTO table_name
SELECT Value1, Value2, ...
FROM table_name;INSERT INTO table_name (Column1, Column2, ...)
SELECT Value1, Value2, ...
FROM table_name;

DELETE 语句

DELETE FROM table_name 
WHERE some_column = some_value;DELETE FROM customer 
WHERE sold = 0;

UPDATE 语句

-- 更新该表的整个列,设置 `state` 列所有值为 `CA`
UPDATE customer SET state='CA';
-- 更新表的具体记录eg:
UPDATE customer SET name='Joe' WHERE customer_id=10;
-- 当 `paid` 列大于零时,将列 `invoice` 更新为 `paid`
UPDATE movies SET invoice='paid' WHERE paid > 0;

SEQUENCES

CREATE SEQUENCE

序列的语法是

CREATE SEQUENCE sequence_nameMINVALUE valueMAXVALUE valueSTART WITH valueINCREMENT BY valueCACHE value;

例如

CREATE SEQUENCE supplier_seqMINVALUE 1MAXVALUE 999999999999999999999999999START WITH 1INCREMENT BY 1CACHE 20;

ALTER SEQUENCE

将序列增加一定数量

ALTER SEQUENCE <sequence_name> INCREMENT BY <integer>;
ALTER SEQUENCE seq_inc_by_ten  INCREMENT BY 10;

改变序列的最大值

ALTER SEQUENCE <sequence_name> MAXVALUE <integer>;
ALTER SEQUENCE seq_maxval  MAXVALUE  10;

设置序列循环或不循环

ALTER SEQUENCE <sequence_name> <CYCLE | NOCYCLE>;
ALTER SEQUENCE seq_cycle NOCYCLE;

配置序列以缓存值

ALTER SEQUENCE <sequence_name> CACHE <integer> | NOCACHE;
ALTER SEQUENCE seq_cache NOCACHE;

设置是否按顺序返回值

ALTER SEQUENCE <sequence_name> <ORDER | NOORDER>;
ALTER SEQUENCE seq_order NOORDER;
ALTER SEQUENCE seq_order;

从字符串生成查询

有时需要从字符串创建查询

PROCEDURE oracle_runtime_query_pcd ISTYPE ref_cursor IS REF CURSOR;l_cursor        ref_cursor;v_query         varchar2(5000);v_name          varchar2(64);
BEGINv_query := 'SELECT name FROM employee WHERE employee_id=5';OPEN l_cursor FOR v_query;LOOPFETCH l_cursor INTO v_name;EXIT WHEN l_cursor%NOTFOUND;END LOOP;CLOSE l_cursor;
END;

这是一个如何完成动态查询的非常简单的示例

字符串操作

length( string1 );

SELECT length('hello world') FROM dual;

这将返回 11,因为参数由 11 个字符组成,包括空格

SELECT lengthb('hello world') FROM dual;
SELECT lengthc('hello world') FROM dual;
SELECT length2('hello world') FROM dual;
SELECT length4('hello world') FROM dual;

这些也返回 11,因为调用的函数是等价的

Instr

Instr(在字符串中)返回一个整数,该整数指定字符串中子字符串的位置。程序员可以指定他们想要检测的字符串的外观以及起始位置。不成功的搜索返回 0

instr( string1, string2, [ start_position ], [ nth_appearance ] )

instr( 'oracle pl/sql cheatsheet', '/');

这将返回 10,因为第一次出现的 / 是第十个字符

instr( 'oracle pl/sql cheatsheet', 'e', 1, 2);

这将返回 17,因为第二次出现的 e 是第 17 个字符

instr( 'oracle pl/sql cheatsheet', '/', 12, 1);

这将返回 0,因为第一次出现的 / 在起点之前,即第 12 个字符

Replace

replace(string1, string_to_replace, [ replacement_string ] );replace('i am here','am','am not');

这返回 i am not here

Substr

SELECT substr( 'oracle pl/sql cheatsheet', 8, 6) FROM dual;

返回 pl/sql,因为 pl/sql 中的 p 在字符串中的第 8 个位置(从 oracle 中的 o 处的 1 开始计算)

SELECT substr( 'oracle pl/sql cheatsheet', 15) FROM dual;

返回 cheatsheet,因为 c 在字符串中的第 15 个位置,t是字符串中的最后一个字符。

SELECT substr('oracle pl/sql cheatsheet', -10, 5) FROM dual;

返回 cheat,因为 c 是字符串中的第 10 个字符,从字符串末尾以 t 作为位置 1 开始计算。

Trim

这些函数可用于从字符串中过滤不需要的字符。默认情况下,它们会删除空格,但也可以指定要删除的字符集

trim ( [ leading | trailing | both ] [ trim-char ] from string-to-be-trimmed );
trim ('   删除两侧的空格     ');

这将返回“删除两侧的空格

ltrim ( string-to-be-trimmed [, trimming-char-set ] );
ltrim ('   删除左侧的空格     ');

这将返回“删除左侧的空格      ”

rtrim ( string-to-be-trimmed [, trimming-char-set ] );
rtrim ('   删除右侧的空格     ');

这将返回“      删除右侧的空格

DDL SQL

创建表

创建表的语法

CREATE TABLE [table name]( [column name] [datatype], ... );

示例:

 CREATE TABLE employee(id int, name varchar(20));

添加列

添加列的语法

ALTER TABLE [table name]ADD ( [column name] [datatype], ... );

示例:

ALTER TABLE employeeADD (id int)

修改列

修改列的语法

ALTER TABLE [table name]MODIFY ( [column name] [new datatype]);

ALTER 表语法和示例:

ALTER TABLE employeeMODIFY( sickHours s float );

删除列

删除列的语法

ALTER TABLE [table name]DROP COLUMN [column name];

示例:

ALTER TABLE employeeDROP COLUMN vacationPay;

约束类型和代码

类型代码类型描述作用于级别
C检查表Column
O在视图上只读Object
P首要的关键Object
R参考 AKA 外键Column
U唯一键Column
V检查视图上的选项Object

显示约束

以下语句显示了系统中的所有约束:

SELECTtable_name,constraint_name,constraint_type
FROM user_constraints;

选择参照约束

以下语句显示了源和目标表/列对的所有引用约束(外键):

SELECTc_list.CONSTRAINT_NAME as NAME,c_src.TABLE_NAME as SRC_TABLE,c_src.COLUMN_NAME as SRC_COLUMN,c_dest.TABLE_NAME as DEST_TABLE,c_dest.COLUMN_NAME as DEST_COLUMN
FROM ALL_CONSTRAINTS c_list,ALL_CONS_COLUMNS c_src,ALL_CONS_COLUMNS c_dest
WHERE c_list.CONSTRAINT_NAME = c_src.CONSTRAINT_NAMEAND c_list.R_CONSTRAINT_NAME = c_dest.CONSTRAINT_NAMEAND c_list.CONSTRAINT_TYPE = 'R'

对表设置约束

使用 CREATE TABLE 语句创建检查约束的语法是:

CREATE TABLE table_name
(column1 datatype null/not null,column2 datatype null/not null,...CONSTRAINT constraint_nameCHECK (column_name condition) [DISABLE]
);

例如:

CREATE TABLE suppliers
(supplier_id  numeric(4),supplier_name  varchar2(50),CONSTRAINT check_supplier_idCHECK (supplier_id BETWEEN 100 and 9999)
);

表上的唯一索引

使用 CREATE TABLE 语句创建唯一约束的语法是:

CREATE TABLE table_name
(column1 datatype null/not null,column2 datatype null/not null,...CONSTRAINT constraint_name UNIQUE (column1, column2, column_n)
);

例如:

CREATE TABLE customer
(id   integer not null,name varchar2(20),CONSTRAINT customer_id_constraintUNIQUE (id)
);

添加唯一约束

唯一约束的语法是:

ALTER TABLE [table name]ADD CONSTRAINT [constraint name] UNIQUE([column name]) USING INDEX [index name];

例如:

ALTER TABLE employeeADD CONSTRAINT uniqueEmployeeId UNIQUE(employeeId) USING INDEX ourcompanyIndx_tbs;

添加外部约束

foregin 约束的语法是:

ALTER TABLE [table name]ADD CONSTRAINT [constraint name] FOREIGN KEY (column,...) REFERENCES table [(column,...)] [ON DELETE {CASCADE | SET NULL}];

例如:

ALTER TABLE employeeADD CONSTRAINT fk_departament FOREIGN KEY (departmentId) REFERENCES departments(Id);

删除约束

删除(删除)约束的语法是:

ALTER TABLE [table name]DROP CONSTRAINT [constraint name];

例如:

ALTER TABLE employeeDROP CONSTRAINT uniqueEmployeeId;

INDEXES

创建索引

创建索引的语法是:

CREATE [UNIQUE] INDEX index_nameON table_name (column1,column2,. column_n)[ COMPUTE STATISTICS ];
  • UNIQUE 表示索引列中值的组合必须是唯一的
  • COMPUTE STATISTICS 告诉 Oracle 在创建索引期间收集统计信息。然后优化器使用这些统计信息来选择执行语句时的最佳执行计划。例如:
CREATE INDEX customer_idxON customer (customer_name);

在此示例中,已在名为 customer_idx 的客户表上创建了一个索引。它仅包含 customer_name 字段

下面创建一个包含多个字段的索引:

CREATE INDEX customer_idxON supplier (customer_name, country);

以下内容在创建索引时收集统计信息:

CREATE INDEX customer_idxON supplier (customer_name, country)COMPUTE STATISTICS;

创建基于函数的索引

Oracle 中,您不仅限于在列上创建索引。您可以创建基于函数的索引

创建基于函数的索引的语法是:

CREATE [UNIQUE] INDEX index_nameON table_name (function1, function2, . function_n)[ COMPUTE STATISTICS ];

例如:

CREATE INDEX customer_idxON customer (UPPER(customer_name));
-- 已创建基于 customer_name 字段的大写评估的索引

为确保 Oracle 优化器在执行 SQL 语句时使用此索引,请确保 UPPER(customer_name) 的计算结果不为 NULL 值。 为确保这一点,请将 UPPER(customer_name) IS NOT NULL 添加到 WHERE 子句中,如下所示:

SELECT customer_id, customer_name, UPPER(customer_name)
FROM customer
WHERE UPPER(customer_name) IS NOT NULL
ORDER BY UPPER(customer_name);

重命名索引

重命名索引的语法是:

ALTER INDEX index_nameRENAME TO new_index_name;

例如:

ALTER INDEX customer_idRENAME TO new_customer_id;

在此示例中,customer_id 重命名为 new_customer_id

收集索引的统计信息

如果您需要在索引首次创建后收集统计信息或者您想要更新统计信息,您总是可以使用 ALTER INDEX 命令来收集统计信息。 您收集统计信息以便 oracle 可以有效地使用索引。 这将重新计算表大小、行数、块数、段数并更新字典表,以便 oracle 在选择执行计划时可以有效地使用数据。

收集索引统计信息的语法是:

ALTER INDEX index_nameREBUILD COMPUTE STATISTICS;

例如:

ALTER INDEX customer_idxREBUILD COMPUTE STATISTICS;

在此示例中,为名为 customer_idx 的索引收集统计信息

删除索引

删除索引的语法是:

DROP INDEX index_name;

例如:

DROP INDEX customer_idx;

在此示例中,删除了 customer_idx

DBA 相关

创建用户

创建用户的语法是:

CREATE USER usernameIDENTIFIED BY password;

例如:

CREATE USER brian IDENTIFIED BY brianpass;

授予特权

授予权限的语法是:

GRANT privilege TO user;

例如:

GRANT dba TO brian;

更改密码

更改用户密码的语法是:

ALTER USER username IDENTIFIED BY password;

例如:

ALTER USER brian IDENTIFIED BY brianpassword;

查看表空间的名称以及大小

SELECT t.table_name,ROUND(SUM(bytes / (1024 * 1024)), 0) AS ts_size
FROM dba_tablespaces t,dba_data_files d
WHERE t.table_name = d.table_name
GROUP BY t.table_name;

查看还没提交的事务

select * from v$locked_object;
select * from v$transaction;

查看数据库库对象

SELECT owner, object_type, status, COUNT(*) AS count#
FROM all_objects
GROUP BY owner, object_type, status;

查看数据库的版本

SELECT version
FROM Product_component_version
WHERE SUBSTR(PRODUCT, 1, 6) = 'Oracle';

查看数据库的创建日期和归档方式

SELECT created, Log_Mode, Log_Mode 
FROM v$Database;

查看控制文件

select name from v$controlfile;

查看日志文件

select member from v$logfile;

查看表空间的使用情況

SELECT SUM(bytes)/(1024*1024) AS free_space,tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;

捕捉运行很久的SOL

COLUMN username FORMAT A12
COLUMN opname FORMAT A16
COLUMN progress FORMAT A8SELECT username,sid,opname,ROUND(sofar * 100 / totalwork, 0) || '%' AS progress,time_remaining,sql_text
FROM v$session_longops, v$sql
WHERE time_remaining <> 0AND sql_address = addressAND sql_hash_value = hash_value;

相关文章:

数据库:一文掌握 Oracle 的各种指令(Oracle指令备忘)

文章目录 入门SELECT 语句SELECT INTO 语句INSERT 语句DELETE 语句UPDATE 语句 SEQUENCESCREATE SEQUENCEALTER SEQUENCE从字符串生成查询字符串操作InstrReplaceSubstrTrim DDL SQL创建表添加列修改列删除列约束类型和代码显示约束选择参照约束对表设置约束表上的唯一索引添加…...

java并发编程 juc线程类介绍

Java并发编程实战&#xff1a;深度解析CountDownLatch、CyclicBarrier与Semaphore 引言&#xff1a;线程同步的艺术 在现代多核处理器架构下&#xff0c;高效的并发编程能力已成为Java开发者的必备技能。java.util.concurrent包中的CountDownLatch、CyclicBarrier和Semaphore…...

API接口自动化学习总结

视频&#xff1a;python 做 API接口测试 和 自动化 - 1周入门_哔哩哔哩_bilibili 资料&#xff1a;HTTP协议 - 白月黑羽 要学习接口自动化&#xff0c;先要知道http协议和requests库&#xff0c;后面则是接口手工测试和接口自动化测试。 HTTP协议&#xff1a; HTTP协议简介…...

Python中的字典:深度解析与应用实践

一、字典的本质与特性 Python字典&#xff08;Dictionary&#xff09;是以**键值对&#xff08;Key-Value Pair&#xff09;**形式存储数据的无序集合&#xff0c;使用大括号{}定义。其核心特性包括&#xff1a; 快速查找&#xff1a;基于哈希表实现&#xff0c;通过键&#…...

1. 环境准备

安装CentOS 7 配置网络 默认网络是NAT 端口转发 更改/etc/sysconfig/network-scripts/ifcfg-ens33 修改以下内容&#xff1a; BOOTPROTOstatic 启用静态IP地址 ONBOOTyes 开启自动启用网络连接 添加以下内容&#xff1a; IPADDR192.168.30.100 设置IP地址 NETMASK255.25…...

【链表】一文搞定链表算法:从基础到实战

提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言例题一、两数相加二、两两交换链表中的节点三、重排链表四、合并K个升序链表五、 K个⼀组翻转链表 结语 前言 什么是链表算法&#xff1a; 链表算法&#xff0…...

瑞萨RA系列使用JLink RTT Viewer输出调试信息

引言 还在用UART调试程序么?试试JLINK的RTT Viewer吧!不需占用UART端口、低资源暂用、实时性高延时微秒级,这么好的工具还有什么理由不用了! 目录 一、JLink RTT Viewer 简介 二、软件安装 三、工程应用 3.1 SEGGER_RTT驱动包 3.2 手搓宏定义APP_PRINT 3.3 使用APP_…...

DEFI币生态重构加速,XBIT去中心化交易所引领DEX安全新范式

2025年3月18日&#xff0c;全球加密市场在监管与技术共振下迎来结构性变革。去中心化金融&#xff08;DeFi&#xff09;代币DEFI币因跨链流动性协议升级引发社区热议&#xff0c;而币应XBIT去中心化交易所&#xff08;以下简称XBIT&#xff09;凭借其链上透明验证机制、无需下载…...

高性能缓存:使用 Redis 和本地内存缓存实战示例

在现代高并发系统中&#xff0c;缓存技术是提升性能和降低数据库压力的关键手段。无论是分布式系统中的Redis缓存&#xff0c;还是本地高效的本地内存缓存&#xff0c;合理使用都能让你的应用如虎添翼。今天&#xff0c;我们将基于go-dev-frame/sponge/pkg/cache库的代码示例&a…...

Linux动态库和静态库

Linux动态库和静态库 Linux动态库和静态库动静态库的基本原理可执行程序的生成过程动静态库的本质 认识动静态库背后的库支持动静态库的命名静态链接示例 动静态库各自的特征静态库动态库 静态库的打包与使用示例文件打包1. 生成目标文件2. 打包静态库3. 组织文件使用 Makefile…...

13 IO流:字节流、字符流、缓冲流、文件复制(字节/字符/缓冲区)、字符转换流、打印流、IO框架(黑马Java视频笔记)

文章目录 IO流 >> 读写数据的方案1. 认识IO流1&#xff09;IO流的分类2&#xff09;IO流的体系 2. 文件字节输入流2.1 创建文件字节流对象2.2 读取文件1&#xff09;使用read()方法一个一个字节的读取2&#xff09;使用字节数组读取数据:byte[]3&#xff09;使用字节流读…...

深入理解 TypeScript 中的迭代器(Iterators)与生成器(Generators)

一、为什么需要迭代协议&#xff1f; 在现代 JavaScript/TypeScript 开发中&#xff0c;我们经常需要处理各种集合型数据&#xff1a;数组、Map、Set 甚至是自定义数据结构。ES6 引入的迭代协议&#xff08;Iteration Protocols&#xff09;正是为了解决统一遍历机制的问题。通…...

靶场(十四)---小白心得思路分享---Extplorer

启程&#xff1a; 开始扫描端口服务&#xff0c;发现什么都没有&#xff0c;果断进行下一步目录扫描 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 98:4e:5d:e1:e6:97:29:6f:…...

逆向中常见的加密算法识别

1、base64及换表 base64主要是将输入的每3字节&#xff08;共24bit&#xff09;按照每六比特分成一组&#xff0c;变成4个小于64的索引值&#xff0c;然后通过一个索引表得到4个可见的字符。 索引表为一个64字节的字符串&#xff0c;如果在代码中发现引用了这个索引表“ABCDEF…...

【初学者】怎样学习、使用与研究算法?

李升伟 整理 学习、使用与研究算法是一个系统化的过程&#xff0c;涉及理论学习、实践应用和深入研究。以下从学习方法、使用技巧和研究方向三个方面进行详细阐述&#xff1a; 一、学习方法 1. 分阶段学习 初级阶段&#xff1a;掌握经典算法&#xff0c;如最短路径算法&…...

【愚公系列】《高效使用DeepSeek》018-错题本整理

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

Linux上的`i2c-tools`工具集的编译构建和安装

源码复制到Ubuntu系统中并解压 的i2c-tools工具集的源码百度网盘下载链接&#xff1a; https://pan.baidu.com/s/1XNuMuT1auT1dMzYo3LAFmw?pwdi6xe 终端进入源码目录 cd /home/book/mybuild/i2c-tools-4.2执行编译构建命令 运行下面的命令进行编译构建 make CC${CROSS_COM…...

langgraph简单Demo(使用langserve实现外部调用)

前言 这个示例是研究如何使用langserve实现外部调用 接入大模型参考文章&#xff1a;接入阿里云百炼 1、安装依赖 pip install langserve fastapi uvicorn pip install sse_starlette 2、代码实现 from fastapi import FastAPI from langchain_core.messages import HumanM…...

【C#高阶编程】—单例模式详解

C# 单例模式 单例模式是一种设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。单例模式常用于需要全局唯一对象的场景&#xff0c;比如配置文件管理、日志记录、数据库连接池等。 单例模式的核心特点 私有构造函数&#xff1a;…...

折叠树报表

折叠树报表中包含了三种信息: 1.树组织信息-可展开、收拢 2.节点的统计信息(汇总求和) 3.每个节点对应的数据信息 一、准备数据 mysql8 数据库中存在两张表 org和store表。 org表和部分数据如下,其中orgname是组织的名称,codepath是完整的组织代码,seq是每个节点的顺序,可…...

Python个人学习笔记(16):模块(os)

四、os模块 主要用于文件夹处理 &#xff08;一&#xff09;文件夹相关 os.makedirs(‘dirname1/dirname2’) &#xff1a;创建文件夹目录&#xff0c;不能重复创建&#xff0c;用的多 代码&#xff1a; os.makedirs(a/b/c)结果&#xff1a; os.removedirs(‘dirname1’)&…...

虚拟地址空间(下)进程地址空间(上)

一.关于页表组成 1.权限&#xff08;rwx) 作用&#xff1a;如1.让代码区变成只读的 2.写时拷贝的实现&#xff1a;子进程创建时其页表指向的父进程代码和数据权限都是只读的&#xff0c;子进程试图修改&#xff0c;触发错误&#xff0c;系统开始写时拷贝。 来源&#xff1a;…...

【数据集分享】青藏高原两次强震玛多地震和漾濞地震的震源过程

2021年5月21日&#xff0c;5小时内在青藏高原不同区域发生了漾濞6.4级和玛多7.4级强烈地震&#xff0c;表明印度板块和欧亚大陆板块的碰撞汇聚作用下青藏高原持续和频繁的 剧烈构造运动和地震活动。本研究利用地震记录和空间对地观测同震位移资料&#xff08;InSAR&#xff09;…...

jmeter环境搭建及使用

Meter 是一个开源的性能测试工具&#xff0c;用于测试静态和动态资源的性能。 1、安装 官网下载&#xff1a; 下载地址&#xff1a;Apache JMeter - Download Apache JMeter 网盘下载&#xff1a; 通过百度网盘分享的文件&#xff1a;apache-jmeter-5.6.3.rar 链接&#x…...

Python 鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…...

网络编程--服务器双客户端聊天

写一个服务器和客户端 运行服务器和2个客户端&#xff0c;实现聊天功能 客户端1和客户端2进行聊天&#xff0c;客户端1将聊天数据发送给服务器&#xff0c;服务器将聊天数据转发给客户端2 要求&#xff1a; 服务器使用 select 模型实现 &#xff0c;客户端1使用 poll 模型实现…...

yum软件包乾坤大挪移(Yum Package Qiankun Great Migration)

yum软件包乾坤大挪移 背景 由于很多的生产环境是无法连接外网的&#xff0c;因此用yum或者dnf命令来安装软件包常常是一个比较麻烦的事情&#xff0c;原因是很多软件的依赖很复杂&#xff0c;如果要一个个下载、拷贝、再安装&#xff0c;这往往是一个非常繁琐冗杂的过程&…...

Java:读取中文,read方法

public static void main(String[] args) throws IOException {FileReader fr new FileReader("C:\\aaa\\a.txt");//字符流的底层也是一个字节一个字节读取的&#xff0c;遇到中文就一次读多个&#xff0c;GBK一次读两个&#xff0c;UTF-8一次读三个字节//idea默认U…...

[GHCTF 2025]真会布置栈吗?

题目是一个聊天室,我们先按照题目使用 /help Help: /help 显示此帮助信息 /msg [text] 在当前频道发送消息 /nick [name] 更改你的用户名 /list 列出可用的频道 /join [channel] 切换到不同的频道 /channel …...

集合的练习1-2

//练习1&#xff1a; import java.util.ArrayList;public class ArraylistTest1 {public static void main(String[] args){ArrayList<String> listnew ArrayList<>();//需求&#xff1a;定义一个集合&#xff0c;添加字符串&#xff0c;并进行遍历//遍历格式&…...