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…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...