MySQL——初窥门径

news2024/12/24 8:24:39

前言

        六一?作为一个大小孩当然是快快乐乐搞技术啦~在这篇文章中,荔枝会梳理SQL语句的基本语法以及MySQL中的函数、约束。多表关系以及查询、事务和事务隔离级别等内容,大致内容归属于MySQL基础知识,荔枝又弄了一篇万字长文哈哈哈哈,可以当学习笔记噢


文章目录

前言

一、MySQL是什么?

二、mysql基础配置

三、SQL的基本语法

3.1 SQL分类

3.2 DDL语句

3.3 DML语句

3.4 DQL语句

3.5 DCL

四、函数 

4.1 字符串函数

4.2 数值函数

4.3 日期函数

4.4 流程控制函数

五、MySQL约束

5.1 一个建表实例:

5.2 外键约束

六、多表查询

6.1 多表关系

6.2 多表查询

6.2.1 连接查询 

6.2.2 子查询

七、事务

7.1 事务的操作

7.2 事务的四大特性(ACID)

7.3 并发事务引发的问题

7.4 事务的隔离级别

总结


一、MySQL是什么?

        MySQL数据库是一个关系型数据库(RDBMS),关系型数据库是一种建立在关系模型基础上,由多张相互连接的二维表组成的数据库。简单理解数据库其实就是存放数据的容器,常见的关系型数据库还有Oracle,相比之下MySQL是一个中小型关系型数据库适合个人开发者而且是社区版免费的哈哈哈哈。


二、mysql基础配置

mysql安装

window环境下直接安装即可,官网地址:https://downloads.mysql.com/archives/installer/,后续需要添加一下系统环境变量。

mysql启动与停止

mysql启动
net start mysql
mysql停止
net stop mysql

mysql客户端的连接

mysql [-h 服务器ip] [-P 端口号默认是3306] -u root -p

三、SQL的基本语法

3.1 SQL分类

分类说明
DDL数据定义语言,用来定义数据库对象(数据库,表,字段)
DML数据操作语言,用来对数据库表中的数据进行增删改
DQL数据查询语言,用来查询数据库中表的记录
DCL数据控制语言,用来创建数据库用户、控制数据库的访问权限

3.2 DDL语句

全称是Data Definition Language,是一种数据定义语言,用来定义数据库对象(数据库,表,字段)

数据库操作

查询所有的数据库
SHOW DATABASES;

查询当前的数据库
SELECT DATABASE();

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

删除
DROP DATABASE[IF EXISTS]数据库名;

使用
USE 数据库名;

表操作——查询

查询当前数据库中的表
SHOW TABLES;

查询表结构
DESC 表名

查询指定表的建表语句
SHOW CREATE TABLE 表名

表操作——创建

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

例子:
CREATE TABLE `deliever` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `f_id` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '配送食物的唯一标识',
  `author` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '需配送的用户信息',
  `avator` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '用户头像',
  `courier` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '快递员信息',
  `departure` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '配送的出发地',
  `destination` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '目的地',
  `start_time` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '出单时间',
  `estimated_time` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '预计配送时间',
  `status` TINYINT(1) NOT NULL DEFAULT '1' COMMENT '订单状态,1:未接单;2:已接单;3:已完成;',
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='配送抢单表'

表操作——数据类型

数值类型

分类大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1byte(-128,127)(0,255)小整数值
SMALLINT2 bytes(-32768,32767)(0,65535)大整数值
MEDIUMINT3 bytes(-8388608,8388607)(0,16777215)大整数值
INT或INTEGER4 bytes(-2147483648,2147483647)(0,4294967295)大整数值
BIGINT8 bytes(-2^63,2^63-1)(0,2^64-1)极大整数值
FLOAT4 bytes(-3.402823466E+38,3.402823466351E+38)0和(1.175494351E-38,3.402823466E+38)单精度浮点数值
DOUBLE8 bytes(-1.7976931348623157E+308,1.7976931348623157E+308)0和(2.2250738585072014E-308,1.7976931348623157E+308)双精度浮点数值
DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值(精确定点数)

字符串类型

类型大小描述
CHAR0-255定长字符串
VARCHAR0-65535变长字符串
TINYBLOB0-255不超过255格字符的二进制数据
TINYTEXT0-255短文本字符串
BLOB0-65535二进制形式的长文本数据
TEXT0-65535长文本数据

 日期时间类型

类型大小范围格式描述
DATA31000-01-01至9999-12-31YYYY-MM-DD日期
TIME3-838:59:59至838:59:59HH:MM:SS时间值或持续时间
YEAR11901-2155YYYY年份
DATETIME81000-01-01 00:00:00至9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01至2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS时间戳、混合日期和时间

 表操作——修改

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

修改指定字段的数据类型
ALTER TABLE表名 MODIFY 字段名 新数据 类型(长度);

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


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

 表操作——删除

删除字段
ALTER TABLE 表名 DROP 字段名;

删除表
DROP TABLE [IF EXITS] 表名;

删除指定表并重新创建该表
TRUNCATE TABLE 表名;

3.3 DML语句

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

添加数据

给指定字段添加数据
INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2,…);

给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2,…);

批量添加数据
INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…),(值1,值2,…),...;
INSERT INTO 表名 VALUES(值1,值2,),(值1,值2,...),(值1,值2,…),...;

修改数据 

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

 删除数据

DELETE FROM 表名 [WHERE条件]

3.4 DQL语句

DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录,在DQL中我们需要的是掌握不同的查询语法,主要用到的是:

  • 基本查询
  • 条件查询(WHERE)
  • 聚合函数(count、max、min、avg、sum)
  • 分组查询(GROUP BY)
  • 排序查询(ORDER BY)
  • 分页查询(LIMIT) 
执行顺序:
SELECT
    字段列表
FROM
    表名列表
WHERE
    条件列表
GROUP BY
    分组字段列表
HAVING
    分组后条件列表
ORDER BY
    排序字段列表
LIMIT
    分页参数

基本查询

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

设置别名
SELECT 字段1 [AS 别名] FROM 表名;

去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

条件查询

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

举个例子:

查询年龄等于18或20或40的员工信息
select from emp where age 18 or age 20 or age =40;
select from emp where age in(18,20,40);

查询姓名为两个字的员工信息_ %(一个下划线代表一个字符)
select from emp where name like '__'

查询身份证号最后一位是X的员工信息
select from emp where idcard like '%X'

 聚合函数和分组查询

函数功能
count

统计数量

max最大值
min最小值
avg平均值
sum求和

聚合函数语法

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

 分组查询语法

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

举个例子:
查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress,count(*) from emp where age 45 group by workaddress having count(*)>=3;

where.与having区别

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

排序查询

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

asc升序(默认)
desc降序

分页查询

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

起始索引 = (要查询的页数-1)*每页数据数

 DQL语句的执行顺序:

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

3.5 DCL

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

用户管理

查询用户
USE mysql;
SELECT FROM user;

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

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

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

 权限控制

查询权限
SHOW GRANTS FOR '用户名'@'主机名';

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

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

四、函数 

4.1 字符串函数

MySQL中内置了很多字符串函数,比较常见的有如下几种:

函数功能
CONCAT(S1,S2)字符串拼接
LOWER(str)将字符串中的字符全部转化成小写
UPPER(str)将字符串中的字符全部转化成大写
LPAD(str,n,pad)左填充,用pad填充str直至长度为n
RPAD(str,n,pad)右填充
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING截取字符串

4.2 数值函数

常见的几个数值函数
函数功能
CELL(X)向上取整
FLOOR(X)向下取整
MOD(X,Y)返回x/y的模
RAND()返回0-1内的随机数
ROUND(x,y)求参数x的四舍五入值,小数保留y位

4.3 日期函数

常见的日期函数如下
函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date,INTERVAL  num type)在指定日期的基础上增加num(年/月/日),这取决于type
DATEDIFF(date1,date2)

返回两个日期之间的天数

4.4 流程控制函数

函数功能
IF(value,t,f)如果value为true,则返回t,否则返回f
IFNULL(value1,value2)如果value1不为空,返回value1,否则返回value2
CASE WHEN val1 THEN [res1]..ELSE default END如果vall为true,返回resl,..否则返回default默认值
CASE expr WHEN [val1 THEN [res1]..ELSE default END如果expr的值等于val1,返回resl,.否则返回default默认值

五、MySQL约束

        首先要清楚约束是什么,约束是作用于表中字段上的一种规则,在实际应用场景中为了保证数据库中数据的正确性、有效性和完整性,我们使用约束限制存储在表中的数据。约束的常见分类有以下几种:

约束种类描述关键字
非空约束限制该字段的数据不能为nuNOT NULL
唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT
检查约束(8.0.16版本后)保证字段值满足某一个条件CHECK
外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY

5.1 一个建表实例:

create table user(
    id int primary key auto_increment comment'主键',  #主键约束+自增
    name varchar(10) not null unique comment'姓名',    #非空约束+唯一约束
    age int check(age>0&&age<=120) comment'年龄',      #检查约束
    status char(1) default'1' comment'状态',            #默认约束
    gender char(I) comment'性别'
)comment'用户表;

5.2 外键约束

外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

##添加外键语法

#创建表时添加外键
CREATE TABLE表名(
    字段名数据类型
    ...
    [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);

#修改表添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);
#删除外键
ALTER TABLE 表名 DROP DOREIGN KEY 外键名称

##例子:
#创建外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);
#删除外键
alter table emp drop foreign key fk_emp_dept_id;

 删除/更新行为

种类描述
NO ACTION当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除更新。(与RESTRICT一致)
RESTRICT当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与NO ACTION一致)
CASCADE当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。
SET NULL当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为ull(这就要求该外键允许取null)
SET DEFAULT父表有变更时,子表将外键列设置成一个默认的值(Innodb不支持)
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade;

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null;

六、多表查询

6.1 多表关系

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为如下三种:

  • 一对多(多对一):在多的一方建立外键指向另一方
  • 多对多:建立中间表,至少包含两个主键
  • 一对一:一对一关系一般用来作单表拆分,实现需要在任意一方加入外键并关联另一方的主键,并且设置外键为唯一的(UNIQUE)

6.2 多表查询

        在多表查询时,我们需要使用select*同时从两张表中去查询,这时候会出现无效的笛卡尔积的情况,因此我们需要在多表查询时消除这种多余的笛卡尔积从而达到我们查询数据的要求。这时候可以使用where限定条件(比如令一张表的外键指向其绑定的主键)。多表查询主要分为连接查询和子查询,其中连接查询分为内连接、外连接和自连接。

6.2.1 连接查询 

内连接

##内连接查询语法:
#隐式内连接
SELECT 字段 列表 FROM 表1,表2 WHERE 条件;

#显式内连接
SELECT 字段 列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件...;

外连接

#左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
相当于查询表1(左表)的所有数据包含表1和表2交集部分的数据

#右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;
相当于查询表2(右表)的所有数据包含表1和表2交集部分的数据

##例子
#表结构:emp,dept
#连接条件:emp.dept_id=dept.id

select e.*,d.name from emp e left outer join dept d on e.dept_id=d.id;
select e.*,d.name from emp e left join dept d on e.dept_id=d.id;

#查询dept表的所有数据,和对应的员工信息(右外连接)
select d.*,e.* from emp e right outer join dept d on e.dept_id=d.id;

自连接

##自连接查询语法:
SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件;

##两个例子:

#查询员工及其所属领导的名字
#表结构:emp

select a.name,b.name from emp a,emp b where a.managerid=b.id;

#查询所有员工emp及其领导的名字emp,如果员工没有领导,也需要查询出来
#表结构:emp a,emp b

select a.name '员工',b.name '领导' from emp a left join emp b on a.managerid=b.id;

联合查询

对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集。实现联合查询的条件是查询多张表的列数必须保持一致,否则会报错。

SELECT 字段列表 FROM 表A
UNION [ALL]
SELECT 字段列表 FROM 表B;

ps:注意union和union all的区别,由于联合查询就是将两次查询的结果直接进行拼接并输出,所以结果中
   可能会有重复的数据,而要实现去重就直接选择union即可。

6.2.2 子查询

SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT的任何一个。

语法
SELECT FROM t1 WHERE column1 =(SELECT column1 FROM t2);

 按结果分类:

  • 标量子查询:子查询结果为单个值
  • 列子查询:子查询结果为一列
  • 行子查询:子查询结果为一行
  • 表子查询:子查询结果为多行多列

标量子查询

子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询成为标量子查询。
常用的操作符:= <> > >= < <=

select * from emp where dept_id=(select id from dept where name='销售部');

列子查询

列子查询常见的操作符
操作符描述
IN在指定的集合范围之内,多选一
NOT IN不在指定的集合范围之内
ANY子查询返回列表中,有任意一个满足即可
SOME与ANY等同,使用SOME的地方都可以使用ANY
ALL子查询返回列表的所有值都必须满足
子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。
常用的操作符:IN、NOT IN、ANY、SOME、ALL

例子:
##查询比财务部所有人工资都高的员工信息
#查询所有财务部人员工资
select id from dept where name='财务部';
select salary from emp where dept_id=(select id from dept where name='财务部');

#比财务部所有人工资都高的员工信息
select * from emp where salary > all(select salary from emp where dept_id(select id from dept where name ='财务'))

行子查询

子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。
常用的操作符:=、<>、IN、NOT IN

##查询与"张无忌”的薪资及直属领导相同的员工信息:

#查询”张无忌”的薪资及直属领导
select * salary,managerid from emp where name='张无忌';

--b.查询与"张无忌”的薪资及直属领导相同的员工信息;
select * from emp where (salary,managerid)=(select salary,manlagerid from emp where name ='张无忌')

表子查询

子查询返回的结果是多行多列,这种子查询称为表子查询。
常用的操作符:IN

##查询与"鹿杖客”,“宋远桥”的职位和薪资相同的员工信息

#查询”鹿杖客”,"宋远桥”的职位和薪资
select job,salary from emp where name ='鹿杖客'or name ='宋远桥';

#查询与”鹿杖客”,“宋远桥”的职位和薪资相同的员工信息
select * from emp where (job,salary) in (select job,salary from emp where name='鹿杖客'or name='宋远桥');

七、事务

        事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。也就是说,如果开启事务后查询结果没有发生异常,则会提交事务;一旦出现异常就会抛出并执行事务回滚的操作,将原来修改过的数据进行恢复,比较典型的场景就是银行转账。

7.1 事务的操作

方式一:修改事务的提交方式

#查看/设置事务提交方式
SELECT @@autocommit  #查看事物的提交方式是否是手动提交,手动提交是0,自动提交是1

SET @@autocommit=0;  #绘画指令:设置手动提交

#设置手动提交事务之后必须要执行commit进行提交事务
COMMIT

#回滚事务:业务操作出现异常必须执行回滚事务
ROLLBACK

方式二:

#开启事务
START TRANSACTION 或 BEGIN;

#执行事务操作
...
...
...
...
#如果事务操作没有出现异常就进行事务的提交,否则执行事务回滚
#提交事务
COMMIT
#回滚事务
ROLLBACK;

需要注意的是在默认的事务隔离级别下,这两种方式在异常出现时候均不会使数据库中的数据变更。

7.2 事务的四大特性(ACID)

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

7.3 并发事务引发的问题

并发事务问题一般出现在由多个并发事务同时对同一数据库进行操作所引发的:脏读、不可重复读、幻读的问题。

问题描述
脏读一个事务读到另一个事务还没有提交的数据
不可重复读

一个事务先后读取同一条记录,但两次读取的数据不同

幻读一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,出现例如主键冲突问题。

7.4 事务的隔离级别

针对上面我们了解到的并发事务所出现的问题,我们可以通过设置事务的隔离级别来避免这些问题,事务隔离级别分类如下:

隔离级别脏读不可重复读幻读
Read uncommitted111
Read committed(Oracle默认)011
Repeatable Read(MySQL默认)001
Serializable000

事物的隔离级别从上到下依次增强,但性能却依次减弱。隔离级别最低的数据库处理性能最强,但数据的安全性却最弱,因此在实际应用场景中我们需要根据业务需求来权衡选择。

查看事务隔离级别

SELECT @@TRANSACTION_ISOLATION;

设置事务隔离级别

SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

        这里需要注意的是,当我们设置事务的隔离级别为Serializable时候数据库是如何解决幻读的问题的:现在假设事务A在开启一个事务并往一个空表中查询一个主键ID为2的数据,之后开启一个事务2往相同的表中插入一个主键为2的数据,这时候我们可以看到会话的窗口出现了停滞,这时因为我们将事务A的隔离级别设置为Serializable后只有等到A提交了事务或者回滚了事务之后,事务B才能对数据表进行操作,这也是串行化隔离级别解决幻读问题的所在。


总结

        在这篇文章中,荔枝主要分享了自己学习MySQL基础知识的笔记,了解这些其实就足够承担简单的增删改查的操作了,接下来荔枝也会继续梳理学习MySQL进阶知识的笔记,希望能帮助到有需要的小伙伴,最后祝所有大小孩六一快乐哈哈哈哈~~~

今朝已然成为过去,明日依然向往未来!我是小荔枝,在技术成长的路上与你相伴,码文不易,麻烦举起小爪爪点个赞吧哈哈哈~~~ 比心心♥~~~

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

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

相关文章

R:GAM非线性回归曲线拟合与散点密度图绘制

作者:CSDN @ _养乐多_ 本文将介绍使用R语言以及GAM模型,绘制回归曲线和散点密度图。 文章目录 一、R语言脚本二、色带一、R语言脚本 install.packages("ggpointdensity") install.packages("ggplot2") insta

IPD发展史

随着IPD&#xff08;集成产品开发&#xff09;在IBM、华为等企业取得了巨大的成功&#xff0c;其他行业也开始在相关新产品研发中初步引入IPD的研发管理理念及模式&#xff0c;对IPD在行业的应用进行初步的探索和研究。 为了更好地应用IPD &#xff0c;不仅要对它的理念和思想理…

浅谈高等学校能源监控管理体系建设

摘要&#xff1a;现代高校担当着人才培养&#xff0c;社会服务和文化传承与创新的光荣使命。高校低碳节能工作是加快建设“和谐社会”、“绿色校园”的重要举措 。当前高校以“数字化能源监测平台”为重心 &#xff0c;积极推动能源管理的转型 。该文总结高校能源监管平台建设的…

达梦数据库作业调度及警报配置

目录 作业... 4 创建代理环境... 4 1、命令行创建及删除... 4 2、客户端创建及删除... 4 操作员... 5 1、命令行创建及删除... 5 2、客户端创建及删除... 5 作业... 6 一、命令行... 6 1、命令行创建作业... 6 2、命令行修改作业... 7 3、启动或暂停作业... 7 4、…

MATLAB与深度学习:Neural Network Toolbox和Deep Learning Toolbox的使用和模型设计

章节一&#xff1a;引言 在当今人工智能和深度学习的时代&#xff0c;MATLAB作为一种功能强大的科学计算和数据分析工具&#xff0c;在深度学习领域也发挥着重要作用。本文将重点介绍MATLAB中的两个关键工具&#xff1a;Neural Network Toolbox和Deep Learning Toolbox的使用和…

chatgpt赋能python:Python主页的SEO优化

Python主页的SEO优化 Python是一种简单易学、高效灵活的编程语言。其主页Python.org是全球最受欢迎的编程语言之一的官方网站。但是&#xff0c;即使是最著名的网站也需要进行优化&#xff0c;以便在搜索引擎中排名更高。在本文中&#xff0c;我们将探讨如何通过SEO来改进Pyth…

关系型数据库一些概念性的知识点总结

在当今数据驱动的世界中&#xff0c;信息为王。从客户资料到金融交易&#xff0c;每个组织都依赖数据来做出明智的决策并在竞争中保持领先地位。但随着数据量以前所未有的速度增长&#xff0c;管理和分析所有这些信息很快就会变得不堪重负。这就是关系数据库的用武之地。 关系数…

kafka的基础知识及概念

介绍 kafka在过去几年获得了巨大的普及。在微服务架构中&#xff0c;它起着举足轻重的作用。它使数据能够从一项服务转移到另一项服务。我开始这个系列是为了帮助初学者深入了解 Kafka。但是&#xff0c;在我们深入之前&#xff0c;了解一些基础知识很重要。因此&#xff0c;在…

《智能新工厂规划白皮书》:新工厂发展趋势一览

在经济下行压力、人口红利消失、消费结构升级、疫情冲击等多种因素推动下&#xff0c;传统工厂的寒冬已至&#xff0c;必须要变革才能顺应未来的发展趋势。伴随着5G、工业互联网、AI、工业大数据、工业软件等技术或产品的发展融合&#xff0c;许多企业纷纷规划建设智能新工厂&a…

【Web服务器集群】Nginx网站服务

文章目录 一、Nginx 概述1.什么是 Nginx2.Nginx 的特点3.Nginx 应用场景 二、Nginx 服务基础1.编译安装 Nginx 服务1.1 布置环境1.2 安装依赖包1.3 创建运行用户、组1.4 编译安装 2.Nginx 的运行控制2.1 检查配置文件2.2 启动、停止 Nginx2.3 日志分割以及升级 Nginx 服务2.4 添…

Linux - 第18节 - 网络基础(传输层一)

目录 1.传输层 1.1.再谈端口号 1.2.端口号范围划分 1.3.认识知名端口号 1.4.两个问题 1.5.netstat命令 1.6.pidof命令 2.UDP协议 2.1.UDP协议格式 2.2.UDP协议的特点 2.3.面向数据报 2.4.UDP的缓冲区 2.5.UDP使用注意事项 2.6.基于UDP的应用层协议 3.TCP协议 3…

抖音seo源码开发代码分享

抖音seo优化&#xff0c;抖音seo源码开发&#xff0c;抖音排名系统源码开发展示实例&#xff1a; 思路&#xff1a;抖音seo源码&#xff0c;抖音seo矩阵系统底层框架上支持了从ai视频混剪&#xff0c;视频批量原创产出&#xff0c;云存储批量视频制作&#xff0c;账号矩阵&…

如何制作一个连杆组简易四足机器人

1. 运动功能说明 本文示例将实现R296样机连杆组简易四足机器人前进的功能。 2. 电子硬件 在这个示例中&#xff0c;我们采用了以下硬件&#xff0c;请大家参考&#xff1a; 主控板 Basra主控板&#xff08;兼容Arduino Uno&#xff09;‍ 扩展板 Bigfish2.1扩展板‍ 电池7.4V锂…

STM32F105RBT6 -- RCC 系统时钟

1. STM32F105RBT6 系统时钟树 2. 使用外部时钟给系统提供时钟HSE&#xff0c;外接一个8Mhz的晶振 3. 系统在启动的时候就会调用系统初始化函数&#xff0c;配置RCC 时钟系统&#xff0c;在调用main函数之前调用SystemInit函数 startup_stm32f10x_hd.s ; Reset handler Reset_…

电脑重装系统 / 系统迁移

1. 台式机太卡了&#xff0c;在网上买了个固态硬盘&#xff1a;250G&#xff0c; Kingston的&#xff0c;把C盘&#xff08;系统盘&#xff09;迁移到固态硬盘上去 2. 下载软件 https://www.diskgenius.cn/download.php3. 使用DiskGenius软件&#xff0c;可以方便地将系统从一…

【MySQL】- 04 MVCC 概要

MVCC 概要 事务概念事务的特性&#xff1a;ACID事务的操作隔离性引发的并发问题事务的隔离级别 LBCC&MVCCLBCC记录锁&#xff08;Record Locks&#xff09;间隙锁&#xff08;GAP Locks&#xff09;临键锁&#xff08;Next-Key Locks&#xff09;总结当前读什么是MVCC?什么…

[QT_055]设置QT源码调试(qtc+vs/mingw+msvc)

在开发过程中&#xff0c;我们经常用到调试功能&#xff0c;这样方便查找Bug&#xff1b;Qt是一个开源的框架&#xff0c;可以看到源码。虽然但大部分情况下&#xff0c;我们开发时&#xff0c;只是使用&#xff0c;并没有调试它的源码&#xff0c;但如果想深入了解Qt的一些机制…

对于创业者而言,租赁传统办公室和共享办公室有何不同

租办公室和创业密切相关。创业公司需要一个专业、高效、协作的工作环境来促进业务的开展&#xff0c;提升团队的工作效率和形象。租办公室可以为创业公司提供必要的场所和资源&#xff0c;方便团队成员之间的交流和合作&#xff0c;同时也可以作为公司的品牌形象和实力展示。此…

【IDEA】IntelliJ IDEA的使用 和 配置相关

idea安装后首次使用 新建项目 选择项目框架 下一步&#xff1a; 选择文件夹 隐藏文件不必要显示文件 在setings设置&#xff1a; 设置隐藏页面&#xff1a; 输入后回车 快捷键的配置 1.解决输入法冲突 关闭输入法系统功能快捷键 2.把eclipse的快捷键复用 常用快捷键&#…

Java学习(Tomacat)—— web的 请求request (post和get请求)和 响应response

引出 web的 请求request &#xff08;post和get请求&#xff09;和 响应response 请求request 请求&#xff1a;一切从浏览器发往服务器的都叫请求&#xff0c;包括从浏览器地址栏和网页上输入发出的。响应&#xff1a;一切从服务器发给浏览器的都叫响应 1.带数据的请求初步…