MySQL - mysql服务基本操作以及基本SQL语句与函数
文章目录
- 操作mysql
- 客户端与 mysql 服务之间的小九九
- 了解 mysql
- 基本 SQL 语句
- 语法书写规范
- SQL分类
- DDL
- 库
- 表
- 查
- 增
- mysql数据类型
- 数值类型
- 字符类型
- 日期类型
- 示例
- 修改(表操作)
- DML
- 添加数据
- 删除数据
- 修改数据
- DQL
- 查询多个字段
- 条件查询
- 聚合函数
- 分组查询
- 排序查询
- 分页查询
- DQL语句的执行顺序
- DCL
- 用户权限
- 权限控制分配
- 函数
- 常用字符串函数
- 练习
- 常见数值函数
- 练习
- 常见日期函数
- 练习
- 流程函数
- 练习
操作mysql
下载mysql我就不写文章了,怎么卸载倒是有一篇(在我的博客中)
下载完成mysql之后我们可以通过管理员的身份来运行cmd命令窗口,我们可以通过以下两条命令来启动 mysql 或者停止 mysql 服务
# net stop mysql80 它的作用是停止 mysql 服务
# net start mysql80 它的作用是开启 mysql 服务
现在我们只是启动了 mysql ,他现在还没有和我们的客户端进行一个连接,我们现在需要让 mysql 连接到我们的客户端,有三种连接方式,新手推荐都练习一下,有益于理解mysql 与客户端之间的一些联系
- 首先我们可以通过
MySQL 8.0 Command Line Client
这个软件来进行连接 - 我们可以通过命令行来跑 mysql连接服务 或者说连接 mysql ,如果是命令行就需要配置一下环境变量了,否则 window 无法寻找到 连接 mysql 的程序。
配置地址为:
然后我们可以执行该命令来让客户端连接 mysql 服务:mysql [-h 127.0.1.1] [-p 3306] -u root -p
3. 我们还可以使用可视化管理工具进行连接,这个比较简单,就不进行截图演示了。
客户端与 mysql 服务之间的小九九
首先客户端会向 mysql 服务器发送 sql 语句,表面上是让 mysql 去执行语句做出操作,其实mysql内部是很奇妙的,首先 mysql 接受到客户端传来的 sql 语句会直接给到内部的 DBMS 数据库管理系统,它是会去操作以及维护数据库的,它可操作以及维护多个数据库 ,每个数据库可包含多个表,每个表可包含多个字段。
了解 mysql
mysql 数据库是一种关系型数据库,所谓关系型数据库也就是通过表结构来存储数据的数据库,反之则为非关系型数据库,例如 mongodb 就是一种非关系型数据库(NoSQL)
官方的解释是:关系型数据库是建立在关系模型基础上,有多张互相连接的二维表组成的数据库。
关系型数据库格式统一,方便维护;同时 SQL语言标准统一,使用方便。这便是它的优点。
基本 SQL 语句
语法书写规范
- 首先 mysql 语句单行多行书写都可以,但是该语句结束时必须使用分号结尾
;
- 可使用空格或缩进来增强可读性
- 不区分大小写,只是关键字建议大写,这是比较规范的
- 单行注释
-- 注释内容
,# 注释内容
- 多行注释
/* 注释内容 */
SQL分类
- DDL(Data Definition Language): 数据定义语言,用来定义数据库对象(数据库,表,字段)
- DML(Data Manipulation Language): 数据操作语言,用来对数据表中的数据进行增删改
- DQL(Data Query Language): 数据查询语言,用来查询数据库中表的记录
- DCL(Data Control Language): 数据控制语言,用来创建数据库用户、控制数据库的访问权限
DDL
库
- 查询
- 查询所有数据库:
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 数据类型[ COMMENT 字段1注释],字段1 数据类型[ COMMENT 字段1注释],字段1 数据类型[ COMMENT 字段1注释],字段1 数据类型[ COMMENT 字段1注释]) [COMMENT 表注释];
最后一个字段后面不加逗号
mysql数据类型
数值类型
- TINYINT(小整数值) : 占用一个字节;有符号范围时(-128,127);无符号范围时(0,255)
- SMALLINF(大整数值) : 占用两个字节;有符号范围时(-32768,32767);无符号范围时(0,65535)
- MEDIUMINF(大整数值) : 占用三个字节;有符号范围时(-8388608,8388607);无符号范围时(0,16777215)
- INF / INFEGER(大整数值) : 占用四个字节;有符号范围时(-2147483648,217483647);无符号范围时(0,4294967295)
- BIGINT(极大整数值) : 占用八个字节;有符号范围时(-2 ^ 63,2 ^ 63 - 1);无符号范围时(0,2 ^ 64 - 1)
- FLOAT(单精度浮点数值) : 占用四个字节
- DOUBLE(双精度浮点数值) : 占用八个字节
- DECIMAL(小数值【精确定点数】)
有符号标识:SIGNED;无符号标识:UNSIGNED
当我们对分数或者年龄等做记录的时候就不需要用到有符号的负数了,我们可以这样写: age TINYINT UNSIGNED
对于浮点数我们可以这样限定它的范围:score double(限制位数,小数位数)
字符类型
字符类型有很多,我就列出一下,不会全部介绍,因为常用到的也就是 char、以及 varchar
- char: 0-255 bytes 定长字符串
- varchar:0-65535 bytes 变长字符串
定长意思就是已经开辟了这么大的空间,无论在实际操作中是存多少字符,它也是这么长的,有一点浪费空间的意思
而变长则是需要判断实际字符长度在分配空间
各有各的长处,变长性能比较差,但却不浪费空间,char浪费空间却性能胜与 varchar。
- TINYBLOB:不超过255个字符的二进制数据
- TINYTEXT:短文本字符串
- BLOB:二进制形式的长文本数据
- TEXT:长文本数据
- MEDIUMBLOB:二进制形式的中等长度文本数据
- MEDIUMTEXT:中等长度文本数据
- LONGBOLB:二进制格式极大文本数据
LONGTEXT
:超大文本数据
日期类型
- DATE: YYYY-MM-DD (日期)
- TIME: HH:MM:SS (时间)
- YEAR: YYYY (年)
- DATETIME: YYYY-MM-DD HH:MM:SS (混合日期)
- TIMESTAMP: YYYY-MM-DD HH:MM:SS (混合日期【时间戳】)
示例
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| carbon |
| examination_pro |
| information_schema |
| mysql |
| performance_schema |
| sys |
| testdb |
+--------------------+
7 rows in set (0.00 sec)mysql> use testdb;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| testdb |
+------------+
1 row in set (0.00 sec)mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| user |
+------------------+
1 row in set (0.02 sec)mysql> desc user;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| workno | varchar(10) | YES | | NULL | |
| id | int | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| idcard | char(18) | YES | | NULL | |
| entrydate | date | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)mysql> show create table user;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table|
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user | CREATE TABLE `user` (`name` varchar(10) DEFAULT NULL COMMENT '用户名称',`workno` varchar(10) DEFAULT NULL COMMENT '工号',`id` int DEFAULT NULL COMMENT '编号',`gender` char(1) DEFAULT NULL COMMENT '性别',`idcard` char(18) DEFAULT NULL COMMENT '身份证号',`entrydate` date DEFAULT NULL COMMENT '入职时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表' |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)mysql>
修改(表操作)
-
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释] [约束];
-
修改字段
- 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新的数据类型(长度);
- 修改字段名称和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
- 删除字段
ALTER TABLE 表名 DROP 字段名;
- 修改表名称
ALTER TABLE 表名 RENAME TO 新表名;
- 删除表
- 删除表
DROP TABLE [ IF EXISTS ] 表名;
- 删除指定表,并且重新创建该表
TRUNCATE TABLE 表名;
DML
添加数据
-
给指定字段添加数据
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,...);
删除数据
DELETE FROM 表名 [WHERE 条件] ;
修改数据
UPDATE 表名 SET 字段名1 = '修改之后的值1',字段名2 = '修改之后的值2,... [WHERE 条件];'
DQL
查询多个字段
-
查询
SELECT 字段名1,字段名2,字段名3,... FROM 表名;
SELECT * FROM 表名;
-
别名
SELECT 字段1 [ AS 别名1 ],字段2 [ AS 别名2 ],字段3 [ AS 别名3 ],... FROM 表名;
-
去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
- 条件:
– <
– >
– >=
– <=
– =
– <> 或者 != 【表示不等于】
– BETWEEN…AND… 【再某个范围之内(包含最大值以及最小值)】
– IN 【在in之后的列表中的值,多选一】
– LIKE 占位符 【模糊查询 _匹配单个字符,%匹配多个字符】
– IS NULL 【是NULL】
– IS NOT NULL 【不为NULL】
– AND 或者 && 【并且】
– OR 或者 || 【或】
– NOT 或者 ! 【非,不是】
聚合函数
SELECT 聚合函数(字段列表) FROM 表名;
聚合函数:
- count :统计数量
- max : 最大值
- min:最小值
- avg:平均值
- sum:求和
null值不参与聚合运算
分组查询
SELECT 字段列表 FROM 表名 [ WHERE 条件] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ];
都是过滤条件 where 和 having 的区别在哪里呢?
- 执行的时机不同:where 是在分组之前进行过滤,不满足 where 中的条件的话,不参与分组;而 having 是在分组之后进行过滤的
- 判断条件不同:where 不能对聚合函数进行判断,having 可以对聚合函数进行判断
排序查询
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
排序方式包含:
- ASC (升序)
- DESC (降序)
分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引,每页查询条数;
DQL语句的执行顺序
- SELECT
- FROM
- WHERE
- GROUP BY
- HAVING
- ORDER BY
- LIMIT
DCL
用户权限
- 查询用户
USE mysql;
SELECT * FROM user;
- 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIEN BY '密码';
- 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
- 删除用户
DROP USER'用户名'@'主机名';
主机名如果为local host 那么该数据库只能在当前主机访问,也就是当前操作电脑上可以访问;如果主机名命名为 % 那么表示该数据库可以在任意主机上访问
权限控制分配
当我们有了多个用户权限,自然要给不同的用户分配不同的权限,而所分配的权限也就是该用户可执行的操作,例如查询、插入、修改、删除(库 / 表),简称CRUD。
如果要给予所有权限,那么可使用 ALL 或者 ALL PRIVILEGES
- 查询权限
SHOW GRANTS FOR '用户名'@'主机名';
- 授予权限
CRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
- 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
如果要操作该数据库的所有表的权限,那么我们可以将表名写做:*
来表示通配该数据库所有表
同样的所有数据库也可以表示为 *
函数
常用字符串函数
- 字符串的拼接,将多个字符串拼接为一个字符串
CONCAT(STR1,STR2,STR3...)
- 字符串全部转小写
LOWER(str)
- 字符串全部转大写
UPPER(str)
- 左填充,用字符串pad对str左边进行填充,达到n个字符长度
LPAD(str,n,pad)
- 右填充,用字符串pad对str右边进行填充,达到n个字符长度
RPAD(str,n,pad)
- 去掉字符串左右两边的空格
TRIM(str)
- 返回字符串 str 从 start 位置起的 len 个长度的字符串
SUBSTRING(str,start,len)
练习
SELECT CONCAT('Hello ',' MySQL') AS '字符串拼接';SELECT LOWER(CONCAT('Hello',' MySQL')) AS '字符串转小写';SELECT UPPER(CONCAT('Hello',' MySQL')) AS '字符串转大写';SELECT LPAD(UPPER(CONCAT('Hello',' MySQL')),18,'_') AS '左填充字符串';SELECT RPAD(UPPER(CONCAT('Hello',' MySQL')),18,'_') AS '右填充字符串';SELECT TRIM(CONCAT(' Hello ',' MySQL ')) AS '字符串去除两边空格';SELECT SUBSTRING(RPAD(UPPER(CONCAT('Hello',' MySQL')),18,'_'),5,3) AS '字符串截取';
# 这里需要注意索引值从1开始
常见数值函数
- 向上取整
CEIL(x)
- 向下取整
FLOOR(x)
- 返回 x / y 的模
MOD(x,y)
- 返回 0~1内的随机数
RAND()
- 求参数 x 的四舍五入的值,保留 y 位小数
ROUND(x,y)
练习
SELECT CEIL(200.1) AS '向上取整';
SELECT FLOOR(200.9) AS '向下取整';
SELECT MOD(12,7) AS '求模';
SELECT RAND() AS '随机数';
SELECT ROUND(RAND() * 200,3) AS '四舍五入';
常见日期函数
- 返回当前日期
CURDATE()
- 返回当前时间
CURTIME()
- 返回当前日期和时间
NOW()
- 获取指定的date年份
YEAR(date)
- 获取指定的date月份
MONTH(date)
- 获取指定的date日期
DAY(data)
- 返回一个日期/时间值加上一个时间间隔expr后的时间值
DATE_ADD(date,INTERVAL expr type)
- 返回起始时间date1和结束时间date2之间的天数
DATEDIFF(date1,date2)
练习
SELECT CURDATE() AS '当前日期';
SELECT CURTIME() AS '当前时间';
SELECT NOW() AS '当前日期和时间';SELECT YEAR('1999-01-06') AS '指定日期年份';SELECT MONTH('1999-01-06') AS '指定日期月份';SELECT DAY('1999-01-06') AS '指定日期';SELECT DATE_ADD('1989-01-01',INTERVAL 70 MONTH) AS '时间推进';SELECT DATE_ADD('1989-01-01',INTERVAL -70 DAY) AS '时间推进';SELECT DATEDIFF('2023-10-2','2001-10-19') AS '间隔天数';
流程函数
- 如果 value 为 true,返回第一个值,否则返回第二个值
IF(value,x,y)
- 如果 value 不为空,返回第一个值,否则返回第二个值
IFNULL(value1,value2)
- 如果 value1 为 true,返回res1,否则返回default默认值
CASE WHEN [value1] THEN [res1] ...ELSE[default] END
- 如果 value1 的值等于 val1,返回res1,否则返回default默认值
CASE [value1] WHEN [val] THEN [res1] ...ELSE[default] END
练习
SELECT IF((CEIL(RAND() * 10) + 1 = 8),1,0) AS '判断';SELECT IFNULL((SELECT workno FROM emp WHERE username = '王小二'),'为空') AS '判断NULL';SELECT username,(CASE age WHEN 23 THEN '符合23岁的标准' WHEN 24 THEN '勉强接受' ELSE '不符合标准' END) AS '标准' FROM emp;SELECT CASE WHEN ((SELECT age FROM emp WHERE username = '王小二') = 23) THEN '符合23岁的标准' ELSE '不符合标准' END AS '标准';
相关文章:
MySQL - mysql服务基本操作以及基本SQL语句与函数
文章目录 操作mysql客户端与 mysql 服务之间的小九九了解 mysql 基本 SQL 语句语法书写规范SQL分类DDL库表查增 mysql数据类型数值类型字符类型日期类型 示例修改(表操作) DML添加数据删除数据修改数据 DQL查询多个字段条件查询聚合函数分组查询排序查询…...
[图论]哈尔滨工业大学(哈工大 HIT)学习笔记16-22
视频来源:2.7.1 补图_哔哩哔哩_bilibili 目录 1. 补图 1.1. 补图 2. 双图 2.1. 双图定理 3. 图兰定理/托兰定理 4. 极图理论 5. 欧拉图 5.1. 欧拉迹 5.2. 欧拉闭迹 5.3. 欧拉图 5.4. 欧拉定理 5.5. 伪图 1. 补图 1.1. 补图 (1)…...
使用关键字abstract 声明抽象类-PHP8知识详解
抽象类只能作为父类使用,因为抽象类不能被实例化。抽象类使用关键字abstract 声明,具体的使用语法格式如下: abstract class 抽象类名称{ //抽象类的成员变量列表 abstract function 成员方法1(参数); //抽象类的成员方法 abstract functi…...
Java中使用正则表达式
正则表达式 正则表达式(Regular Expression)是一种用于匹配、查找和替换文本的强大工具。它由一系列字符和特殊字符组成,可以用来描述字符串的模式。在编程和文本处理中,正则表达式常被用于验证输入、提取信息、搜索和替换文本等…...
Python之字符串分割替换移除
Python之字符串分割替换移除 分割 split(sepNone, maxsplit-1) -> list of strings 从左至右sep 指定分割字符串,缺省的情况下空白字符串作为分隔符maxsplit 指定分割的次数,-1 表示遍历整个字符串立即返回列表 rsplit(sepNone, maxsplit-1) -> …...
ubuntu增加内存
文章目录 1、硬盘操作步骤第二步:点击【扩展】(必须关闭ubuntu电源才能修改)第三步:修改【最大磁盘容量大小】1、硬盘操作步骤 最近发现Ubuntu空间不足,怎么去扩容呢? 第一步:点击【硬盘】 第二步:点击【扩展】(必须关闭ubuntu电源才能修改) 第三步:修改【最大磁…...
黑客都是土豪吗?真实情况是什么?
黑客的利益链条真的这么大这么好么,连最外围的都可以靠信息不对称赚普通人大学毕业上班族想都不敢想的金钱数目,黑客们是不是基本都是土豪 网络技术可以称为黑客程度的技术是不是真的很吃香?如果大部分大学生的智力资源都用在学习网络技术,会不会出现僧…...
企业想过等保,其中2FA双因素认证手段必不可少
随着信息技术的飞速发展,网络安全问题日益凸显。等保2.0时代的到来,意味着企业和组织需要更加严格地保护自身的信息安全。而在这个过程中,双因素认证的重要性逐渐得到广泛认可。本文将探讨 2FA 双因素认证的重要性。 在了解 2FA 双因素认证的…...
Combination Lock
题目描述 新学期开学,您又回到了学校。您需要记住如何操作储物柜上的组合锁。一个组合锁的常见设计如图 1 所示。组合锁有一个圆形刻度表盘,在表盘上,有 40 个编号为从 0 至 39 的刻度,正上方有一个刻度指针。一个组合由这些数字…...
SpringBoot解决LocalDateTime返回数据为数组问题
现象: 在SpringBoot项目中,接口返回的数据出现LocalDateTime对象被转换成了数组 原因分析: 默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。 解决方法: 在配置类中…...
【数字人】2、MODA | 基于人脸关键点的语音驱动单张图数字人生成(ICCV2023)
文章目录 一、背景二、方法2.1 问题描述和数据预处理2.2 Mapping-Once network with Dual Attentions2.3 Facial Composer Network2.4 使用 TPE 来合成人像图片 三、效果3.1 训练细节3.2 数据3.3 测评指标3.4 结果比较 四、代码4.1 数据前处理4.2 训练4.3 推理 论文:…...
群狼调研(长沙物业第三方评优)开展房地产市场调查内容设计
湖南房地产市场近年来表现出多元化的发展趋势。为了在竞争激烈的市场中获得更好的发展,房地产企业需要密切关注市场变化,合理规划开发项目,同时提高产品质量和服务水平,以满足消费者的需求和期望。群狼调研(长沙神秘顾客调查)在房…...
计算机网络-计算机网络体系结构-物理层
目录 一、通信基础 通信方式 传输方式 码元 传输率 *二 准则 2.1奈氏准则(奈奎斯特定理) 2.2香农定理 三、信号的编码和调制 *数字数据->数字信号 数字数据->模拟信号 模拟数据->数字信号 模拟数据->模拟信号 *四、数据交换方式 电路交换 报文交换…...
微信小程序wxs标签 在wxml文件中编写JavaScript逻辑
PC端开发 可以在界面中编写JavaScript脚本 vue/react这些框架更是形成了一种常态 因为模板引擎和jsx语法本身就都是在js中的 我们小程序中其实也有类似的奇妙写法 不过先声明 这东西不是很强大 我们可以先写一个案例代码 wxml代码参考 <view><wxs module"wordSt…...
C++设计模式-工厂模式(Factory Method)
目录 C设计模式-工厂模式(Factory Method) 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-工厂模式(Factory Method) 一、意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory…...
八大排序算法
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N1e510; int q[N]; int w[N],s[N]; int n,sz; //直接插入排序 ,对于某一个元素加入到一个有序的序列中,将该元素依次从该位置开始 //从后往前比较&…...
机器学习笔记 - 两个静态手势识别的简单示例
一、关于手势识别 手势识别方法通常分为两类:静态或动态。 静态手势是那些只需要在分类器的输入处处理单个图像的手势,这种方法的优点是计算成本较低。动态手势需要处理图像序列和更复杂的手势识别方法。 进一步了解可以参考下面链接。 静态手势识别和动态手势识别的区别和技…...
2023年,有哪些好用的互联网项目管理软件?
项目管理是为了使工作项目能够按照预定的需求、成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动。 一直以来,项目管理被企业管理人员和各级人员所重视,项目管理是一个项目的灵魂,只有做好了项目管理&am…...
python 按照文件大小读取文件
返回一个list,每个list里面是一个元组(filename, file_size),按照file_size从小到大排序的 import osdef get_sorted_files(dir_path):# 存储最后的文件路径files []# 便利dir_path下面的文件或者文件夹for file in os.listdir(dir_path):file_path o…...
黑客帝国代码雨
黑客帝国代码雨奉上,之前一直想写,但一直没抽出时间来,今天把他写了,也算了了装心事 效果图如下 原理就不讲了,代码写的很清楚而且不长 有不懂的评论区问我就好 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">&l…...
基于SpringBoot的植物健康系统
目录 前言 一、技术栈 二、系统功能介绍 系统首页 咨询专家 普通植物检查登记 珍贵植物检查登记 植物救治用料登记 植物救治材料管理 植物疾病案例管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&am…...
Kettle连接数据库[MySQL]报错
在连接数据库页面填写完成后点击“测试” 报错信息: 错误连接数据库 [ETLqiangzi] : org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the databaseDriver class org.gjt.mm.mysql.Driver could not be found…...
Postman接口测试学习之常用断言
什么是断言? 断言——就是结果中的特定属性或值与预期做对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。断言,是一个完整测试用例所不可或缺的一部分,没有断言的测试用例…...
自动化机器学习AutoML之flaml:利用flaml框架自动寻找最优算法及其对应最佳参数python
AutoML 一、自动化机器学习包简介1、H2O (Python,R,Java,Scala)2、auto-sklearn(Linux,Python)3、FLAML(Python)4、AutoGlueon(安装比较啰嗦,略过)二、FLAML1、安装2、方法.fit()常用参数介绍3、代码(1) 解决分类问题(2)解决回归问题一、自动化机器学习包简介 机…...
支付宝sdk商户私钥 如何生成?
1、先下载密钥工具 https://opendocs.alipay.com/isv/02kipk 2、安装后生成密钥 3、配置密钥 4、将工具生成的公钥复制进去生成公钥 简单来说就是私钥是用工具生成的,不会在页面上显示 商户私钥 支付宝公钥...
Linux之epoll理解
IO多路复用有几种实现方式:select poll和epoll。本篇文章对epoll进行总结理解。 IO多路复用的含义,我个人的理解是通过一个线程实现对多个socket的侦听,epoll与select和poll的区别是epoll效率最高。select的最高管理1024个socket并且是通过轮…...
龟速乘 - a * b爆ll且模数很大时的计算方法
LL qmul(LL a, LL k, LL b) {LL res 0;while (k){if (k & 1) res (res a) % b;a (a a) % b;k >> 1;}return res; } 如果int128也会爆掉的话可以用这种方法 也是快速幂的思想,快速幂是乘,这个是加...
计算机网络笔记3 数据链路层
计算机网络系列笔记目录👇 计算机网络笔记6 应用层计算机网络笔记5 运输层计算机网络笔记4 网络层计算机网络笔记3 数据链路层计算机网络笔记2 物理层计算机网络笔记1 概述 文章前言 💗 站在巨人的肩膀上,让知识的获得更加容易!…...
如何实现矩阵的重采样问题
文章目录 前言一、问题描述二、回答 前言 记录知乎的自问自答。 一、问题描述 我的问题是这样的,有两个列向量E和F,需要注意的是,E和F是连续的,可任意插值,得到包含其中的子向量。E和F通过一个mn的矩阵联系起来&…...
Spring-事务管理-加强
目录 开启事务 编程式事务 声明式事务 声明式事务的优点 声明式事务的粒度问题 声明式事务用不对容易失效 Spring事务失效可能是哪些原因 Transactional(rollbackFor Exception.class)注解 Spring 事务的实现原理 事务传播机制 介绍 用法 rollbackFor 场景举例 …...
wordpress文件下载/某网站seo诊断分析和优化方案
刚开始一直没有找到该系列的第五篇博客,郁闷的要死,本打算重写的,看来没必要了.那这一篇就相当于小结第五篇和第六篇使用的样例. 所有的NDK都是在Linux系统下开发的,jni C或者CPP文件这一篇开始是在windosws7 VC6.0中开发的.所以下面的新建Android项目之类的都是在我的Ubuntu12…...
做后台网站/上海seo优化公司kinglink
在Python中,只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域 作用域(LEGB原则) (1)变量查找顺序:LEG…...
做网址导航网站/网络营销渠道的特点
最近项目有个需求,在微信小程序中跳转外部链接完成相关的操作,操作完成后返回微信小程序的相关页面。1、跳转外部链接(官方文档)1)入口//跳转到入口wx.navigateTo({url: ../out/out})2)app.json{"pages": ["pages/main/main","…...
wordpress响应瀑布主题/营销网络建设
嵌套查询 带有EXISTS谓词的子查询 EXISTS谓词 —— 存在量词 ∃\exists∃ 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false” 若内层查询为空,外层WHERE子句返回false若内层查询非空,外层WHERE子句返回tr…...
百度招聘 网站开发/市场营销手段13种手段
上节我们介绍了随机森林的一些简单情况和使用R语言做二分类结局变量的随机森林模型分析,今天我们继续来介绍为连续变量结局变量的随机森林模型分析,废话不多说,立即开始,使用的数据为SPSS自带的大气层臭氧的数据集,主要…...
wordpress只更换域名/标题优化怎么做
Linux的压力测试软件 工具: Ab 一般这个压力测试工具是在你安装httpd系统包的时候已经是自带的,我们可以通过 rpm –ql httpd |less 这个指令来查看自己的软件包里面是否存在这样的一个包 /usr/bin/ab Ab [option][http[s] //hostname [࿱…...