【SQL】一文带你掌握SQL基础语法

news2025/6/12 22:25:41

文章目录

  • 💖1,SQL概述
    • 🎈1.1 SQL简介
    • 🎈1.2 通用语法
    • 🎈1.3 SQL分类
  • 💖2,DDL:操作数据库
    • 🎈2.1 查询
    • 🎈2.2 创建数据库
    • 🎈2.3 删除数据库
    • 🎈2.4 使用数据库
  • 💖3,DDL:操作表
    • 🎈3.1 查询表
    • 🎈3.2 创建表
    • 🎈3.3 数据类型
    • 🎈3.4 删除表
    • 🎈3.5 修改表
  • 💖4,DML( 数据操作语言)
    • 🎈4.1 添加数据
    • 🎈4.2 修改数据
    • 🎈4.3 删除数据
  • 💖5,DQL(数据查询语言)
    • 🎈5.1 基础查询
    • 🎈5.2 条件查询
      • 🍕5.2.1 语法
      • 🍕5.2.2 条件查询练习
      • 🍕5.2.3 模糊查询练习
    • 🎈5.3 排序查询
      • 🍕5.3.1 语法
      • 🍕5.3.2 练习
    • 🎈5.4 聚合函数
      • 🍕5.4.1 概念
      • 🍕5.4.2 聚合函数分类
      • 5.4.3 聚合函数语法
      • 🍕5.4.4 练习
    • 🎈5.5 分组查询
      • 🍕5.5.1 语法
      • 🍕5.5.2 练习
    • 🎈5.6 分页查询
      • 🍕5.6.1 语法
      • 🍕5.6.2 练习

💖1,SQL概述

在这里插入图片描述

🎈1.1 SQL简介

  • 英文:Structured Query Language,简称 SQL
  • 结构化查询语言,一门操作关系型数据库的编程语言
  • 定义操作所有关系型数据库的统一标准
  • 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”

🎈1.2 通用语法

  • SQL 语句可以单行或多行书写,以分号结尾

在这里插入图片描述

如上,以分号结尾才是一个完整的sql语句。

  • MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。

    同样的一条sql语句写成下图大写的样子,一样可以运行处结果。
    在这里插入图片描述

  • 注释

    • 单行注释: – 注释内容 或 #注释内容(MySQL 特有)
      在这里插入图片描述

在这里插入图片描述

> 注意:使用-- 添加单行注释时,--后面一定要加空格,而#没有要求。
  • 多行注释: /* 注释 */

🎈1.3 SQL分类

  • DDL(Data Definition Language) : 数据定义语言,用来定义数据库对象:数据库,表,列等

    DDL简单理解就是用来操作数据库,表等
    在这里插入图片描述

  • DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改

    DML简单理解就对表中数据进行增删改
    在这里插入图片描述

  • DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)

    DQL简单理解就是对数据进行查询操作。从数据库表中查询到我们想要的数据。

注意: 以后我们最常操作的是 DMLDQL ,因为我们开发中最常操作的就是数据。

💖2,DDL:操作数据库

我们先来学习DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。

🎈2.1 查询

查询所有的数据库

SHOW DATABASES;

运行上面语句效果如下:

在这里插入图片描述

上述查询到的是的这些数据库是mysql安装好自带的数据库,我们以后不要操作这些数据库。

🎈2.2 创建数据库

  • 创建数据库
CREATE DATABASE 数据库名称;

运行语句效果如下:

在这里插入图片描述

而在创建数据库的时候,我并不知道db1数据库有没有创建,直接再次创建名为db1的数据库就会出现错误。

在这里插入图片描述

为了避免上面的错误,在创建数据库的时候先做判断,如果不存在再创建。

  • 创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;

运行语句效果如下:

在这里插入图片描述

从上面的效果可以看到虽然db1数据库已经存在,再创建db1也没有报错,而创建db2数据库则创建成功。

🎈2.3 删除数据库

  • 删除数据库
DROP DATABASE 数据库名称;
  • 删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;

运行语句效果如下:

在这里插入图片描述

🎈2.4 使用数据库

数据库创建好了,要在数据库中创建表,得先明确在哪儿个数据库中操作,此时就需要使用数据库。

  • 使用数据库
USE 数据库名称;
  • 查看当前使用的数据库
SELECT DATABASE();

运行语句效果如下:

在这里插入图片描述

💖3,DDL:操作表

操作表也就是对表进行增、删、改、查。

🎈3.1 查询表

  • 查询当前数据库下所有表名称
SHOW TABLES;

我们创建的数据库中没有任何表,因此我们进入mysql自带的mysql数据库,执行上述语句查看
在这里插入图片描述

  • 查询表结构
DESC 表名称;

查看mysql数据库中func表的结构,运行语句如下:

在这里插入图片描述

🎈3.2 创建表

  • 创建表
CREATE TABLE 表名 (
	字段名1  数据类型1,
	字段名2  数据类型2,
	…
	字段名n  数据类型n
);

注意:最后一行末尾,不能加逗号

知道了创建表的语句,那么我们创建创建如下结构的表

在这里插入图片描述

create table tb_user (
	id int,
    username varchar(20),
    password varchar(32)
);

运行语句如下:
在这里插入图片描述

🎈3.3 数据类型

MySQL 支持多种类型,可以分为三类:

  • 数值

    tinyint : 小整数型,占一个字节
    int	: 大整数类型,占四个字节
    	eg : age int
    double : 浮点类型
    	使用格式: 字段名 double(总长度,小数点后保留的位数)
    	eg : score double(5,2)   
    
  • 日期

    date : 日期值。只包含年月日
    	eg :birthday datedatetime : 混合日期和时间值。包含年月日时分秒
    
  • 字符串

    char : 定长字符串。
    	优点:存储性能高
    	缺点:浪费空间
    	eg : name char(10)  如果存储的数据字符个数不足10个,也会占10个的空间
    varchar : 变长字符串。
    	优点:节约空间
    	缺点:存储性能底
    	eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间	
    

注意:sql中还有很多数据类型,这里不一一列举,其他类型参考资料中的《MySQL数据类型].xlsx》

示例:

需求:设计一张学生表,请注重数据类型、长度的合理性
	1. 编号
	2. 姓名,姓名最长不超过10个汉字
	3. 性别,因为取值只有两种可能,因此最多一个汉字
	4. 生日,取值为年月日
	5. 入学成绩,小数点后保留两位
	6. 邮件地址,最大长度不超过 64
	7. 家庭联系电话,不一定是手机号码,可能会出现 - 等字符
	8. 学生状态(用数字表示,正常、休学、毕业...)

语句设计如下:

create table student (
	id int,
    name varchar(10),
    gender char(1),
    birthday date,
    score double(5,2),
    email varchar(15),
    tel varchar(15),
    status tinyint
);

🎈3.4 删除表

  • 删除表
DROP TABLE 表名;
  • 删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;

运行语句效果如下:

在这里插入图片描述

🎈3.5 修改表

  • 修改表名
ALTER TABLE 表名 RENAME TO 新的表名;

-- 将表名student修改为stu
alter table student rename to stu;
  • 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;

-- 给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);
  • 修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;

-- 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);
  • 修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

-- 将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);
  • 删除列
ALTER TABLE 表名 DROP 列名;

-- 将stu表中的addr字段 删除
alter table stu drop addr;

💖4,DML( 数据操作语言)

DML主要是对数据进行增(insert)删(delete)改(update)操作。

🎈4.1 添加数据

  • 给指定列添加数据
INSERT INTO 表名(列名1,列名2,) VALUES(1,2,);
  • 给全部列添加数据
INSERT INTO 表名 VALUES(1,2,);
  • 批量添加数据
INSERT INTO 表名(列名1,列名2,) VALUES(1,2,),(1,2,),(1,2,);
INSERT INTO 表名 VALUES(1,2,),(1,2,),(1,2,);
  • 示例

为了演示以下的增删改操作是否操作成功,故先将查询所有数据的语句介绍给大家:

-- 给指定列添加数据
INSERT INTO stu (id, NAME) VALUES (1, '张三');

-- 给所有列添加数据,列名的列表可以省略的
INSERT INTO stu (id,NAME,sex,birthday,score,email,tel,STATUS) VALUES (2,'李四','男','1999-11-11',88.88,'lisi@itcast.cn','13888888888',1);

INSERT INTO stu VALUES (2,'李四','男','1999-11-11',88.88,'lisi@itcast.cn','13888888888',1);

-- 批量添加数据
INSERT INTO stu VALUES 
	(2,'李四','男','1999-11-11',88.88,'lisi@itcast.cn','13888888888',1),
	(2,'李四','男','1999-11-11',88.88,'lisi@itcast.cn','13888888888',1),
	(2,'李四','男','1999-11-11',88.88,'lisi@itcast.cn','13888888888',1);

🎈4.2 修改数据

  • 修改表数据
UPDATE 表名 SET 列名1=1,列名2=2,[WHERE 条件] ;

注意:

  1. 修改语句中如果不加条件,则将所有数据都修改!
  2. 像上面的语句中的中括号,表示在写sql语句中可以省略这部分
  • 示例

    • 将张三的性别改为女

      update stu set sex = '女' where name = '张三';
      
    • 将张三的生日改为 1999-12-12 分数改为99.99

      update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';
      
    • 注意:如果update语句没有加where条件,则会将表中所有数据全部修改!

      update stu set sex = '女';
      

      上面语句的执行完后查询到的结果是:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QzihR5ck-1670252568422)(D:/BaiduNetdiskDownload/课件/课件/阶段二 JavaWeb/1、MySQL基础/讲义/assets/image-20210722204233305.png)]

🎈4.3 删除数据

  • 删除数据
DELETE FROM 表名 [WHERE 条件] ;
  • 示例
-- 删除张三记录
delete from stu where name = '张三';

-- 删除stu表中所有的数据
delete from stu;

💖5,DQL(数据查询语言)

接下来我们先介绍查询的完整语法:

SELECT 
    字段列表
FROM 
    表名列表 
WHERE 
    条件列表
GROUP BY
    分组字段
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

为了给大家演示查询的语句,我们需要先准备表及一些数据:

-- 删除stu表
drop table if exists stu;


-- 创建stu表
CREATE TABLE stu (
 id int, -- 编号
 name varchar(20), -- 姓名
 age int, -- 年龄
 sex varchar(5), -- 性别
 address varchar(100), -- 地址
 math double(5,2), -- 数学成绩
 english double(5,2), -- 英语成绩
 hire_date date -- 入学时间
);

-- 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date) 
VALUES 
(1,'马运',55,'男','杭州',66,78,'1995-09-01'),
(2,'马花疼',45,'女','深圳',98,87,'1998-09-01'),
(3,'马斯克',55,'男','香港',56,77,'1999-09-02'),
(4,'柳白',20,'女','湖南',76,65,'1997-09-05'),
(5,'柳青',20,'男','湖南',86,NULL,'1998-09-01'),
(6,'刘德花',57,'男','香港',99,99,'1998-09-01'),
(7,'张学右',22,'女','香港',99,99,'1998-09-01'),
(8,'德玛西亚',18,'男','南京',56,65,'1994-09-02');

接下来咱们从最基本的查询语句开始学起。

🎈5.1 基础查询

  • 查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据
  • 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
  • 起别名
AS: AS 也可以省略

示例:

  • 查询name、age两列

    select name,age from stu;
    
  • 查询所有列的数据,列名的列表可以使用*替代

    select * from stu;
    

    上面语句中的*不建议大家使用,因为在这写*不方便我们阅读sql语句。我们写字段列表的话,可以添加注释对每一个字段进行说明

在这里插入图片描述

  • 查询地址信息

    select address from stu;
    

    执行上面语句结果如下:

在这里插入图片描述

从上面的结果我们可以看到有重复的数据,我们也可以使用 distinct 关键字去重重复数据。

  • 去除重复记录

    select distinct address from stu;
    
  • 查询姓名、数学成绩、英语成绩。并通过as给math和english起别名(as关键字可以省略)

    select name,math as 数学成绩,english as 英文成绩 from stu;
    select name,math 数学成绩,english 英文成绩 from stu;
    

🎈5.2 条件查询

🍕5.2.1 语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;
  • 条件

条件列表可以使用以下运算符

在这里插入图片描述

🍕5.2.2 条件查询练习

  • 查询年龄大于20岁的学员信息

    select * from stu where age > 20;
    
  • 查询年龄大于等于20岁的学员信息

    select * from stu where age >= 20;
    
  • 查询年龄大于等于20岁 并且 年龄 小于等于 30岁 的学员信息

    select * from stu where age >= 20 &&  age <= 30;
    select * from stu where age >= 20 and  age <= 30;
    

    上面语句中 && 和 and 都表示并且的意思。建议使用 and 。

    也可以使用 between … and 来实现上面需求

    select * from stu where age BETWEEN 20 and 30;
    
  • 查询入学日期在’1998-09-01’ 到 ‘1999-09-01’ 之间的学员信息

    select * from stu where hire_date BETWEEN '1998-09-01' and '1999-09-01';
    
  • 查询年龄等于18岁的学员信息

    select * from stu where age = 18;
    
  • 查询年龄不等于18岁的学员信息

    select * from stu where age != 18;
    select * from stu where age <> 18;
    
  • 查询年龄等于18岁 或者 年龄等于20岁 或者 年龄等于22岁的学员信息

    select * from stu where age = 18 or age = 20 or age = 22;
    select * from stu where age in (18,20 ,22);
    
  • 查询英语成绩为 null的学员信息

    null值的比较不能使用 = 或者 != 。需要使用 is 或者 is not

    select * from stu where english = null; -- 这个语句是不行的
    select * from stu where english is null;
    select * from stu where english is not null;
    

🍕5.2.3 模糊查询练习

模糊查询使用like关键字,可以使用通配符进行占位:

(1)_ : 代表单个任意字符

(2)% : 代表任意个数字符

  • 查询姓’马’的学员信息

    select * from stu where name like '马%';
    
  • 查询第二个字是’花’的学员信息

    select * from stu where name like '_花%';
    
  • 查询名字中包含 ‘德’ 的学员信息

    select * from stu where name like '%德%';
    

🎈5.3 排序查询

🍕5.3.1 语法

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2];

上述语句中的排序方式有两种,分别是:

  • ASC : 升序排列 (默认值)
  • DESC : 降序排列

注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

🍕5.3.2 练习

  • 查询学生信息,按照年龄升序排列

    select * from stu order by age ;
    
  • 查询学生信息,按照数学成绩降序排列

    select * from stu order by math desc ;
    
  • 查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列

    select * from stu order by math desc , english asc ;
    

🎈5.4 聚合函数

🍕5.4.1 概念

将一列数据作为一个整体,进行纵向计算。

如何理解呢?假设有如下表

在这里插入图片描述

现有一需求让我们求表中所有数据的数学成绩的总和。这就是对math字段进行纵向求和。

🍕5.4.2 聚合函数分类

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值

5.4.3 聚合函数语法

SELECT 聚合函数名(列名) FROM;

注意:null 值不参与所有聚合函数运算

🍕5.4.4 练习

  • 统计班级一共有多少个学生

    select count(id) from stu;
    select count(english) from stu;
    

    上面语句根据某个字段进行统计,如果该字段某一行的值为null的话,将不会被统计。所以可以在count(*) 来实现。* 表示所有字段数据,一行中也不可能所有的数据都为null,所以建议使用 count(*)

    select count(*) from stu;
    
  • 查询数学成绩的最高分

    select max(math) from stu;
    
  • 查询数学成绩的最低分

    select min(math) from stu;
    
  • 查询数学成绩的总分

    select sum(math) from stu;
    
  • 查询数学成绩的平均分

    select avg(math) from stu;
    
  • 查询英语成绩的最低分

    select min(english) from stu;
    

🎈5.5 分组查询

🍕5.5.1 语法

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

🍕5.5.2 练习

  • 查询男同学和女同学各自的数学平均分

    select sex, avg(math) from stu group by sex;
    

    注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

    select name, sex, avg(math) from stu group by sex;  -- 这里查询name字段就没有任何意义
    
  • 查询男同学和女同学各自的数学平均分,以及各自人数

    select sex, avg(math),count(*) from stu group by sex;
    
  • 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组

    select sex, avg(math),count(*) from stu where math > 70 group by sex;
    
  • 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的

    select sex, avg(math),count(*) from stu where math > 70 group by sex having count(*)  > 2;
    

where 和 having 区别:

  • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。

  • 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。

🎈5.6 分页查询

如下图所示,大家在很多网站都见过类似的效果,如京东、百度、淘宝等。分页查询是将数据一页一页的展示给用户看,用户也可以通过点击查看下一页的数据。

在这里插入图片描述

接下来我们先说分页查询的语法。

🍕5.6.1 语法

SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;

注意: 上述语句中的起始索引是从0开始

🍕5.6.2 练习

  • 从0开始查询,查询3条数据

    select * from stu limit 0 , 3;
    
  • 每页显示3条数据,查询第1页数据

    select * from stu limit 0 , 3;
    
  • 每页显示3条数据,查询第2页数据

    select * from stu limit 3 , 3;
    
  • 每页显示3条数据,查询第3页数据

    select * from stu limit 6 , 3;
    

从上面的练习推导出起始索引计算公式:

起始索引 = (当前页码 - 1) * 每页显示的条数

🎉文章到这里就结束了,感谢诸佬的阅读。🎉

💕欢迎诸佬对文章加以指正,也望诸佬不吝点赞、评论、收藏加关注呀😘在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪个品牌的触控笔质量好?ipad好用的触控笔

从这一点就能看出来&#xff0c;苹果原装的这一款电容笔&#xff0c;确实是贵得让人无法入手&#xff0c;一支就要一千多块钱。实际上&#xff0c;平替电容笔对没有太多预算的用户是个不错的选择。就拿正版电容笔来说&#xff0c;一正版的电容笔来说&#xff0c;就是4支平替电容…

Mybatis-Plus——实现公共字段自动填充(瑞吉外卖)

目录 一、公共字段自动填充 1.1 问题分析 1.2 实现思路及代码编写 二、 知识补充&#xff1a; ThreadLocal 2.1 使用背景 2.2 ThreadLocal介绍 2.2.1 设置当前线程的线程局部变量的值 public void set(T value) 2.2.2 返回当前线程所对应的线程 局部变量的值 public T ge…

Linux 下 QT 安卓开发环境搭建

1、采用QT5.14.2&#xff0c;主要是安装1、jdk 2、SDK 3、NDK 三个工具包&#xff0c;版本要匹配上&#xff1b; 备注&#xff1a;配置SDK需要注意&#xff1a; 解压SDK&#xff0c;进入到tools目录下&#xff0c;运行android可执行文件&#xff0c;会打开一个页面&#xff0c…

nvm软件使用-同一个环境下控制多个不同node版本

1.使用场景 nvm是一个用于管理Node.js版本的工具&#xff0c;它可以让你在同一台机器上安装和切换不同的Node.js版本。使用nvm的好处有以下几点&#xff1a; 1.1.nvm可以让你轻松地测试你的代码在不同的Node.js版本下的兼容性和性能&#xff0c;避免因为版本差异导致的问题。…

代码随想录_二叉树_leetcode530 501

leetcode 530 二叉搜索树的最小绝对差 530. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,6…

ChatGTP如此强大,我们普通人如何利用它来赚钱?

我从效率提升的角度&#xff0c;分享了我这段时间看到的、用到的&#xff0c;以及思考的一些内容。 最近这段时间&#xff0c;我算是密集的学习。不得不说&#xff0c;优质的资料在推特和油管上特别多&#xff0c;看科技大佬的分享真是一种享受。 很多大神也会录制各种详细的…

项目进度把控难题,项目管理系统轻松帮你解决!

项目管理是企业中非常重要的一项工作&#xff0c;无论是新的项目还是旧的项目&#xff0c;都需要对其进行有效的管理&#xff0c;以确保项目顺利完成并达到预期目标。项目管理涉及到很多方面&#xff0c;比如项目交接、实施计划管理、项目功能管理、项目设备管理等等&#xff0…

tcp三次握手与四次分手

一、tcp三次握手 1、TCP建立连接的流程 1&#xff09;client首先给server发送一个SYN报文&#xff0c;表示想要与server建立TCP连接&#xff0c;此时seq序列号为0 2&#xff09;server收到了报文后&#xff0c;向client发送一个SYN和ACK确认报文&#xff0c;将ACK和SYN放到同一…

SpringSecurity之CSRF

前言 前一篇讲解了关于用户注销以及自动登录&#xff08;记住我&#xff09;等功能。今天我们来看一下关于CSRF的使用及避免。 什么是CSRF 跨站请求伪造&#xff08;英语&#xff1a;Cross-site request forgery&#xff09;&#xff0c;也被称为 one-click attack 或者 ses…

74-网络一(基础知识)

网络一一.基础知识1.什么是网络2.互联网3.IP地址(1)什么是IP地址及其作用(2)IP地址的组成(3)IP地址的分类(4)IP地址的查询4.MAC地址5.端口号(1)端口号及其作用(2)怎么实现A主机上的一个进程和B进程上的一个进程实现通讯?网络二见:网络二 一.基础知识 1.什么是网络 网络是由…

亚马逊云科技开启您的云财务管理之旅——成本优化

众所周知&#xff0c;当你想要从头开始建立一个云财务管理计划似乎是稍有难度的。因此&#xff0c;亚马逊云科技解构了4个云财务管理CFM原则——查看、节省、计划和运营——并分享可以实施的操作指南&#xff0c;帮助您在云上取得成功。 云成本管理工具 亚马逊云科技提供一系列…

VVC之编码结构

VVC之编码结构&#xff08;新一代通用视频编码的读书笔记&#xff09;缩写概述EncAppmain函数解读缩写 缩写含义CVSCoded Video Sequence, 编码视频序列IRAPIntra Random Access Point, 帧内随机接入点GDRGradual Decoding Refresh, 逐渐解码刷新AUAccess Unit, 访问单元PUPic…

5.3 定积分的换元积分法和分部积分法

学习目标&#xff1a; 学习定积分的换元积分法和分部积分法&#xff0c;我会采取以下步骤&#xff1a; 熟悉基本概念和公式&#xff1a;首先&#xff0c;要对定积分、换元积分法和分部积分法有基本的理解&#xff0c;并掌握它们的基本公式和性质。 学习经典例题&#xff1a;找…

OSPF(开放式最短路径优先协议)简介

一.OSPF协议原理简介 二.OSPF协议特点 三.OSPF区域 1.OSPF区域划分作用 2.OSPF 区域划分方式&#xff1a;基于接口(链路)划分区域 3.OSPF 区域标识&#xff1a; 最终归结为32个二进制 4.区域分类&#xff1a; 便于区域设计 5.OSPF 路由器角色&#xff1a; 四.OSPF简单配…

Spring项目创建与 Spring Bean 的存储与读取

目录 一、创建Spring项目 1.1 创建Maven项目 1.2 添加 Spring 框架依赖 1.3 添加启动类 二、Bean对象的创建与存储 2.1 创建Bean 2.2 将Bean注册到容器 2.3 获取并使用Bean对象 2.3.1 创建Spring上下文 2.3.2 从Spring容器中获取Bean对象​编辑 延申&#xff08;多种…

开放式耳机新巅峰!南卡OE Pro兼备澎湃音质、舒适佩戴、创新设计

众所周知&#xff0c;当初苹果带来TWS耳机新时代以后&#xff0c;后面有许多的蓝牙耳机相继跟随和模仿&#xff0c;但NANK南卡却独辟蹊径&#xff0c;将在近日重磅推出首款0压无感全开放无线耳机——南卡OE Pro&#xff0c;走向开放式TWS耳机的新时代。 31度黄金倾斜受力面&…

BGP策略实验

实验要求&#xff1a; 1、使用PreVa1策略&#xff0c;确保R4通过R2到达192.168.10.0/24 2、使用AS_Path策略&#xff0c;确保R4通过R3到达192.168.11.0/24 3、配置MED策略&#xff0c;确保R4通过R3到达192.168.12.0/24 4、使用Local Preference策略&#xff0c;确保R1通过R2到…

有人靠ChatGPT 狂赚200W !有人到现在,连账号都没开通......

作者| Mr.K 编辑| Emma来源| 技术领导力(ID&#xff1a;jishulingdaoli)互联网风水轮流转&#xff0c;当初元宇宙盛极一时之际&#xff0c;在一些知识付费平台上&#xff0c;任何一个关于元宇宙的课程或培训&#xff0c;都很热销&#xff0c;有一定号召力的博主&#xff0c;登…

【JS】1651- 10 个 JS 中 try...catch 使用技巧

作为一位 Web 前端工程师&#xff0c;JavaScript 中的 try...catch 是我们常用的特性之一。本文我将分享 10 个有用的 try...catch 使用技巧&#xff0c;让你在处理异常时更加得心应手。1. 捕获所有异常如果你想捕获代码中所有可能的异常&#xff0c;可以使用一个不带参数的 ca…

对标ChatGPT的开源中文方案

目录 前言 一、Meta发布大语言模型LLaMA 二、斯坦福基于 Meta 的 LLaMA 7B 模型微调出Alpaca 三、基于TencentPretrain训练中文LLaMA大规模语言模型 四、基于斯坦福Alpaca训练中文对话大模型BELLE 五、 清华开源项目ChatGLM中文对话模型 六、基于LLaMA的开源中文语言模型…