Mariadb操作命令指南

MariaDB简介

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

数据库应用程序与主应用程序分开存在,并存储数据集合。 每个数据库都使用一个或多个API来创建,访问,管理,搜索和复制它所包含的数据。

数据库也使用非关系数据源,如对象或文件。 然而,数据库证明了大数据集的最佳选择,这些数据集将受到缓慢的检索和其他数据源的写入的影响。

关系数据库管理系统(RDBMS)将数据存储在各种表中。这些表之间的关系是使用主键和外键建立的。

RDBMS提供以下功能 -

  • 它们使您能够使用表,列和索引来实现数据源。
  • 它们确保跨多行表的引用的完整性。
  • 它们自动更新索引。
  • 它们解释SQL查询和操作来处理或从表中获取数据。

RDBMS术语

在开始讨论MariaDB之前,让我们回顾一下与数据库相关的一些术语。

  • 数据库 - 数据库是由包含相关数据的表组成的数据源。
  • - 表示电子表格,是包含行列数据的矩阵。
  • - 表示数据元素的列是保存一种类型的数据的结构; 例如,发货日期。
  • - 行是结构分组的相关数据; 例如,客户的数据。 它也被称为元组,记录或记录。
  • 冗余 - 这个术语是指两次存储数据以加速系统数据的访问。
  • 主键 - 这是指唯一的识别值。 该值不能在表中出现两次,并且只有一行与其关联。
  • 外键 - 外键用作两个表之间的连接。
  • 复合键 - 复合键或复合键是引用多个列的键。由于列缺乏唯一的数量,它指的是多列。
  • 索引 - 索引实际上与书籍的索引目录类似相同,用于加快查找数据。
  • 引用完整性 - 此术语是指确保所有外键值指向现有行。

MariaDB数据库

MariaDB是MySQL原始开发人员创建的一个MySQL的流行分支。它源于与MySQL被Oracle收购有关的担忧。它支持小数据处理任务和企业需求。 它的目标是成为MySQL的替代品,只需要简单地卸载MySQL并安装MariaDB。MariaDB提供了与MySQL相同的功能。

MariaDB的主要特点

MariaDB的重要功能是 -

  • 所有MariaDB都在GPL,LGPL或BSD使用协议之下发布。
  • MariaDB包含多种存储引擎,包括高性能存储引擎,用于与其他RDBMS数据源一起工作。
  • MariaDB使用标准和流行的查询语言。
  • MariaDB在许多操作系统上运行,并支持各种编程语言。
  • MariaDB提供对PHP的支持,PHP是最流行的Web开发语言之一。
  • MariaDB提供Galera群集技术。
  • MariaDB还提供许多在MySQL中不可用的操作和命令,并消除/取代影响性能的消极因素。
MariaDB入门

在开始本教程之前,请确保您对PHP和SQL的一些基本知识。

本指南着重介绍如何在Windows 10环境中使用MariaDB,因此我们的示例对于MariaDB/PHP开发人员非常有用。

如果您不熟悉或需要查看PHP,强烈建议您阅读学习我们的PHP教程。

MariaDB数据类型

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

以下是MariaDB中的数据类型列表:

  • 字符串数据类型
  • 数字数据类型
  • 日期/时间数据类型
  • 大对象数据类型

下面我们来一个一个地汇总列出。

字符串数据类型

数据类型语法最大长度描述
char(size)最大长度为255个字符。size是要存储的字符数。固定长度的字符串。使用空格填充右边与size大小相等的字符。
varchar(size)最大size255个字符。size是要存储的字符数。可变长度的字符串。
tinytext(size)最大size255个字符。size是要存储的字符数。
text(size)最大size65535个字符。size是要存储的字符数。
mediumtext(size)最大size16777215个字符。size是要存储的字符数。
longtext(size)最大尺寸4GB4,294,967,295个字符。size是要存储的字符数。
binary(size)最大size255个字符。size是要存储的二进制字符的数量。 固定长度的字符串。 空格填充右边与size相等的字符数。

日期时间数据类型

数据类型语法最大长度描述
date取值范围从"1000-01-01""9999-12-31"显示格式为:'yyyy-mm-dd'
datetime取值范围从"1000-01-01 00:00:00""9999-12-31 23:59:59"显示格式为:'yyyy-mm-dd hh:mm:ss'
timestamp(m)值范围从'1970-01-01 00:00:01' utc到'2038-01-19 03:14:07' utc。显示格式为:'yyyy-mm-dd hh:mm:ss'
time值范围从'-838:59:59''838:59:59'显示格式为:'hh:mm:ss'
year[(2/4)]年份数值为2位或4位数。默认是4位数字值。

数字数据类型

数据类型语法最大长度
bit非常小的整数值,相当于tinyint(1)。有符号值范围从-128127,无符号值范围从0255
tinyint(m)非常小的整数值。有符号值范围从-128127。无符号值范围从0255
smallint(m)小型整数值。有符号值范围从-3276832767。无符号值范围从065535
mediumint(m)中等大小的整数值。有符号值范围从-83886088388607。无符号值范围从016777215
int(m)标准整数值。有符号值范围从-21474836482147483647。无符号值范围从04294967295
integer(m)标准整数值。有符号值范围从-21474836482147483647。无符号值范围从04294967295
bigint(m)大整数值。有符号的值范围从-92233720368547758089223372036854775807。无符号值范围从018446744073709551615
decimal(m,d)解压后的定点数字值。如果没有指定,m默认为10,如果d没有指定,默认为0
dec(m,d)解压后的定点数值。如果未指定,则m默认为10。如果没有指定,d默认为0
numeric(m,d)解压后的定点数值。如果没有指定,m默认为10,如果没有指定,d默认为0
fixed(m,d)解压后的定点数值。如果未指定,则m默认为10。如果没有指定,d默认为0
float(m,d)单精度浮点数。
double(m,d)双精度浮点数。
double precision(m,d)双精度浮点数。
real(m,d)双精度浮点数。
float(p)浮点数。
booltinyint(1)的同义词
booleantinyint(1)的同义词

大对象(LOB)数据类型

数据类型语法最大长度
tinyblob最大为255个字节。
blob(size)最大为65535字节。
mediumblob最大为16777215字节。
longtext最大尺寸4GB4,294,967,295个字符。

MariaDB创建数据库

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

在这节中,我们来学习如何在MariaDB中创建一个数据库。

创建一个名称为"products"的数据库。

语法:

CREATE DATABASE Database_name;
SQL

示例

CREATE DATABASE products;
SQL

或者指定使用默认的字符集来创建数据库:

CREATE DATABASE testdb
  CHARACTER SET = 'utf8'
  COLLATE = 'utf8_general_ci';
SQL

注意,数据库名称不区分大小写。因此:Products,products以及PRODUCTS均表示同一个数据库。

显示数据库

SHOW DATABASES命令用于查看创建的数据库。

语法:

SHOW DATABASES;
SQL

使用MariaDB客户端,执行上面查询语句,得到以下结果 -

img

MariaDB选择数据库

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

USE database命令用于选择数据库,如果想在一个数据库上工作,比如:创建表,查询表,更新,创建存储过程等等,那么首先需要选择一个目标数据库。

USE database_name;
SQL

示例

假设在MariaDB数据库服务器中,存在有多个数据库,我们必须选择一个特定的数据库。

例如,在下图中显示了多个数据库:

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| products           |
| test               |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)
Shell

这里我们将使用"testdb"数据库来创建表等。所以需要使用以下USE命令。

USE testdb;
SQL

在执行上面查询语句后,就已经选择"testdb"数据库。之后就可以在里面创建表等数据对象了。执行上面查询语句效果如下 -

MariaDB [(none)]> USE testdb;
Database changed
MariaDB [testdb]>

MariaDB删除数据库

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

DROP DATABASE命令用于删除创建过(已存在)的数据库。DROP DATABASE删除数据库中的所有表并删除数据库。使用这个语句时要非常小心! 要使用DROP DATABASE,您需要数据库的DROP权限。 DROP SCHEMADROP DATABASE的同义词。

重要提示:删除数据库时,数据库的用户权限不会自动删除。

语法

DROP DATABASE Database_name;
SQL
示例

在前面的例子中,我们创建了一个数据库名称为Product。使用以下语句,删除这个数据库。

DROP DATABASE products;
SQL

在执行上面语句后,数据库"products"现在被删除。可以使用SHOW DATABASES命令来验证它。

img

可以看到"products"数据库在数据库列表中不再有显示。

MariaDB创建表

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

在MariaDB中,CREATE TABLE语句用于在选定的数据库中创建表。使用CREATE TABLE语句创建一个具有给定名称(tbl_name)的表。 必须具有表或数据库的CREATE权限才能创建表。

语法如下 -

CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...) [table_options    ]... [partition_options]
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)] [table_options   ]... [partition_options]
    select_statement
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
   { LIKE old_table_name | (LIKE old_table_name) }

select_statement:
    [IGNORE | REPLACE] [AS] SELECT ...   (Some legal select statement)
SQL

在最基本的形式中,CREATE TABLE语句提供了一个表名称,后跟一列,索引和约束。 默认情况下,该表是在默认数据库中创建的。 用db_name.tbl_name指定一个数据库。 如果引用表名称,则必须分别将数据库名称和表名引用为db_name.tbl_name。 这对于CREATE TABLE ... SELECT是特别有用的,因为它允许在包含来自其他数据库的数据的数据库中创建表。

最基本的语法如下 -

CREATE TABLE table_name (column_name column_type);
SQL

也可以指定一个column_name作为主键 - primary_key,它必须是一个NOT NULL值。

示例

"testdb"数据库中创建一个"students"表。参考以下创建语句 -

USE testdb;
CREATE TABLE students(  
    student_id INT NOT NULL AUTO_INCREMENT,  
    student_name VARCHAR(100) NOT NULL,  
    student_address VARCHAR(40) NOT NULL,  
    admission_date DATE,  
    PRIMARY KEY ( student_id )
);
SQL

执行上面查询语句,结果如下 -

img

查询数据库中的表

您可以使用SHOW TABLES命令验证是否创建表成功了。

MariaDB [testdb]> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| students         |
+------------------+
1 row in set (0.00 sec)

MariaDB [testdb]>
SQL

在上面结果中,可以看到有创建了"students"表。查看"students"表的结构:

SHOW CREATE TABLE `testdb`.`students`;
SQL

执行上面查询语句,输出结果如下 -

CREATE TABLE `students` (
    `student_id` INT(11) NOT NULL AUTO_INCREMENT,
    `student_name` VARCHAR(100) NOT NULL,
    `student_address` VARCHAR(40) NOT NULL,
    `admission_date` DATE NULL DEFAULT NULL,
    PRIMARY KEY (`student_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

MariaDB删除表

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

在MariaDB中,DROP TABLE语句用于从数据库中删除表。它将会永久删除表,不能恢复表结构和数据。

语法:

DROP TABLE table_name ;
SQL

示例:

删除"testdb"数据库中的students表。参考以下语句 -

DROP TABLE students;
SQL

在执行删除语句后,可以验证表是否被删除成功。参考以下查询表的语句 -

SHOW TABLES;
SQL

完整的过程,如下所示 -

img

MariaDB修改表

​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!

ALTER TABLE命令是用于更改现有表的结构。 例如,可以添加或删除列,创建或销毁索引,更改现有列的类型或重命名列或表本身。也可以更改表的注释和表的存储引擎。

如果另一个连接正在使用该表,则元数据锁将处于活动状态,并且此语句将等待,直到释放该锁。对于非事务性表也是如此。

在具有重复值的列(或一组列)上添加一个UNIQUE索引时,将会产生一个错误,并且该语句将被停止。要抑制错误并强制创建UNIQUE索引,丢弃重复项,可以指定IGNORE选项。 如果一列(或一组列)应该是唯一的,但是它包含重复的值,这有时可能是有用的; 然而,这种技术不能控制哪些行被保存,哪些被删除。

1. 添加一列

要在原有的表上添加一列,可参考以下语法 -

ALTER TABLE xxxx ADD COLUMN [IF NOT EXISTS]  (col_name column_definition,...)
SQL

示例

CREATE TABLE t(id INT PRIMARY KEY, u INT UNSIGNED NOT NULL UNIQUE)
ENGINE=InnoDB;

INSERT INTO t(id,u) VALUES(1,1),(2,2),(3,3);

ALTER TABLE t ADD COLUMN
(d DATETIME DEFAULT current_timestamp(),
 p POINT NOT NULL DEFAULT ST_GeomFromText('POINT(0 0)'),
 t TEXT CHARSET utf8 DEFAULT 'The quick brown fox jumps over the lazy dog');

UPDATE t SET t=NULL WHERE id=3;

SELECT id,u,d,ST_AsText(p),t FROM t;

SELECT variable_value FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column';
SQL
2. 删除一列

语法

ALTER TABLE xxxx DROP COLUMN [IF EXISTS] col_name [CASCADE|RESTRICT]
SQL

删除属于多列UNIQUE约束的列是不允许的。例如:

CREATE TABLE a (
  a int,
  b int,
  primary key (a,b)
);

ALTER TABLE x DROP COLUMN a;
[42000][1072] Key column 'A' doesn't exist in table
SQL

原因是,删除列a将导致新的约束,即列b中的所有值都是唯一的。 为了删除该列,将需要明确的DROP PRIMARY KEYADD PRIMARY KEY。从MariaDB 10.2.7版本起,该列被删除,并应用了额外的约束,导致以下结构:

ALTER TABLE x DROP COLUMN a;
Query OK, 0 rows affected (0.46 sec)

DESC x;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| b     | int(11) | NO   | PRI | NULL    |       |
+-------+---------+------+-----+---------+-------+
SQL
3. MODIFY COLUMN修改列

允许修改列的类型。该列与原始列位于同一位置,列中的所有索引都将保留。 请注意,修改列时,应指定新列的所有属性。

CREATE TABLE t1 (a INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY((a));
ALTER TABLE t1 MODIFY a BIGINT UNSIGNED AUTO_INCREMENT;
SQL

除了改变列的名字。该列与原始列位于同一位置,列中的所有索引都将保留。

CREATE TABLE t1 (a INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a));
ALTER TABLE t1 CHANGE a b BIGINT UNSIGNED AUTO_INCREMENT;
SQL
4. 添加约束 - ADD CONSTRAINT

修改在表的特定列或列上添加约束。

语法

ALTER TABLE table_name 
ADD CONSTRAINT [constraint_name] CHECK(expression);
SQL

在插入或更新行之前,所有约束都将按照它们定义的顺序进行评估。如果任何约束失败,那么该行将不会被更新。

示例

CREATE TABLE account_ledger (
    id INT PRIMARY KEY AUTO_INCREMENT,
    transaction_name VARCHAR(100),
    credit_account VARCHAR(100),
    credit_amount INT,
    debit_account VARCHAR(100),
    debit_amount INT);

ALTER TABLE account_ledger 
ADD CONSTRAINT is_balanced 
    CHECK((debit_amount + credit_amount) = 0);
SQL

删除DROP CONSTRAINT

修改表结构,删除给定的约束。

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
SQL

向表中添加约束时,无论是通过CREATE TABLE还是ALTER TABLE ... ADD CONSTRAINT语句,都可以自己设置constraint_name,或者允许MariaDB自动为您生成一个约束。例如,

CREATE TABLE t (
   a INT,
   b INT,
   c INT,
   CONSTRAINT CHECK(a > b),
   CONSTRAINT check_equals CHECK(a = c)); 

SELECT CONSTRAINT_NAME, TABLE_NAME, CONSTRAINT_TYPE 
FROM information_schema.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 't';

+-----------------+----------------+-----------------+
| CONSTRAINT_NAME | TABLE_NAME     | CONSTRAINT_TYPE |
+-----------------+----------------+-----------------+
| check_equals    | t              | CHECK           |
| CONSTRAINT_1    | t              | CHECK           |
+-----------------+----------------+-----------------+
SQL

要从表中删除约束,请使用ALTER TABLE ... DROP CONSTRAINT语句。 例如,

ALTER TABLE t DROP CONSTRAINT is_unique;
SQL
4. 常用语句

添加一个新的列:

ALTER TABLE t1 ADD x INT;
SQL

删除一个列:

ALTER TABLE t1 DROP x;
SQL

修改列的类型:

ALTER TABLE t1 MODIFY x bigint unsigned;
SQL

更改列的名称和类型:

ALTER TABLE t1 CHANGE a b bigint unsigned auto_increment;
SQL

更改列的名称和类型:

ALTER TABLE t1 CHANGE a b bigint unsigned auto_increment;
SQL

在单个ALTER TABLE语句中组合多个子句,用逗号分隔:

ALTER TABLE t1 DROP x, ADD x2 INT,  CHANGE y y2 INT;
SQL

更改存储引擎:

ALTER TABLE t1 ENGINE = InnoDB;
SQL

重建表(前面的例子也将重建表,如果它已经是InnoDB):

ALTER TABLE t1 FORCE;

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

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

相关文章

ch4网络层---计算机网络期末复习(持续更新中)

网络层概述 将分组从发送方主机传送到接收方主机 发送方将运输层数据段封装成分组 接收方将分组解封装后将数据段递交给运输层网络层协议存在于每台主机和路由器上 路由器检查所有经过它的IP分组的分组头 注意路由器只有3层(网络层、链路层、物理层) 网络层提供的服务 一…

ArcGIS教程(02):创建多模式网络数据集

启动“新建网络数据集”向导 命名网络并选择源要素类 输入网络数据集名称【ParisMultimodal_ND】,点击【下一页】 点击【全选】网络数据集中的要素类 点击【下一页】 设置连通性和高程策略 点击【连通性】 Metro_Entrances 的每个要素与街道要素类的折点重…

企业文件加密:保障知识产权与客户隐私

在数字化时代,企业文件的安全成为了保护知识产权和客户隐私的关键。随着网络攻击和数据泄露事件的日益增多,企业必须采取强有力的措施来确保其敏感信息的安全。文件加密技术作为一项重要的数据保护手段,对于维护企业的竞争力和客户信任至关重…

第八十三节 Java面向对象设计 - Java方法重载

Java面向对象设计 - Java方法重载 在同一类中具有多个具有相同名称的方法称为方法重载。 类中具有相同名称的方法可以是声明的方法,继承的方法或两者的组合。 重载方法必须具有不同数量的参数,不同类型的参数或两者。 方法的返回类型,访问…

数字孪生技术为何备受各行业青睐?

数字孪生技术近年来在各行业中受到越来越多的重视,这是因为它具备了显著的优势和广泛的应用前景。数字孪生是指利用数字化技术,在虚拟空间中创建一个与现实世界对应的虚拟模型,通过数据的实时交互和反馈,实现对物理实体的模拟和监…

3d模型移动中心点偏移太远怎么解决?---模大狮模型网

在3D建模和动画制作中,移动模型时确保中心点的准确性至关重要。然而,有时候在移动模型时,中心点可能会偏移得太远,导致操作不便甚至影响到后续的工作流程。本文将介绍在3D模型移动中心点偏移太远时的常见原因,并提供解…

Linux系统编程——动静态库

目录 一,关于动静态库 1.1 什么是库? 1.2 认识动静态库 1.3 动静态库特征 二,静态库 2.1 制作静态库 2.2 使用静态库 三,动态库 3.1 制作动态库 3.2 使用动态库一些问题 3.3 正确使用动态库三种方法 3.3.1 方法一&…

sprintboot中拦截器的使用

文章目录 1. 为什么要使用拦截器2.拦截器的注册3.创建一个登录拦截器 1. 为什么要使用拦截器 1.权限检查:进入程序判断是否登录,没有登录,直接返回跳转到登录界面 2.性能监控:通过拦截器在进入处理程序之前记录开始时间&#xff…

java家政上门系统源码,一套同城预约、上门服务的家政系统源码

一款同城预约、上门服务的家政系统源码,用户端、服务端、管理端各端相互依赖又相互独立,支持选择项目、选择服务人员的下单方式,支持多城市并且设置每个城市专属服务项目。 技术架构:java1.8springboot mysql htmlThymeleaf uni…

【AI+知识库问答】沉浸式体验了解 AI知识库问答fastGPT

之前写过一篇文章 【AI本地知识库】个人整理的几种常见本地知识库技术方案 , 由于当时主要是针对AI本地知识库, 所以没列fastGPT。 最近经常刷到fastGPT,这里单独水一篇。 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,…

UML静态图-对象图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 对象图与类图之间的关系&…

centos7 openssh9.7p 制作rpm包

centos7 openssh9.7p 制作rpm包 下载源码包:通过git开源打包源码准备编译打包环境编译打包上传rpm包到需要更新的服务器,并更新 下载源码包: 一般只用ssh源码就可以了 cd /root wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p…

UI线程和工作线程

引用:windows程序员面试指南 工作线程 只处理逻辑的线程,例如:启动一个线程,用来做一个复杂的计算,计算完成之后,此线程就自动退出,这种线程称为工作线程 UI线程 Windows应用程序一般由窗口…

ST - 如何利用SCR轻松驱动AC/DC转换器启动?

过去十年,新装服务器的市场需求增长迅猛,2015到2022年复合年均增长率达到了11%。拉动市场增长的动力主要来自以下几个方面:首先,个人文件无纸化和企业办公数字化进程加快;其次,健康危机期间的居家办公&…

【LeetCode算法】第100题:相同的树

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:二叉树的先序遍历。采用递归的先序遍历方法,首先访问根节点若不同则返回false,其次访问左子树和右子树。在访问左右子树时,需要注意…

大模型算法办备案全网最详细说明(+附件)

已成功备案产品(近130家,不包括审核中的) 一、大模型算法备案的强制性 二、生成式人工智能(大语言模型)安全评估要点 三、大模型备案必备材料重点说明 四、大模型备案填报流程 五、大模型备案时间成本对比 六、备案建议 附录、过程性材料 一…

977. 有序数组的平方 - 力扣

1. 题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 2. 示例 3. 分析 我们当然可以遍历数组平方元素,然后再使用sort排序,但这里时间复杂度就为 O(logN) 了。 我…

uniapp的tooltip功能放到表单laber

在uniapp中,tooltip功能通常是通过view组件的hover-class属性来实现的,而不是直接放在form的label上。hover-class属性可以定义当元素处于hover状态时的样式类,通过这个属性,可以实现一个类似tooltip的效果。 以下是一个简单的例…

【Python】解决Python报错:AttributeError: ‘instance‘ object has no attribute ‘xxx‘

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

把自己的服务器添加到presearch节点

Presearch is a scam. Before, judging by the price of the token you should have been able to get between $150-$200 after 12-13 months of regular searches. "If you use this service for the next 11 years you will have earned $30!" Presearch大约需要…