【数据库设计和SQL基础语法】--SQL语言概述--SQL的基本结构和语法规则(一)
一、SQL的基本结构
2.1 SQL语句的组成要素
SQL语句的组成要素
- 关键字(Keywords):
- 定义:SQL语句的基本操作命令,表示要执行的动作。
- 例子:SELECT、INSERT、UPDATE、DELETE等。
- 标识符(Identifiers):
- 定义:用于标识数据库中的对象名称,如表名、列名。
- 规则:字母开头,可包含字母、数字、下划线等字符。
- 例子:表名、列名等。
- 字面量(Literals):
- 定义:表示具体数值、字符或日期。
- 例子:数字(e.g., 123)、字符串(e.g., ‘John’)、日期(e.g., ‘2023-01-01’)。
- 运算符(Operators):
- 定义:用于执行操作的符号或关键字。
- 例子:+、-、*、/ 等。
- 分隔符(Delimiters):
- 定义:用于分隔SQL语句中的不同部分。
- 例子:分号(;)用于结束SQL语句。
- 注释(Comments):
- 定义:提供对SQL语句的说明或注解,不被数据库执行。
- 例子:-- 单行注释、/* 多行注释 */。
- 空格和换行符:
- 定义:用于格式化SQL语句,增强可读性。
- 例子:空格、换行符。
2.2 SQL语句的结束符
在大多数情况下,SQL语句的结束符是分号(;)。分号用于告诉数据库解析器一个SQL语句的结束,可以开始解析下一个语句。在单条SQL语句的情况下,分号是可选的,因为大多数数据库会在遇到换行时自动将其视为语句结束。例如:
SELECT * FROM Customers;
UPDATE Orders SET Status = 'Shipped' WHERE OrderID = 123;
在上面的例子中,每个语句末尾都有一个分号,但在某些情况下,例如在存储过程或触发器等多语句块的情况下,分号是必需的,以明确每个语句的结束。
Tip:并非所有的数据库管理系统都要求使用分号作为结束符,某些数据库可能使用不同的结束符。在使用特定数据库时,最好查阅相关文档以确定正确的语句结束符。
2.3 注释的使用
在SQL中,注释是一种用于添加说明或注解的文本,它不会被数据库执行引擎处理。注释对于提高代码可读性、维护性和与他人的沟通非常重要。SQL支持两种主要类型的注释:单行注释和多行注释。
- 单行注释:
在单行注释中,可以在语句的任何位置添加注释。在SQL中,单行注释使用两个连续的减号(–)标识。
-- 这是单行注释,注释内容在减号后面
SELECT * FROM Customers;
- 多行注释:
多行注释用于跨越多个行的注释块。在SQL中,多行注释使用/*
开头和*/
结尾。
/*这是多行注释
*/
SELECT * FROM Orders;
- 注释的作用:
-
提高可读性:注释使代码更易于理解,特别是对于其他人阅读代码或长时间未接触代码的开发者。
-
调试和排错:在代码中添加注释有助于在调试和排错过程中理解特定部分的作用。
-
文档化:注释可以用于生成代码文档,帮助开发者了解数据库结构和查询逻辑。
Tip:注释应该被谨慎使用,不要过度注释显而易见的内容,而应该注释那些可能会引起疑惑的、不那么明显的部分。
二、数据定义语言(DDL)
3.1 创建数据库
在SQL中,数据定义语言(DDL)用于定义数据库结构和模式。创建数据库的DDL语句通常使用CREATE DATABASE
语句。以下是一个创建数据库的基本语法:
CREATE DATABASE database_name;
其中,database_name
是要创建的数据库的名称。这条语句会在数据库管理系统中创建一个新的数据库,并赋予它指定的名称。
如果要指定数据库的一些属性,例如字符集和排序规则,可以使用更详细的语法:
CREATE DATABASE database_nameCHARACTER SET character_set_nameCOLLATE collation_name;
其中,character_set_name
是要使用的字符集,而collation_name
是要使用的排序规则。这允许你在创建数据库时指定它的一些特性。
以下是一个具体的例子:
CREATE DATABASE mydatabaseCHARACTER SET utf8COLLATE utf8_general_ci;
这个例子创建了一个名为mydatabase
的数据库,使用了UTF-8字符集和通用的排序规则。
3.2 创建表
在SQL中,数据定义语言(DDL)用于定义数据库的结构。创建表是DDL的一项关键操作,它定义了表的结构,包括表的列、数据类型、约束等。以下是创建表的基本语法:
CREATE TABLE table_name (column1 datatype1,column2 datatype2,column3 datatype3,...PRIMARY KEY (one_or_more_columns)
);
其中,table_name
是要创建的表的名称,column1
, column2
, column3
等是表的列名,而datatype1
, datatype2
, datatype3
是相应列的数据类型。PRIMARY KEY
关键字用于定义主键,确保每行在表中的唯一性。
以下是一个具体的例子,创建一个名为employees
的表:
CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),hire_date DATE
);
这个例子创建了一个名为employees
的表,包含了employee_id
、first_name
、last_name
和hire_date
等列。employee_id
被定义为主键,确保每个员工的ID是唯一的。
Tip:在实际应用中,创建表时可能还涉及其他约束(如外键、唯一约束等)以及其他可选项,具体取决于数据库管理系统的支持和设计需求。
3.3 修改表结构
在SQL中,要修改表结构,可以使用ALTER TABLE
语句。ALTER TABLE
语句允许你添加、修改或删除表的列,以及应用其他表级别的变更。以下是一些常见的表结构修改操作:
- 添加列
ALTER TABLE table_name
ADD column_name datatype;
这条语句在已有的表中添加一个新列,其中table_name
是表的名称,column_name
是要添加的列名,datatype
是新列的数据类型。
- 修改列的数据类型
ALTER TABLE table_name
MODIFY column_name new_datatype;
这条语句用于修改已有列的数据类型,其中table_name
是表的名称,column_name
是要修改的列名,new_datatype
是新的数据类型。
- 修改列名
ALTER TABLE table_name
RENAME COLUMN old_column_name TO new_column_name;
这条语句用于修改列的名称,其中table_name
是表的名称,old_column_name
是要修改的列名,new_column_name
是新的列名。
- 删除列
ALTER TABLE table_name
DROP COLUMN column_name;
这条语句用于删除表中的列,其中table_name
是表的名称,column_name
是要删除的列名。
- 添加主键
ALTER TABLE table_name
ADD PRIMARY KEY (column_name);
这条语句用于在现有表中添加主键,其中table_name
是表的名称,column_name
是用作主键的列名。
- 删除主键
ALTER TABLE table_name
DROP PRIMARY KEY;
这条语句用于从表中删除主键,其中table_name
是表的名称。
3.4 删除表
在SQL中,要删除表,可以使用DROP TABLE
语句。DROP TABLE
语句会永久性地删除整个表,包括表中的所有数据和结构。以下是删除表的基本语法:
DROP TABLE table_name;
其中,table_name
是要删除的表的名称。
Tip:
- 删除表是一个危险的操作,因为它会永久删除表中的所有数据,且无法撤销。在执行此操作之前,请确保你真的希望删除该表。
- 在生产环境中谨慎使用
DROP TABLE
语句,可以先备份数据或者在测试环境中进行测试。- 如果表中有关联的外键约束,可能需要先删除相关的外键约束才能成功删除表。
示例:
DROP TABLE employees;
上述示例将删除名为employees
的表。在实际应用中,请替换为你要删除的表的实际名称。
3.5 约束的使用
在SQL中,约束(Constraints)用于规定表中的数据规则,以保证数据的完整性和一致性。以下是一些常见的约束类型:
-
主键约束(Primary Key Constraint):
- 用途:标识表中的唯一记录。
- 语法:
CREATE TABLE table_name (column1 datatype PRIMARY KEY,column2 datatype,... );
-
唯一约束(Unique Constraint):
- 用途:确保表中的某列或列组中的所有数据都是唯一的。
- 语法:
CREATE TABLE table_name (column1 datatype UNIQUE,column2 datatype,... );
-
外键约束(Foreign Key Constraint):
- 用途:定义表之间的关系,确保一个表的外键与另一个表的主键匹配。
- 语法:
CREATE TABLE table_name1 (column1 datatype PRIMARY KEY,... );CREATE TABLE table_name2 (column1 datatype,column2 datatype,FOREIGN KEY (column1) REFERENCES table_name1(column1) );
-
检查约束(Check Constraint):
- 用途:规定插入到表中的数据必须满足一定的条件。
- 语法:
CREATE TABLE table_name (column1 datatype,column2 datatype,CHECK (condition),... );
-
默认约束(Default Constraint):
- 用途:为列指定默认值,当插入新记录时,如果未提供该列的值,则使用默认值。
- 语法:
CREATE TABLE table_name (column1 datatype DEFAULT default_value,column2 datatype,... );
-
非空约束(NOT NULL Constraint):
- 用途:确保列中的数据不为空。
- 语法:
CREATE TABLE table_name (column1 datatype NOT NULL,column2 datatype,... );
这些约束可以在创建表时定义,也可以在已存在的表上添加或修改。通过使用约束,可以提高数据库中数据的质量和一致性。
三、数据操作语言(DML)
4.1 插入数据
在SQL中,使用INSERT INTO
语句向表中插入数据。以下是基本的INSERT INTO
语法:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
其中,table_name
是要插入数据的表名,column1, column2, column3, ...
是要插入数据的列名,value1, value2, value3, ...
是对应列的实际值。
如果要插入表中的所有列,可以省略列名,但是需要确保VALUES
子句中的值的顺序与表中的列的顺序相匹配。
以下是一个示例:
假设有一个表students
:
CREATE TABLE students (student_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),age INT
);
要向该表中插入一条学生记录:
INSERT INTO students (student_id, first_name, last_name, age)
VALUES (1, 'John', 'Doe', 20);
这将在students
表中插入一条记录,指定了学生的学生ID、名字、姓氏和年龄。如果要插入表中的所有列,可以简化为:
INSERT INTO students
VALUES (1, 'John', 'Doe', 20);
Tip:实际的插入值的数据类型和顺序应该与表定义中的列相匹配。
4.2 查询数据
- 基本查询
在SQL中,基本的查询语句是使用SELECT
语句,查询将检索表中的所有记录。以下是基本的SELECT
语句示例:
SELECT column1, column2, ...
FROM table_name;
其中,column1, column2, ...
是要检索的列名,而table_name
是要检索数据的表名。
如果要检索表中的所有列,可以使用通配符*
:
SELECT *
FROM table_name;
这将返回表中所有列的所有行。
以下是一个示例:
假设有一个表employees
:
CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department VARCHAR(50),salary INT
);
要检索employees
表中的所有记录:
SELECT *
FROM employees;
这将返回表中所有列的所有行的数据。
Tip:这样的查询可能在处理大型表时效率较低,因为它会检索表中的所有数据。在实际应用中,通常会使用
WHERE
子句来筛选所需的数据。
- 条件查询
条件查询在SQL中使用WHERE
子句来限定检索的数据。通过WHERE
子句,你可以指定一个或多个条件,只有满足这些条件的行才会被检索。以下是一个基本的条件查询示例:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
在这个语句中,column1, column2, ...
是要检索的列,table_name
是要检索的表,而condition
是一个或多个用于过滤行的条件。
例如,假设有一个表employees
:
CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department VARCHAR(50),salary INT
);
如果你想检索工资大于等于50000的员工记录,可以使用以下查询:
SELECT *
FROM employees
WHERE salary >= 50000;
这将返回employees
表中所有工资大于等于50000的员工记录。
你还可以使用多个条件,例如,检索部门为’IT’且工资大于等于50000的员工记录:
SELECT *
FROM employees
WHERE department = 'IT' AND salary >= 50000;
这将返回employees
表中部门为’IT’且工资大于等于50000的员工记录。
- 排序查询
排序查询在SQL中使用ORDER BY
子句,它用于对检索出的数据进行排序。以下是一个基本的排序查询示例:
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
在这个语句中,column1, column2, ...
是要检索的列,table_name
是要检索的表,而column1 [ASC|DESC], column2 [ASC|DESC], ...
是用于指定排序顺序的列。ASC
表示升序(默认),DESC
表示降序。
例如,假设有一个表employees
:
CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department VARCHAR(50),salary INT
);
如果你想按工资降序排序检索员工记录,可以使用以下查询:
SELECT *
FROM employees
ORDER BY salary DESC;
这将返回employees
表中按工资降序排序的所有员工记录。
如果要按部门升序排序,然后按工资降序排序,可以使用以下查询:
SELECT *
FROM employees
ORDER BY department ASC, salary DESC;
这将返回employees
表中按部门升序、在同一部门内按工资降序排序的所有员工记录。
4.3 更新数据
更新数据在SQL中使用UPDATE
语句。以下是一个基本的更新数据的语法示例:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
在这个语句中,table_name
是要更新的表,column1 = value1, column2 = value2, ...
是要设置的新值,而WHERE condition
是筛选要更新的行的条件。
例如,假设有一个表employees
:
CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department VARCHAR(50),salary INT
);
如果要将员工ID为1的工资提高1000,可以使用以下查询:
UPDATE employees
SET salary = salary + 1000
WHERE employee_id = 1;
这将更新employees
表中员工ID为1的记录,将其工资增加1000。
请注意,WHERE
子句是可选的。如果省略WHERE
子句,将更新表中的所有行。因此,在使用UPDATE
语句时,请谨慎使用WHERE
子句以避免不必要的数据更改。
4.4 删除数据
在SQL中,要删除数据,可以使用DELETE
语句。以下是一个基本的DELETE
语句的语法示例:
DELETE FROM table_name
WHERE condition;
在这个语句中,table_name
是要删除数据的表,而WHERE condition
是筛选要删除的行的条件。
例如,假设有一个表employees
:
CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department VARCHAR(50),salary INT
);
如果要删除员工ID为1的记录,可以使用以下查询:
DELETE FROM employees
WHERE employee_id = 1;
这将从employees
表中删除员工ID为1的记录。
如果省略WHERE
子句,DELETE
语句将删除表中的所有行。因此,在使用DELETE
语句时,请谨慎使用WHERE
子句,以免误删除数据。
四、总结
SQL语句的基本结构包括关键字、标识符、字面量、运算符、分隔符、注释以及空格和换行符。SQL语句通常以分号作为结束符。数据定义语言(DDL)用于定义数据库结构。创建数据库使用CREATE DATABASE
语句,创建表使用CREATE TABLE
语句。ALTER TABLE
语句用于修改表结构,而DROP TABLE
语句用于删除表。约束如主键、唯一约束、外键、检查约束、默认约束和非空约束用于确保数据完整性和一致性。数据操作语言(DML)包括插入、查询、更新和删除数据。INSERT INTO
语句用于插入数据,SELECT
语句用于查询数据,UPDATE
语句用于更新数据,DELETE
语句用于删除数据。条件查询通过WHERE
子句实现,排序查询通过ORDER BY
子句实现。SQL的灵活性和广泛应用使其成为数据库管理和查询的核心工具。对SQL的深入理解对于数据库开发和管理人员至关重要。
相关文章:
【数据库设计和SQL基础语法】--SQL语言概述--SQL的基本结构和语法规则(一)
一、SQL的基本结构 2.1 SQL语句的组成要素 SQL语句的组成要素 关键字(Keywords): 定义:SQL语句的基本操作命令,表示要执行的动作。例子:SELECT、INSERT、UPDATE、DELETE等。 标识符(Identifiers…...
使用oxylabs代理国外ip请求openai接口报错记录
报错提示: curl: (35) TCP connection reset by peer curl: (56) Recv failure: Connection reset by peer 这些报错都是因为curl版本过低(我的版本是curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2…...

搜索引擎语法
演示自定的Google hacking语法,解释含意以及在渗透过程中的作用 Google hacking site:限制搜索范围为某一网站,例如:site:baidu.com ,可以搜索baidu.com 的一些子域名。 inurl:限制关键字出现在网址的某…...

@ResponseBody详解
ResponseBody() 作用: responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。 位置: ResponseBody是作用在方法上的&…...
一些关于开关电源经典回答
1、开关电源变压器如果用铜带取代漆包线,其允许通过的电流怎么算?比如说厚度为0.1mm的铜带,允许通过的电流怎么算? 专家:如果开关电源变压器用铜带取代漆包线,铜带(漆包线)的涡流损耗可以大大将小,工作频率可以相应…...
Linux-文件夹文件赋权、文件指定修改用户和用户组
Linux-文件夹文件赋权、文件指定修改用户和用户组 文件权限说明文件夹文件赋权chmod命令chmod示例以数字方式修改权限给指定目录赋权给当前目录的所有子文件夹和文件赋权 chown修改属主、属组 文件权限说明 文件或目录的权限位是由9个权限位来控制的,每三位一组&am…...

【Java】7. 类型转换和类型判断
7. 类型转换 7.1 基本类型转换 顺箭头:隐式转换(自动) 逆箭头:强制转换(可能造成精度丢失) byte a 10; int b a; int c 1000; byte d (byte) c; System.out.println(d); // -24 7.2 包装类型与基…...
c语言练习12周(15~16)
编写int fun(char s[])函数,返回字串中所有数字累加和 题干编写int fun(char s[])函数,返回字串中所有数字累加和。 若传入串"k2h3yy4x"返回整数9;若传入串"uud9a6f7*"返回整数22 //只填写要求的函数 int fun(cha…...

2023-简单点-机器学习中矩阵向量求导
机器学习中矩阵向量求导的概念是什么? 在机器学习中,矩阵向量求导的概念主要涉及对函数中的矩阵或向量参数进行求导运算。这种求导运算可以帮助我们了解函数值随参数的变化情况,进而应用于优化算法中。具体来说,当损失函数是一个…...

帮管客CRM SQL注入漏洞复现
0x01 产品简介 帮管客CRM是一款集客户档案、销售记录、业务往来等功能于一体的客户管理系统。帮管客CRM客户管理系统,客户管理,从未如此简单,一个平台满足企业全方位的销售跟进、智能化服务管理、高效的沟通协同、图表化数据分析帮管客颠覆传…...

如何编写自己的python包,并在本地进行使用
如何编写自己的python包,并在本地进行使用 一、直接引用 1.创建Python项目pythonProject。 2.并且在此项目下创建pg_message包。 3.pg_message包下默认生成_init_.py文件。 Python中_init_.py是package的标志。init.py 文件的一个主要作用是将文件夹变为一个Python模块,Pyt…...

xv6 磁盘中断流程和启动时调度流程
首发公号:Rand_cs 本文讲述 xv6 中的一些细节流程,还有对之前文中遗留的问题做一些补充说明,主要有以下几个问题: 一次完整的磁盘中断流程进入调度器后的详细流程sched 函数中的条件判断scheduler 函数中为什么要周期性关中断 …...

Spring Security 6.x 系列(6)—— 显式设置和修改登录态信息
一、前言 此篇是对上篇 Spring Security 6.x 系列(5)—— Servlet 认证体系结构介绍 中4.9章节显式调用SecurityContextRepository#saveContext进行详解分析。 二、设置和修改登录态 2.1 登录态存储形式 使用Spring Security框架,认证成功…...
Linux的软件安装
Linux的软件安装 1、rpm软件安装包 RPM(RedHat Package Manager)安装管理 这个机制最早是由Red Hat开发出来,后来实在很好用,因此很多 distributions(发行版)就使用这个机制来作为软件安装的管理方式 。包括Fedora,CentOS,S…...

443. 压缩字符串
这篇文章会收录到 : 算法通关村第十二关-黄金挑战字符串冲刺题-CSDN博客 压缩字符串 描述 : 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,…...
Python面经【6】
Python面经【6】 一、什么是Python的自省机制二、关于Python程序的运行方面,有什么手段可以提升性能三、dict的item()和iteritems()的不同四、说明一个os.path和sys.path分别代表什么五、说一下字典和json的区别六、什么是可变、不可变类型 一、什么是Python的自省机…...

2020年6月9日 Go生态洞察:VS Code Go扩展加入Go项目
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

C语言错误处理之“非局部跳转<setjmp.h>头文件”
目录 前言 setjmp宏 longjmp函数 使用方法: 实例:测试setjmp与longjmp的使用 前言 通常情况下,函数会返回到它被调用的位置,我们无法使用goto语句改变它的返回的方向,因为goto语句只能跳转到同一函数内的某个标号…...

【SpringCloud】微服务架构设计模式
一、聚合气微服务设计模式 最常见、最简单的设计模式,效果如图所示: 聚合器调用多个服务实现应用程序所需的功能 它可以是一个简单的 Web 页面,将检索到的数据进行处理并展示,也可以是一个更高层次的组合微服务,对…...

【EI会议征稿】第三届航空航天工程与系统国际研讨会(ISAES 2024)
第三届航空航天工程与系统国际研讨会(ISAES 2024) 2024 3rd International Symposium on Aerospace Engineering and Systems 第三届航空航天工程与系统国际研讨会将于2024年3月22-24日在南京召开!会议紧密聚焦“航空航天工程”领域的热点和难点问题,…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
StarRocks 全面向量化执行引擎深度解析
StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计,相比传统行式处理引擎(如MySQL),性能可提升 5-10倍。以下是分层拆解: 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】
1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...
学习 Hooks【Plan - June - Week 2】
一、React API React 提供了丰富的核心 API,用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素,JSX 会被编译成该函数…...