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

MySQL基础篇(一)SQL

视频地址: 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

SQL,全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一 标准

一、SQL通用语法

SQL 语言的通用语法:
(1)SQL语句可以单行或多行书写,以分号结尾。
(2)SQL语句可以使用空格/缩进来增强语句的可读性。
(3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
(4)注释:
1️⃣单行注释:-- 注释内容 或 # 注释内容
2️⃣多行注释:/* 注释内容 */

二、SQL 分类

在这里插入图片描述

三、DDL

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。

1. DDL - 数据库操作

1.1 查询所有数据库

SHOW DATABASES;

1.2 查询当前数据库

SELECT DATABASE();

1.3 创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

1.4 删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

1.5 切换数据库

我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。

USE 数据库名;

2. DDL - 表操作 - 查询创建

2.1 查询当前数据库所有表

show tables;

比如,我们可以切换到 sys 这个系统数据库,并查看系统数据库中的所有表结构。

use sys;
show tables;

2.2 查看指定表结构

desc 表名 ;

通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为 NULL,是否存在默认值等信息。

2.3 查询指定表的建表语句

show create table 表名 ;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。

2.4 创建表结构

CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;

注意: […] 内为可选参数,最后一个字段后面没有逗号

比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:在这里插入图片描述

create table tb_user(
id int comment '编号',
name varchar(50) comment '姓名',
age int comment '年龄',
gender varchar(1) comment '性别'
) comment '用户表';

3. DDL - 表操作 - 数据类型

MySQL 中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

3.1 数值类型

在这里插入图片描述

:
1). 年龄字段 -- 不会出现负数, 而且人的年龄不会太大
age tinyint unsigned2). 分数 -- 总分100, 最多出现一位小数
score double(4,1)

3.2 字符串类型

在这里插入图片描述

char 与 varchar 都可以描述字符串,char 是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而 varchar 是变长字符串,指定的长度为最大占用长度 。相对来说,char 的性能会更高些。

如:
1). 用户名 username ------> 长度不定, 最长不会超过50
username varchar(50)2). 性别 gender ---------> 存储值, 不是男,就是女
gender char(1)3). 手机号 phone --------> 固定长度为11
phone char(11)

3.3 日期时间类型

在这里插入图片描述

:
1). 生日字段 birthday
birthday date2). 创建时间 createtime
createtime datetime

4. 表操作-案例

设计一张员工信息表,要求如下:
(1)编号(纯数字)
(2)员工工号 (字符串类型,长度不超过10位)
(3)3. 员工姓名(字符串类型,长度不超过10位)
(4)性别(男/女,存储一个汉字)
(5)年龄(正常人年龄,不可能存储负数)
(6)身份证号(二代身份证号均为18位,身份证中有X这样的字符)
(7)入职时间(取值年月日即可)

create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证号',entrydate date comment '入职时间'
) comment '员工表';

5. DDL - 表操作 - 修改

5.1 添加字段

ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例:
为 emp 表增加一个新的字段”昵称”为 nickname,类型为 varchar(20)

ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';

5.2 修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

5.3 修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例:
将 emp 表的 nickname 字段修改为 username,类型为 varchar(30)

ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '昵称';

5.4 删除字段

ALTER TABLE 表名 DROP 字段名;

案例:
将 emp 表的字段 username 删除

ALTER TABLE emp DROP username;

5.5 修改表名

ALTER TABLE 表名 RENAME TO 新表名; 

案例:
将 emp 表的表名修改为 employee

ALTER TABLE emp RENAME TO employee;

6. DDL - 表操作 - 删除

6.1 删除表

DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。

案例:
如果 tb_user 表存在,则删除 tb_user 表

DROP TABLE IF EXISTS tb_user;

6.2 删除指定表, 并重新创建表

TRUNCATE TABLE 表名;

注意: 在删除表的时候,表中的全部数据也都会被删除。

四、DML

DML 英文全称是 Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
(1)添加数据(INSERT)
(2)修改数据(UPDATE)
(3)删除数据(DELETE)

1. 添加数据

1.1 给指定字段添加数据

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...);

案例:
给 employee 表所有的字段添加数据

insert into employee(id,workno,name,gender,age,idcard,entrydate)
values(1,'1','Itcast','男',10,'123456789012345678','2000-01-01');

1.2 给全部字段添加数据

INSERT INTO 表名 VALUES (1,2, ...);

案例:
插入数据到 employee 表

insert into employee values(2,'2','张无忌','男',18,'123456789012345670','2005-01-01');

1.3 批量添加数据

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...), (1,2, ...), (1,2, ...) ;
INSERT INTO 表名 VALUES (1,2, ...), (1,2, ...), (1,2, ...) ; 

案例:
批量插入数据到 employee 表

insert into employee values(3,'3','韦一笑','男',38,'123456789012345670','2005-01-01'),(4,'4','赵敏','',18,'123456789012345670','2005-01-01');

注意:
(1)插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
(2)字符串和日期型数据应该包含在引号中。
(3)插入的数据大小,应该在字段的规定范围内。

2. 修改数据

修改数据的具体语法为:

UPDATE 表名 SET 字段名1 =1 , 字段名2 =2 , .... [ WHERE 条件 ] ;

案例:
修改 id 为1的数据,将 name 修改为 itheima

UPDATE employee SET name = 'itheima' WHERE id = 1;

注意事项:
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

3. 删除数据

删除数据的具体语法为:

UPDATE 表名 SET 字段名1 =1 , 字段名2 =2 , .... [ WHERE 条件 ] ;

案例:
删除 gender 为女的员工

delete from employee where gender = '女'; 

注意事项:
(1)DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
(2)DELETE 语句不能删除某一个字段的值(可以使用 UPDATE,将该字段值置为 NULL 即可)。
(3)当进行删除全部数据操作时,datagrip 会提示我们,询问是否确认删除,我们直接点击 Execute 即可。

五、DQL

数据准备工作:

drop table if exists employee;create table emp(
id int comment '编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
workaddress varchar(50) comment '工作地址',
entrydate date comment '入职时间'
)comment '员工表';INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');

DQL 英文全称是 Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

查询关键字: SELECT

1. 基本语法

DQL 查询语句,语法结构如下:

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

2. 基础查询

2.1 查询多个字段

在基本查询的 DQL 语句中,不带任何的查询条件,查询的语法如下:

SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;
SELECT * FROM 表名 ;

2.2 字段设置别名

SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;
SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;

2.3 去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

案例:
查询公司员工的上班地址有哪些(不要重复)

select distinct workaddress '工作地址' from emp;

3. 条件查询

3.1 语法

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

3.2 条件

常用的比较运算符如下:
在这里插入图片描述

常用的逻辑运算符如下:
在这里插入图片描述
案例:
查询年龄在15岁(包含) 到 20岁(包含)之间的员工信息

select * from emp where age >= 15 && age <= 20;
select * from emp where age >= 15 and age <= 20;
select * from emp where age between 15 and 20;

4. 聚合函数

4.1 介绍

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

4.2 常见的聚合函数

在这里插入图片描述

4.3 语法

SELECT 聚合函数(字段列表) FROM 表名 ;

注意 : NULL 值是不参与所有聚合函数运算的。

案例:
统计该企业员工数量

select count(*) from emp; -- 统计的是总记录数
select count(idcard) from emp; -- 统计的是idcard字段不为null的记录数

对于 count 聚合函数,统计符合条件的总记录数,还可以通过 count(数字/字符串)的形式进行统查询,比如:

select count(1) from emp;

5. 分组查询

5.1 语法

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

5.2 where 与 having 区别

(1)执行时机不同:where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。
(2)判断条件不同:where 不能对聚合函数进行判断,而 having 可以。

注意事项:
(1)分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
(2)执行顺序: where > 聚合函数 > having 。
(3)支持多字段分组, 具体语法为 : group by columnA,columnB

案例:
根据性别分组 , 统计男性员工 和 女性员工的数量

select gender, count(*) from emp group by gender ;

案例:
根据性别分组 , 统计男性员工 和 女性员工的平均年龄

select gender, avg(age) from emp group by gender ;

案例:
统计各个工作地址上班的男性及女性员工的数量

select workaddress, gender, count(*) '数量' from emp group by gender , workaddress;

6. 排序查询

排序在日常开发中是非常常见的一个操作,有升序排序,也有降序排序。

6.1 语法

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

6.2 排序方式

(1)ASC : 升序(默认值)
(2)DESC: 降序

注意事项:
• 如果是升序, 可以不指定排序方式ASC ;
• 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;

案例:
根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序

select * from emp order by age asc , entrydate desc;

7. 分页查询

分页操作在业务系统开发时,也是非常常见的一个功能,我们在网站中看到的各种各样的分页条,后台都需要借助于数据库的分页操作。

7.1 语法

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

注意事项:
• 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
• 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
• 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

案例:
查询第2页员工数据, 每页展示10条记录 --------> (页码-1)*页展示记录数

select * from emp limit 10,10;

8. 执行顺序

在讲解 DQL 语句的具体语法之前,我们已经讲解了 DQL 语句的完整语法,及编写顺序,接下来,我们要来说明的是 DQL 语句在执行时的执行顺序,也就是先执行哪一部分,后执行哪一部分。
在这里插入图片描述

六、DCL

DCL 英文全称是 Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

1. 管理用户

1.1 查询用户

select * from mysql.user;

查询的结果如下:
在这里插入图片描述
其中 Host 代表当前用户访问的主机,如果为 localhost,仅代表只能够在当前本机访问,是不可以远程访问的。
User 代表的是访问该数据库的用户名。在 MySQL 中需要通过 Host 和 User 来唯一标识一个用户。

1.2 创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

1.3 修改用户密码

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;

1.4 删除用户

DROP USER '用户名'@'主机名' ;

注意事项:
• 在 MySQL 中需要通过用户名@主机名的方式,来唯一标识一个用户。
• 主机名可以使用 % 通配。
• 这类 SQL 开发人员操作的比较少,主要是 DBA( Database Administrator 数据库管理员)使用。

案例:
创建用户 itcast, 只能够在当前主机 localhost 访问, 密码 123456;

create user 'itcast'@'localhost' identified by '123456';

案例:
创建用户 heima, 可以在任意主机访问该数据库, 密码 123456;

create user 'heima'@'%' identified by '123456';

案例:
修改用户 heima 的访问密码为 1234;

alter user 'heima'@'%' identified with mysql_native_password by '1234';

案例:
删除 itcast@localhost 用户

drop user 'itcast'@'localhost';

2. 权限控制

MySQL中定义了很多种权限,但是 常用 的就以下几种:
在这里插入图片描述

(1)查询权限

SHOW GRANTS FOR '用户名'@'主机名' ;

(2)授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

(3)撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意事项:
• 多个权限之间,使用逗号分隔
• 授权时, 数据库名和表名可以使用 * 进行通配,代表所有。

案例:
查询 ‘heima’@‘%’ 用户的权限

show grants for 'heima'@'%';

案例:
授予 ‘heima’@‘%’ 用户itcast数据库所有表的所有操作权限

grant all on itcast.* to 'heima'@'%';

案例:
撤销 ‘heima’@‘%’ 用户的itcast数据库的所有权限

revoke all on itcast.* from 'heima'@'%';

相关文章:

MySQL基础篇(一)SQL

视频地址: 黑马程序员 MySQL数据库入门到精通&#xff0c;从mysql安装到mysql高级、mysql优化全囊括 SQL&#xff0c;全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一 标准。 一、SQL通用语…...

多类指针式仪表自动读数系统的LabVIEW开发应用案例

多类指针式仪表自动读数系统的LabVIEW开发应用案例 工业环境中&#xff0c;多类指针式仪表的自动读数一直是一个具有挑战性的问题。本案例旨在展示如何使用LabVIEW开发一个高度智能化的多类指针式仪表自动读数系统&#xff0c;以应对复杂的工业环境。通过结合图像处理技术和深…...

攀登者2 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C++ 题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下…...

归并排序例题——逆序对的数量

做道简单一点的题巩固一下 归并排序实现步骤 将整个区间 [l, r] 划分为 [l, mid] 和 [mid1, r]。 递归排序 [l, mid] 和 [mid1, r]。 将左右两个有序序列合并为一个有序序列。 题目描述 给定一个长度为 n 的整数数列&#xff0c;请计算数列中的逆序对的数量。 逆序对的定义…...

数据库连接使用问题 - 1

原理 open-in-view 是 Spring Boot ⾃动加载 Spring Data JPA 提供的⼀个配置&#xff0c;全称为 spring.jpa.open-in-viewtrue&#xff0c;它只有 true 和 false 两个值&#xff0c;默认是 true。 这个配置为true时&#xff0c;会导致Web MVC请求处理的一开始&…...

【已解决】You have an error in your SQL syntax

报错讯息 java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘desc,target_url,sort,status,create_by,modify_by,created,last_update_time FROM…...

如何在Ubuntu安装SVN服务并结合cpolar实现公网TCP地址远程访问本地服务

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...

windows监控进程是否还活着,查看内存使用率

windows监控进程是否还活着&#xff0c;查看内存使用率 1、导入库psutil pip install psutil2、查看进程是否活着 def is_process_running(self, process_name):# 查看程序是否还存活for process in psutil.process_iter():try:if process.name() process_name:return True…...

C#-词法结构

程序 C# 程序 (program) 由一个或多个源文件 (source file) 组成,源文件的正式名称是编译单元 (compilation unit)。源文件是有序的 Unicode 字符序列。 源文件与文件系统中的文件通常具有一对一的对应关系,但这种对应关系不是必需的。为实现可移植性的最大化,建议这些文件…...

GitHub pull request(傻瓜式入门版)

GitHub pull request Pull Request&#xff08;拉取请求&#xff09;是一种非常重要的协作机制&#xff0c;它是 Git 和 GitHub 等代码托管平台中常见的功能。在开源项目中&#xff0c;Pull Request 被广泛用于参与社区贡献&#xff0c;从而促进项目的发展。 一、fork代码 先…...

Studio 3T客户端连接Mongodb数据库服务

这里需要注意 一定要先开Studio 3T 到 创建连接时才开Mongodb服务 不然 Studio 3T 会找不到Mongodb服务 不知道这是不是 Studio 3T官方问题 期待解决吧 我们打开 Studio 3T 然后点击 Create a new connection 开始创建连接 新弹出的窗口中选择 Manually configure my connec…...

算法每日一题:赎金信 | 字符和整数

hello&#xff0c;大家好&#xff0c;我是星恒 今天给大家带来的题目是一道简单题目&#xff0c;主要帮大家复习一下字符串和字符的相关操作 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以&#…...

数字孪生在虚拟现实(VR)中的应用

数字孪生在虚拟现实&#xff08;VR&#xff09;中的应用为用户提供了更深入、沉浸式的体验&#xff0c;同时通过数字孪生技术模拟真实世界的物理实体。以下是数字孪生在VR中的一些应用&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发…...

iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 &#x1f4dd; 摘要&#xff1a; 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具&#xff0c;我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…...

论文阅读:通过时空生成卷积网络合成动态模式(重点论文)

原文链接 github code 介绍视频 视频序列包含丰富的动态模式&#xff0c;例如在时域中表现出平稳性的动态纹理模式&#xff0c;以及在空间或时域中表现出非平稳的动作模式。 我们证明了时空生成卷积网络可用于建模和合成动态模式。 该模型定义了视频序列上的概率分布&#xff0…...

html2canvas+jsPDF导出超长网页的PDF

项目需求:有一个网页大概60000px的高度,现在需要导出为PDF index.vue <template><div class"ctn"><div class"pdf-ctn"><div class"pdf-panel" ><div class"pdf-inside-panel" id"myList">&…...

云计算:OpenStack 分布式架构管理VXLAN网络(单控制节点与多计算节点)

目录 一、实验 1.环境 2.各节点新增网卡准备VXLAN网络 3.控制节点配置私有网络 4.计算节点1配置私有网络 5.计算节点2配置私有网络 6.重启服务 7.修改Dashboard 8.新建项目&#xff08;租户&#xff09;及用户 9.新建网络与子网 10.新建实例 11.新建路由 12.新增浮…...

MATLAB --- dlmread( )函数的用法

dlmread() 是 MATLAB 中用于读取以特定分隔符分隔的文本文件数据的函数 下面是 dlmread() 函数的用法&#xff1a; M dlmread(filename) M dlmread(filename, delimiter) M dlmread(filename, delimiter, R, C) M dlmread(filename, delimiter, range)参数说明&#xff1…...

STM32CubeMX RS485接口使用

一、基本知识 TTL&#xff08;Transistor-Transistor Logic&#xff09;&#xff1a; 电平范围&#xff1a; 逻辑1对应于2.4V–5V&#xff0c;逻辑0对应于0V–0.5V。通信特点&#xff1a; 全双工。特点&#xff1a; 常见于单片机和微控制器的IO电平&#xff0c;USB转TTL模块通常…...

ClickHouse(20)ClickHouse集成PostgreSQL表引擎详细解析

文章目录 PostgreSQL创建一张表实施细节用法示例 资料分享参考文章 PostgreSQL PostgreSQL 引擎允许 ClickHouse 对存储在远程 PostgreSQL 服务器上的数据执行 SELECT 和 INSERT 查询. 创建一张表 CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] (name…...

R304S 指纹识别模块功能实现示例

1 基本通信流程 1.1 UART 命令包的处理过程 1.2 UART 数据包的发送过程 UART 传输数据包前&#xff0c;首先要接收到传输数据包的指令包&#xff0c;做好传输准备后发送成功应答包&#xff0c;最后才开始传输数据包。数据包主要包括&#xff1a;包头、设备地址、包标识、包长…...

2、Excel:基础概念、表格结构与常见函数

数据来源&#xff1a;八月成交数据 数据初探 业务背景 数据来源行业&#xff1a;金融行业&#xff08;根据应收利息和逾期金额字段来判断&#xff09; 可以猜测&#xff1a; 业务主体&#xff1a;某互联网金融公司&#xff08;类似支付宝&#xff09;也业务模式&#xff1a;给…...

鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法

一、介绍 鱼类识别系统。使用Python作为主要编程语言开发&#xff0c;通过收集常见的30种鱼类&#xff08;‘墨鱼’, ‘多宝鱼’, ‘带鱼’, ‘石斑鱼’, ‘秋刀鱼’, ‘章鱼’, ‘红鱼’, ‘罗非鱼’, ‘胖头鱼’, ‘草鱼’, ‘银鱼’, ‘青鱼’, ‘马头鱼’, ‘鱿鱼’, ‘鲇…...

ThreadLocal线程重用导致用户信息错乱的 Bug

在生产上遇到一个诡异的问题&#xff0c;有时获取到的用户信息是别人的。查看代码后&#xff0c;我发现他使用了 ThreadLocal 来缓存获取到的用户信息。 我们知道&#xff0c;ThreadLocal 适用于变量在线程间隔离&#xff0c;而在方法或类间共享的场景。如果用户信息的获取比较…...

洛谷——P1143 进制转换

文章目录 一、题目进制转换题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 二、题解基本思路&#xff1a; 一、题目 进制转换 题目描述 请你编一程序实现两种不同进制之间的数据转换。 输入格式 共三行&#xff0c;第一行是一个正整数&#xff0c;表示需要转换的…...

linux stop_machine 停机机制应用及一次触发 soft lockup 分析

文章目录 stop_mchine 引起的 soft lockup触发 soft lockup 原因分析&#xff08;一&#xff09;&#xff1a;触发 soft lockup 原因分析&#xff08;二&#xff09;触发 soft lockup 原因分析&#xff08;三&#xff09; stop_mchine 引起的 soft lockup 某次在服务器上某节点…...

ARM 链接器优化功能介绍

消除公共部分组 链接器可以检测节组的多个副本&#xff0c;并丢弃其他副本。 Arm Compiler for Embedded 生成用于链接的完整对象。因此&#xff1a; 如果 C 和 C 源代码中存在内联函数&#xff0c;则每个对象都包含该对象所需的内联函数的外联副本。如果在 C 源代码中使用…...

动手学深度学习之卷积神经网络之池化层

池化层 卷积层对位置太敏感了&#xff0c;可能一点点变化就会导致输出的变化&#xff0c;这时候就需要池化层了&#xff0c;池化层的主要作用就是缓解卷积层对位置的敏感性 二维最大池化 这里有一个窗口&#xff0c;来滑动&#xff0c;每次我们将窗口中最大的值给拿出来 还是上…...

HackTheBox - Medium - Linux - Ambassador

Ambassador Ambassador 是一台中等难度的 Linux 机器&#xff0c;用于解决硬编码的明文凭据留在旧版本代码中的问题。首先&#xff0c;“Grafana”CVE &#xff08;“CVE-2021-43798”&#xff09; 用于读取目标上的任意文件。在研究了服务的常见配置方式后&#xff0c;将在其…...

嵌入式——循环队列

循环队列 (Circular Queue) 是一种数据结构(或称环形队列、圆形队列)。它类似于普通队列,但是在循环队列中,当队列尾部到达数组的末尾时,它会从数组的开头重新开始。这种数据结构通常用于需要固定大小的队列,例如计算机内存中的缓冲区。循环队列可以通过数组或链表实现,…...

上海网站建设代/站长工具视频

打开文件 打开文件夹&#xff0c;供操作者选择文件: OpenFileDialog dialog new OpenFileDialog();dialog.ShowDialog(); 获得所选文件的文件名: string fileNamedialoa.FileName; 获取所选文件的文件夹目录: FileInfo fi new FileInfo(t); string path fileName.Substring(…...

免费做字体的网站/网页设计模板网站免费

原创 不测神灵 2020-06-09 01:44:51福彩双色球第2020047期奖号为&#xff1a;04、10、17、19、28、32 01&#xff0c;红球号码和值为110&#xff0c;首尾间距为28&#xff0c;奇偶比为2&#xff1a;4&#xff0c;大小比为4&#xff1a;2&#xff0c;012路比为0&#xff1a;4&a…...

怎么制作代码/网站seo优化徐州百度网络

作为一个使用php 的web开发者&#xff0c;我们都知道php大概是拥有最多的代码库的web开发语言了&#xff0c;所以无论你的项目中向包含什么功能&#xff0c;我们都应该优先考虑开源的项目。why? 开源项目都是许多人共同工作的&#xff0c;应该比一个人的工作做得好 你可以免费…...

网站备案流程审核单/谷歌浏览器网页版

前言 这是我第一次参加数学建模比赛&#xff0c;经过和队友几天&#xff08;特别是在辛酸的520日)的通力合作&#xff0c;最终拿了个校奖&#xff0c;其中&#xff0c;由于建模期间同时沉迷于java&#xff0c;建模的语言没有采用建模常用语言matlab&#xff0c;我觉得matlab太不…...

如何做自己产品网站/手机域名访问网站怎么进入

OutputStreamWriter类&#xff1a; OutputStreamWriter 是字符流通向字节流的桥梁 可使用指定的字符编码表&#xff0c;将要写入流中的字符编码成字节 public static void main(String[] args) throws IOException {   //明确目的地   FileOutputStream fosnew FileOutputS…...

做电影采集网站需要多大vps/抖音seo优化怎么做

是时候给大家介绍 Spring Boot/Cloud 背后豪华的研发团队了。 2019/01/03http://www.ityouknow.com/springboot/2019/01/03/spring-pivotal.html 看了 Pivotal 公司的发展历史&#xff0c;这尼玛就是一场商业大片呀。 我们刚开始学习 Spring Boot 的时候肯定都会看到这么一句话…...