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

数据库与SQL

数据库基本概念

  • 数据库(DataBase):数据库就是存储数据的仓库
  • 数据库管理系统(DBMS):可以独立运行的软件,维护磁盘上的数据,用统一的方式维护不同种类的数据,做到通用且高效。
  • 常见的DBMS:
    • mysql
    • oracle
    • db2
    • sqlserver
  • 数据库实例可以被视为数据库管理系统的一个运行实体

image.png

数据库与表的概念

  • 在DBMS中,一个项目中用到的所有数据都可以以一个数据库形式保存在一起。每种不同的数据都是以表的形式保存。

image.png

数据库中表的概念

  • 表用来保存数据,一张表是由行和列构成
  • 列被称为字段:保存一组数据中各个属性
  • 行被称为记录:保存具体的一条信息。

如下是一张用户
image.png

如何操作数据库系统

所有的DBMS都支持一种结构化查询语句进行对应的操作。我们以客户端的角度与DBMS进行连接,并发送对应的语句进行操作。

结构化查询语言:Structured Query Language简称为SQL
SQL是有标准的:SQL92已经SQL99,所有数据库都支持SQL92标准

数据库连接方式

数据库连接有:命令行图形化界面软件JDBC连接

  • 命令行形式
    image.png
  • 图形化界面

  • 使用JDBC连接以及数据库连接池的形式
    • 在集成开发环境中使用(ECLIPSE,IDEA)
    • 我们编写的JAVA程序也是通过JDBC连接

SQL

SQL主要分为以下几种类:DDLDMLDQLTCLDCL,接下来我们会一一的详细介绍这几种语言

DDL

DDL语言详细名称为data definition language,是数据定义语言,用来进行数据库对象操作的。
数据库对象包括不限于:数据库,表,视图,索引等

主要需要认识的关键字如下:CREATEALTERDROP

操作数据库

查看当前DBMS中已有的数据库:SHOW DATABASES

新建一个数据库
-- 基本语法
CREATE DATABASE 数据库名 [charset=字符集名称]-- 例子1 创建一个名为mydb的数据库
CREATE DATABASE mydb;-- 例子2 创建数据库时指定字符集
CREATE DATABASE mydb1 CHARSET=UTF8;
CREATE DATABASE mydb2 CHARSET=GBK;
查看数据库信息
-- 语法
SHOW CREATE DATABASE 数据库名-- 例子 查看到曾经创建mydb库时的SQL,查看指定的字符集信息。
SHOW CREATE DATABASE mydb
删除数据库

删库是一个危险操作,需谨慎,最好备份,skr

-- 语法
DROP DATABASE 数据库名-- 例子 删除数据库mydb1
DROP DATABASE mydb1;-- 查询时发现mydb1已经被删除了
SHOW DATABASES;
使用数据库(切换到另一个数据库)

要保存数据都是要将数据保存在表中,而数据库相当于是表的集合。我们为不同的项目创建不同的数据库,在DBMS上要为不同的数据库的表进行操作时要先切换到对应的数据库上再进行相关操作。
语法:

-- 语法
USE 数据库名-- 例子切换到一个名为mydb的数据库上
USE mydb;

操作表

查看一个数据库中创建了多少张表
SHOW TABLES
创建表
-- 语法
CREATE TABLE 表名(字段名1 类型[(长度)][默认值] [约束],字段名2 ...
)-- 例子 切换到mydb数据库上,将userinfo表创建在该库中
USE mydb;-- 创建userinfo表
CREATE TABLE userinfo(id INT primary key,								-- 一张表第一个字段通常为ID(主键,唯一标识)				username VARCHAR(30),							-- VARCHAR在数据库中是字符串类型password VARCHAR(30),             -- VARCHAR后面指定的长度为最多占用的字节数nickname VARCHAR(30),             -- 若使用UTF8编码,意味着最多保存10个汉字(每个汉字3字节)age INT(3),                       -- 在MySQL中整数使用INT类型 注:不同数据库不同sex TINYINT(1) DEFAULT 0					-- 创建TINYINT,如果新增值时为空,则默认为0
)
查看表结构和已创建表的信息
-- 语法 查看表结构
DESC 表名
-- 例子 查看userinfo表的结构
DESC userinfo;-- 语法 查看已创建的表的创建语句
SHOW CREATE TABLE 表名-- 例子 查看创建userinfo表的信息
SHOW CREATE TABLE userinfo;
删除表
-- 语法
DROP TABLE 表名-- 例子 删除userinfo表
DROP TABLE userinfo;
修改表

image.png

修改表名
-- 语法
RENAME TABLE 原表名 TO 新表名-- 例子 将userinfo表改名为user
RENAME TABLE userinfo TO user
修改表结构
-- 准备一张表
CREATE TABLE hero(name VARCHAR(30),age INT(3)
)
添加字段
-- 语法
-- 添加新字段到表的第一行
ALTER TABLE 表名 ADD 字段名 类型 FIRST-- 向表的末尾追加一个新的字段
ALTER TABLE 表名 ADD 字段名 类型-- 将新字段添加到表中现有某个字段之后
ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中现有某字段-- ------------------------------------------------- 例子
-- 添加地址字段到hero表第一行
ALTER TABLE hero ADD address varchar(20) FIRST-- 向hero表的末尾追加一个地址字段
ALTER TABLE hero ADD address varchar(20)-- 将新字段地址添加到hero表中name字段之后
ALTER TABLE 表名 ADD address varchar(20) AFTER name
删除字段
-- 语法
ALTER TABLE 表名 DROP 字段名-- 例子 删除hero表中地址字段
ALTER TABLE hero DROP address
修改字段
-- 语法
ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型-- 例子1 将hero表中的age字段长度改为5
ALTER TABLE hero CHANGE age age INT(5)-- 例子2 将hero表中的age字段类型改为VARCHAR(10)
ALTER TABLE hero CHANGE age age VARCHAR(10) -- 例子3 将hero表中的gender字段改为phonenumber
ALTER TABLE hero CHANGE gender phonenumber INT(11)-- 例子4 将hero表中phonenumber字段添加非空约束
ALTER TABLE hero CHANGE phonenumber phonenumber INT(11) NOT NULL 

修改表结构应当在表中还没有数据时进行,否则可能出现因修改与表中现有数据冲突导致修改失败

  • 修改字段类型时,如果表中该字段原数据类型与新类型不匹配时,会导致原数据无法转换为新类型
    • 性别字段,原类型VARCHAR,记录的值为"男"或"女"。现希望将性别字段改为INT型。会发生类型冲突
  • 修改字段长度,长度减少可能导致失败
    • 手机号字段,原有长度11位。现在想将其改为5位,会因为现有数据该字段值长度都为11不能缩短导致修改失败。
  • 为现有字段添加约束,可能导致表中该现有记录该字段值存在不满足约束要求,导致修改失败。
    • 性别字段开始没有非空约束,表中部分记录该字段值为NULL,此时若修改该字段并追加非空约束,会导致现有该字段为NULL值的记录不满足该约束,导致约束无法修改。

索引操作

创建索引
  1. 创建表的同时创建索引.(例如 create table tablename(…,index 索引名 (字段名)))
drop table if exists student;
create table if not exists student
(id bigint auto_increment,first_name varchar(50) not null comment '学生名字',last_name varchar(20) not null comment '学生姓',phone varchar(15) not null comment '手机号',email varchar(50) default '' comment '邮箱',birthday date comment '出生日期',create_time datetime default current_timestamp comment '注册日期',primary key (id),unique key (phone),index h_index (email)
)engine = InnoDB character set utf8mb4;
  1. 创建表后通过create语句创建索引(例如 create index 索引名 on 表名(字段名))
  2. 创建表后通过alter语句创建索引(例如 alter table add index 索引名(字段名))
  • 创建普通索引例子
create index index_first_name on student(first_name);
alter table student add index index_last_name (last_name);
  • 创建唯一索引例子
create unique index index_first_name on student(first_name);
alter student add unique index index_email (email)
  • 创建组合(联合)索引例子
create index index_first_last on student(first_name,last_name);
alter table student add index index_first_last (first_name,last_name);
查看索引
-- 语法,查看某张表上的索引
show index from 表名
删除索引
-- 语法
drop index 索引名 on 表名;
-- 例子 删除student表中的index_first_last索引
drop index index_first_last on student;

DML

DML语言详细名称为data manipulation language,是数据操作语言,用来对表中的数据进行操作的。

主要需要认识的关键字如下:INSERTUPDATEDELETE

-- 准备一张表:
CREATE TABLE person(name VARCHAR(30),age INT(3)
)

INSERT 插入数据

-- 语法 注:在语法定义上[]中的内容是可写可不写的。
INSERT INTO 表名 [(字段1,字段2,字段3...)] VALUES (1,2,3...)-- 例子
INSERT INTO person (name,age) VALUES ('张三',22);
INSERT INTO person (age,name) VALUES (33,'李四');

注:

  • 在SQL中字符串的字面量使用**单引号(‘’)**括起来。
  • VALUES后面指定的值的类型,顺序,个数要与前面指定的字段完全一致,且一一对应
插入默认值

当插入一条记录时,表中某字段没有指定时,则是插入该字段的默认值。若该字段没有明确指定过默认值时,默认值为NULL。

-- 例如
INSERT INTO person (name) VALUES ('王五')
-- 上述SQL中没有指定age字段,此时该条记录插入后,age使用该字段的默认值NULL。

可以在创建表或后期修改表结构时,使用DEFAULT关键字为某个字段指定默认值

-- 为person表中的age字段添加默认值:20
ALTER TABLE person CHANGE age age INT(3) DEFAULT 20;-- 在创建表时为字段指定默认值:
CREATE TABLE person(name VARCHAR(30) DEFAULT '无名氏',age INT(3) DEFAULT 20
)

修改表为age添加默认值20

-- 此时插入后的赵六记录中age应当已经采取了指定的默认值:20
INSERT INTO person(name) VALUES('赵六');
全列插入

在INSERT语句中没有指定字段名时就是全列插入,此时需要注意VALUES子句中指定的值的个数,顺序,类型必须与表中定义时指定的字段一致。

INSERT INTO person VALUES('钱七',38)-- 若想使用某个字段的默认值,可以使用DEFAULT关键字表达
INSERT INTO person VALUES('钱七',DEFAULT)-- 若希望插入NULL值,可以使用NULL表达
INSERT INTO person VALUES('钱七',NULL)-- 下面是错误的情况:
INSERT INTO person VALUES('钱七')			列的个数不匹配
INSERT INTO person VALUES(22,'钱七')      列的类型不匹配
查询插入

查询另一张表的数据插入到person表

INSERT INTO person SELECT name,age FROM user

UPDATE 修改数据

-- 语法
UPDATE 表名 SET 字段1=新值1[,字段2=新值2,...] [WHERE 过滤条件]-- 例子 当缺少WHERE子句时,数据库会将person表中每条记录的age字段都改为15
UPDATE person SET age=15
修改指定的记录

仅将满足WHERE条件的记录进行修改。

-- 将张三的年龄修改为22岁
UPDATE person SET age=22 WHERE name='张三'-- 只要满足WHERE条件的记录都会被修改。
UPDATE person
SET age=36
WHERE age=15
WHERE子句常用的条件

=,>,>= >,<,<=,<>(不等于:<>。实际上!=也可以用。)

-- 例子1 将年龄大于35岁的人年龄修改为30
UPDATE person
SET age=30
WHERE age>35-- 例子2 将person表中每个人的年龄涨一岁
UPDATE person
SET age=age+1
修改多个字段的值
-- 例子 将'李四'的名字改为'李老四'并且年龄改为50
UPDATE person
SET name='李老四',age=50
WHERE name='李四'

DELETE 删除数据

-- 语法
DELETE FROM 表名 [WHERE 过滤条件]

注:DELETE语句中通常都要添加WHERE条件,否则是清空表操作!

--例子1 删除'李老四'
DELETE FROM person
WHERE name='李老四'-- 例子2 删除年龄大于30的人
DELETE FROM person
WHERE age>30
清空表操作
DELETE FROM person

处理DELETE可以删除表的数据,还有一个TRUNCATE也可以清空表,但是并不常用,如果要使用最好查询这个关键字的用法和使用后果

DQL

DQL语言详细名称为data query language,是数据查询语言,用来查询表中数据的。

主要需要认识的关键字如下:SELECT

-- 基本语法
SELECT 字段1, 字段2
FROM 表名
WHERE 条件表达式;-- 例子 查询person表中年龄为16的数据,且只展示name、sex、age字段
SELECT name, sex, age
FROM person
WHERE age = 16;

本章只是做介绍,所以并不会深入讲解DQL的其他关键字,例如:DISTINCT、GROUP BY、HAVING、ORDER BY、LIMIT

TCL

TCL语言详细名称为transaction control lauguage,是事务控制语言,用来保证一些列数据库操作具有原子性,隔离性,一致性,持久性

主要需要认识的关键字如下:COMMITROLLBACK
事务需要在对数据库有一定了解后再去深入了解。

DCL

DCL语言详细名称为data control language,数据控制语言,进行数据库管理操作的,比如用户创建,权限分配等,是DBA经常使用的操作,DCL通常是用来确保使用合适的权限控制来保护数据库的安全性

主要需要认识的关键字如下:GRANTREVOKE

授予用户权限

-- 语法
GRANT 权限 ON 数据库名[.表名] TO '用户名'@'主机名';

其中权限可以有:ALL PRIVILEGES 或具体的权限如 SELECT, INSERT, UPDATE

-- 例子
GRANT SELECT,INSERT ON mydatabase.mytable TO 'pp'@'localhost';

撤销用户权限

-- 语法
REVOKE 权限 ON 数据库名[.表名] TO '用户名'@'主机名';

其中权限可以有:ALL PRIVILEGES 或具体的权限如 SELECT, INSERT, UPDATE

-- 例子
REVOKE SELECT,INSERT ON mydatabase.mytable TO 'pp'@'localhost';

相关文章:

数据库与SQL

数据库基本概念 数据库(DataBase)&#xff1a;数据库就是存储数据的仓库数据库管理系统(DBMS)&#xff1a;可以独立运行的软件&#xff0c;维护磁盘上的数据&#xff0c;用统一的方式维护不同种类的数据&#xff0c;做到通用且高效。常见的DBMS: mysqloracledb2sqlserver 数据…...

AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 0x02.初识与安装 CUDA 并行计算平台和编程模型 什么是 CUDA? CUDA&#xff08;Compute Unified Device Architecture&#xff09;是英伟达&#xff08;NVIDIA&#xff09;推出的并行计算平台和编…...

【电商纯干货分享】干货速看!电商数据集数据API接口数据分析大全!

数据分析——深入探索中小企业数字化转型&#xff0c;专注提供各行业数据分析干货、分析技巧、工具推荐以及各类超实用分析模板&#xff0c;为钻研于数据分析的朋友们加油充电。 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09…...

随手记录: Ubuntu NVIDIA显卡驱动安装后 屏幕亮度无法调节 无法连接外显示器等问题

背景 一句话&#xff1a;简单记录帮身边人装系统发现 GPU和外接显示器的无法连接&#xff0c;同时亮度无法调节等新问题 设备型号&#xff1a; 联想笔记本&#xff1a;ThinkBook 16p Gen2CPU&#xff1a;AMD Ryzen 7 5800HGPU&#xff1a;RTX 3060 问题描述及流程&#xff…...

Java:数组

文章目录 一、概念二、声明数组2.1 格式2.2 实例 三、初始化数组3.1 格式3.2 实例 四、处理数组4.1 for循环4.2 增强for循环 五、多维数组5.1 格式5.2 实例 一、概念 数组对于每一门编程语言来说都是重要的数据结构之一&#xff0c;当然不同语言对数组的实现及处理也不尽相同。…...

【代码随想录——图论——岛屿问题】

1.岛屿数量 https://kamacoder.com/problempage.php?pid1171 1.1 深度优先搜索 package mainimport "fmt"var direction [][]int{{0, 1}, {0, -1}, {1, 0}, {-1, 0}}func main() {var M, N intfmt.Scanln(&N, &M)sea : make([][]int, N)visited : make…...

异步调用 - 初识

目录 1、引入 2、同步调用 2.1、例子&#xff1a;支付功能 2.2、同步调用的好处 2.3、同步调用的缺点 3、异步调用 3.1、异步调用的方式 3.2、异步调用的优势 3.3、异步调用的缺点 3.4、什么场景下使用异步调用 3.5、MQ技术选型 1、引入 为什么想要异步通信呢&…...

Java 家庭物联网

家庭物联网系统的代码和说明&#xff0c;包括用户认证、设备控制、数据监控、通知和警报、日志记录以及WebSocket实时更新功能。 ### 项目结构 plaintext home-iot-system ├── backend │ └── src │ └── main │ └── java │ └…...

机器学习——随机森林

随机森林 1、集成学习方法 通过构造多个模型组合来解决单一的问题。它的原理是生成多个分类器/模型&#xff0c;各自独立的学习和做出预测。这些预测最后会结合成组合预测&#xff0c;因此优于任何一个单分类得到的预测。 2、什么是随机森林&#xff1f; 随机森林是一个包含…...

Java - JDK17语法新增特性(如果想知道Java - JDK17语法新增常见的特性的知识点,那么只看这一篇就足够了!)

前言&#xff1a;Java在2021年发布了最新的长期支持版本&#xff1a;JDK 17。这个版本引入了许多新的语法特性&#xff0c;提升了开发效率和代码可读性。本文将简要介绍一些常见的新特性&#xff0c;帮助开发者快速掌握并应用于实际开发中。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨…...

Linux-DNS

DNS域名解析服务 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写&#xff0c;是因特网的一项核心服务&#xff0c;它作为可以将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网&#xff0c;而不用去记住能够被机器直接读取的IP数串。…...

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用 使用gitlab的CI/CD实现logseq笔记自动发布为单页应用如何实现将logseq的笔记发布成网站使用 logseq-publish-docker 实现手动发布使用gitlab的CI/CD实现自动发布过程中的问题及解决参考资料 使用gitlab的CI/CD实现logseq笔记…...

云联壹云 FinOps:赋能某车企公有云成本管理与精细化运营

背景 某车企&#xff0c;世界 500 强企业&#xff0c;使用了大量的公有云资源&#xff0c;分布于多家公有云&#xff0c;月消费在千万级别。 业务线多且分散&#xff0c;相关的云消耗由一个核心团队进行管理&#xff0c;本次案例的内容将围绕这些云成本的管理展开的。 需求 …...

C#静态类与非静态类

1、静态类 静态类有几个重要的特点&#xff1a; 1&#xff09;无法实例化&#xff1a;由于静态类不能被实例化&#xff0c;因此它不会占用对象内存。 2&#xff09;静态成员&#xff1a;静态类只能包含静态成员&#xff08;静态方法、静态属性、静态事件等&#xff09;。 3&am…...

亚信安全:《2024云安全技术发展白皮书》

标签 云计算 安全威胁 云安全技术 网络攻击 数据保护 一句话总结 《云安全技术发展白皮书》全面分析了云计算安全威胁的演进&#xff0c;探讨了云安全技术的发展历程、当前应用和未来趋势&#xff0c;强调了构建全面云安全防护体系的重要性。 摘要 云安全威胁演进&#xff…...

GuLi商城-商品服务-API-品牌管理-云存储开通与使用

这里学习下阿里云对象存储 地址&#xff1a;对象存储 OSS_云存储服务_企业数据管理_存储-阿里云 登录支付宝账号&#xff0c;找到了我以前开通的阿里云对象存储 熟悉下API 文档中心 简介_对象存储(OSS)-阿里云帮助中心 我们将用这种方式上传阿里云OSS...

git 命令行初始化并上传项目

XXXX 为项目名称 1. 初始化 cd D:\XXXX git init git remote add origin http://账号192.168.1.231:8088/r/XXXX.git 2. 拉取项目&#xff0c;做本地合并 git pull origin master git fetch origin git merge origin/master 3. 添加注释&#xff0c;上传 git add . git c…...

Spring框架Mvc(2)

1.传递数组 代码示例 结果 2.集合参数存储并进行存储类似集合类 代码示例 postman进行测试 &#xff0c;测试结果 3.用Json来对其进行数据的传递 &#xff08;1&#xff09;Json是一个经常使用的用来表示对象的字符串 &#xff08;2&#xff09;Json字符串在字符串和对象…...

Python学习笔记29:进阶篇(十八)常见标准库使用之质量控制中的数据清洗

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 质量控制…...

【LLM】一、利用ollama本地部署大模型

目录 前言 一、Ollama 简介 1、什么是Ollama 2、特点&#xff1a; 二、Windows部署 1.下载 2.安装 3.测试安装 4.模型部署&#xff1a; 5.注意 三、 Docker部署 1.docker安装 2.ollama镜像拉取 3.ollama运行容器 4.模型部署&#xff1a; 5.注意&#xff1a; 总结 前言…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...