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

2 - 表结构 | MySQL键值

表结构 | MySQL键值

  • 表管理
    • 1. 库的操作
    • 2. 表的操作
      • 表的创建与删除
      • 表的修改
      • 复制表
    • 3. 管理表记录
  • 数据类型
    • 数值类型
    • 字符类型(汉字或者英文字母)
    • 日期时间类型 表头存储与日期时间格式的数据
    • 枚举类型
  • 数据批量处理

表管理

客户端把数据存储到数据库服务器上的过程

  • 第一步连接数据库
  • 第二步创建存储数据的库(存放表的目录)
  • 第三步创建存储数据的表(表就是存储数据的文件)
  • 第四步插入表记录(向文件里添加行)
  • 第五步断开连接

1. 库的操作

建库的基本命令 create database 库名(必须唯一性!!!)

[root@host50 ~]# mysql -uroot -pxxxx  //数据库管理员登陆
mysql> select user(); # 查看登陆的用户
+----------------+
| user()         |
+----------------+
| root@localhost |  用户@客户端地址 (在本机管理员登录)
+----------------+
1 row in set (0.00 sec)mysql> show databases; # 查看已有的库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| tarena             |
+--------------------+
5 rows in set (0.00 sec)mysql> select database(); # 查看当前所在的库
+------------+
| database() |
+------------+
| NULL       |  表示没有在任何一个库,此时所在的位置是/var/lib/mysql 目录
+------------+
1 row in set (0.00 sec)mysql> create database db1 # 创建新库
Query OK, 1 row affected (0.00 sec)mysql> show databases;  此时查看已有库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |      刚创建的db1库 , 在数据库目录/var/lib/myql 下会有对应名称的db1目录
| mysql              |
| performance_schema |
| sys                |
| tarena             |
+--------------------+
6 rows in set (0.00 sec)mysql> system ls -ld /var/lib/mysql/db1; # 使用system 命令 在登录状态下执行系统命令
drwxr-x--- 2 mysql mysql 20 97 13:52 /var/lib/mysql/db1mysql>  create database if not exists  DB1; 加if not exists语句避免重名报错 
Query OK, 1 row affected, 1 warning (0.01 sec)// 删除库 如果库里有表会一并被删除
mysql> drop database db1 ; 删除没有的库,会报错
mysql> drop database  if exists db1;  加if  exists 语句 避免报错

2. 表的操作

建表命令格式
create table 库名.表名(
表头名 数据结构 [约束条件],
表头名 数据结构 [约束条件]
);

表的创建与删除

使用建表范式衡量表创建的是否合理

  • 1NF 表头下的数据不能再拆分
  • 2NF 一张表里只存储一种数据信息,不能用一张存储多种数据信息
  • 3NF 表中表头的数据 不能依赖其他表头的数据
mysql> create table DB1.t1(姓名 char(10),班级 char(7)); # 在DB1库里创建t1表mysql> desc DB1.t1; 查看表头信息
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| 姓名   | char(10) | YES  |     | NULL    |       |
| 班级   | char(7)  | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> drop table DB1.t1;  删除创建的表
Query OK, 0 rows affected (0.11 sec)为了便于操作通常使用英文定义表头名和表名
mysql> create table DB1.t1 ( name  char(15) , class char(10));
Query OK, 0 rows affected (0.25 sec)
mysql> desc DB1.t1; 查看表头
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(15) | YES  |     | NULL    |       |
| class | char(10) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

表的修改

发现表建的不合理 可以修改表

  • 添加新表头 add
  • 删除表头 drop
  • 修改表头存储数据的数据类型 modify
  • 修改表头名 change
  • 修改表名 rename
    alter table 库名.表名 操作命令
mysql> alter table  DB1.t1 add school  char(20) ; 添加1个新字段school
mysql> desc DB1.t1;  默认新添加的字段追加在已有列的末尾
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| name   | char(15) | YES  |     | NULL    |       |
| class  | char(10) | YES  |     | NULL    |       |
| school | char(20) | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)一起添加2个字段 分别是 mail 和  address 
mysql> alter table  DB1.t1 add mail char(50) , add address  char(80) ;
Query OK, 0 rows affected (0.37 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc DB1.t1;  查看新添加的表头,都在追加在末尾
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| name    | char(15) | YES  |     | NULL    |       |
| class   | char(10) | YES  |     | NULL    |       |
| school  | char(20) | YES  |     | NULL    |       |
| mail    | char(50) | YES  |     | NULL    |       |
| address | char(80) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)添加新表头number 在第1列的位置
mysql> alter table  DB1.t1 add number int first ;
Query OK, 0 rows affected (0.32 sec)
Records: 0  Duplicates: 0  Warnings: 0
添加新表头在city 放在name的后边
mysql> alter table DB1.t1 add  city  char(10) after name;
Query OK, 0 rows affected (0.42 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc DB1.t1;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| number  | int(11)  | YES  |     | NULL    |       |
| name    | char(15) | YES  |     | NULL    |       |
| city    | char(10) | YES  |     | NULL    |       |
| class   | char(10) | YES  |     | NULL    |       |
| school  | char(20) | YES  |     | NULL    |       |
| mail    | char(50) | YES  |     | NULL    |       |
| address | char(80) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
7 rows in set (0.00 sec)mysql> alter table DB1.t1 drop city;  一次删除一个表头
Query OK, 0 rows affected (0.31 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> alter table DB1.t1 drop class , drop school; 一起删除多个表头
Query OK, 0 rows affected (0.32 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc DB1.t1;  查看表头
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| number  | int(11)  | YES  |     | NULL    |       |
| name    | char(15) | YES  |     | NULL    |       |
| mail    | char(50) | YES  |     | NULL    |       |
| address | char(80) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)// 修改表头信息
mysql> alter table DB1.t1 modify number tinyint after name; 修改类型和位置
mysql> desc DB1.t1;  查看修改,把类型修改为tinyint  并移动name表头的后边
+---------+------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| name    | char(15)   | YES  |     | NULL    |       |
| number  | tinyint(4) | YES  |     | NULL    |       |
| mail    | char(50)   | YES  |     | NULL    |       |
| address | char(80)   | YES  |     | NULL    |       |
+---------+------------+------+-----+---------+-------+
4 rows in set (0.00 sec)mysql> alter table DB1.t1 change address homedir char(80); 只修改表头名,类型原样抄下来
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc DB1.t1;查看修改,address 修改为了 homedir
+---------+------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| name    | char(15)   | YES  |     | NULL    |       |
| number  | tinyint(4) | YES  |     | NULL    |       |
| mail    | char(50)   | YES  |     | NULL    |       |
| homedir | char(80)   | YES  |     | NULL    |       |
+---------+------------+------+-----+---------+-------+
4 rows in set (0.00 sec)mysql> alter table DB1.t1 change email vachar(60); 表头名和类型一起修改
Query OK, 0 rows affected (0.44 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc DB1.t1;查看修改表头名类型都变了
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | char(15)    | YES  |     | NULL    |       |
| number  | tinyint(4)  | YES  |     | NULL    |       |
| email   | varchar(60) | YES  |     | NULL    |       |
| homedir | char(80)    | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)mysql> alter table DB1.t1 rename stuinfo; 修改表名为 stuinfo
mysql> show tables; 查看表名 已经改变
+---------------+
| Tables_in_DB1 |
+---------------+
| stuinfo       |
+---------------+

复制表

  • 仅复制表结构
mysql> create table DB1.t2 select * from tarena.user where 1=2 ; 复制表结构及数据
  • 复制表结构和数据
mysql> create table DB1.t3 select * from tarena.user 
  • 仅复制表结构
create table 库.表名 like 库.表名
# 原来的key也会复制给新表 复制不了数据

3. 管理表记录

对表中存储的行做管理 操作 包括

  • 查询 : 查看表中的行 select
  • 插入 : 向表中添新的行 insert into
添加1行给所有表头赋值
mysql> insert into DB1.stuinfo  values ("yaya",1,"yaya@tedu.cn","beijing");
Query OK, 1 row affected (0.03 sec)添加1行 ,给指定的表头赋值,
mysql> insert into DB1.stuinfo (name,homedir)values("nb","nb@tedu.cn");
Query OK, 1 row affected (0.04 sec)没有赋值的表头number和email 没有数据 ,值是 null (空)
mysql> select  * from DB1.stuinfo;
+------+--------+--------------+-------------+
| name | number | email        | homedir     |
+------+--------+--------------+-------------+
| yaya |      1 | yaya@tedu.cn | beijing     |
| plj  |      8 | plj@163.com  | shanghai    |
| jing |      9 | jing@163.com | beijing     |
| nb   |   NULL | NULL         | nb@tedu.cn  |
| nb2  |   NULL | NULL         | nb2@tedu.cn |
| nb3  |   NULL | NULL         | nb3@tedu.cn |
+------+--------+--------------+-------------+
6 rows in set (0.00 sec)使用set语句插入记录 
mysql> insert into  DB1.stuinfo set name="plj" , number=10;
  • 更新 : 修改行中列的数据 update
mysql> update DB1.stuniof set email="stu@163.com" where email is null;不加条件批量修改
mysql> update DB1.stuinfo set homedir="beijing";
  • 删除 : 删除表中的行 delete
// 只删除与条件符合的行 
delete from DB1.stuinfo where name regexp '^nb';//删除表里的所有行
delete from 库.表也可用truncate table 库.表;
自增长列 truncate后从1开始 delete继续变好
truncate不能回滚 delete可以
效率略高于delete 

数据类型

包括 数值类型、字符类型、日期时间类型、枚举类型

数值类型

  • 整数类型
    在这里插入图片描述
  • 浮点类型
    在这里插入图片描述

字符类型(汉字或者英文字母)

  • char 定长 (固定长度) 1-255字节
  • varchar 变长 (长度不固定) 1-65535
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    默认不允许给表头存储中文 要存储中文 要指定使用的字符集
mysql> show create table db1.t3  # 查看字符集
ENGINE=InnoDB # 定义存储引擎
DEFAULT CHARSET =latin1 # 定义字符集# 建表的时候指定使用的字符集
create table db1.t4(姓名 char(3),地址 varchar(10)) DEFAULT CHARSET utf8;

日期时间类型 表头存储与日期时间格式的数据

在这里插入图片描述

mysql> create table db1.t6(
姓名 char(4),
生日 date,
上课时间 time,
家庭聚会 datetime,
聚会地点 varchar(10)
) DEFAULT CHARSET utf8;mysql> alter table db1.t6 add 出生年份 year after 姓名;

在这里插入图片描述
datetime 与 datestamp的区别

  • 第一个存储范围不一样(datetime存储范围大 timestamp范围小)
  • 存储数据的方式不一样 当未给timestamp字段值 自动以当前系统时间赋值,而datetime值为NULL

枚举类型

给表头赋值时,值必须在类型规定的范围内选择

  • 单选 enum (值1,值2,值3…)
  • 多选 set (值1,值2,值3…)
create table db1.t8(姓名 char(10) , 性别  enum("男","女","保密") ,
爱好 set("帅哥","金钱");

数据批量处理

一次性向表里存储很多数据 或 一次性把表里的数据都取出来
注意:数据导入或导出 存放数据的文件必须在mysql服务要求的目录下 叫检索目录

要知道数据库默认的检索目录
会修改数据库默认的检索目录
查看默认的检索目录

mysql > show variables like "secure_file_priv"

在这里插入图片描述
修改默认的检索目录

vim /etc/my.cnf
[mysql]
secure_file_priv=/myload # 手动添加
mkdir /myload
chown mysql /myload/ # 给权限
  • 数据导入(文件的内容一定要有规律)
    • 将/etc/passwd文件导入db1库的t3表里
    • 文件导入格式
    • mysql> load data infile “/检索目录/文件名” into table 库名.表名 fileds terminated by "文件中列的间隔符号 " lines terminated by “/n”
    • 数据导入的操作步骤:
        1. 创建存储数据的库
        1. 根据导入文件的内容 建表
        1. 把系统文件拷贝到检索目录
        1. 数据库管理执行导入数据的命令
        1. 查看数据
  • 数据导出 导出的不包括表头名 只有表里的行 导出的文件名 不需要事先创建 且具有唯一性
      1. select 字段名列表 from 库.表 where 条件 into outfile “/检索目录名/文件名”
      1. select 字段名列表 from 库.表 where 条件 into outfile “/检索目录名/文件名” fields terminated by “符号”
      • fields terminated by 指定导出的列在文件中的间隔符号。不止定 默认时一个tab的宽度
      1. select 字段名列表 from 库.表 where 条件 into outfile “/检索目录名/文件名” fields terminated by “符号” lines terminated by “符号”
      • lines terminated by 指定导出的行在文件中的间隔符号。不止定 默认一条记录就是一行

相关文章:

2 - 表结构 | MySQL键值

表结构 | MySQL键值 表管理1. 库的操作2. 表的操作表的创建与删除表的修改复制表 3. 管理表记录 数据类型数值类型字符类型(汉字或者英文字母)日期时间类型 表头存储与日期时间格式的数据枚举类型 数据批量处理 表管理 客户端把数据存储到数据库服务器上…...

Redis(Linux版本7.2.3)

1、停止Redis服务器 [roottssvr1-c1 sysconfig]# ps -ef | grep redis root 322 1 0 10月30 ? 02:58:53 ./bin/redis-server 0.0.0.0:6379 root 32664 12498 0 14:45 pts/0 00:00:00 grep --colorauto redis [roottssvr1-c1 sysconfig]# [roottssvr…...

八股文打卡day18——操作系统(1)

面试题:进程和线程的区别? 我的回答: 1.概念上。进程是系统进行资源分配和调度的基本单位。线程是系统进行运算调度的最小单位。线程是进程的子任务,一个进程至少包含一个线程,一个进程可以运行多个线程,…...

设计模式—行为型模式之模板方法模式

设计模式—行为型模式之模板方法模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 模板方法(Template Metho…...

机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Le…...

2.3物理层下面的传输媒体

目录 2.3物理层下面的传输媒体2.3.1导引型传输媒体1.双绞线2.同轴电缆3.光纤 2.3.2非导引型传输媒体无线电微波通信 2.3物理层下面的传输媒体 传输媒体是数据传输系统中在发送器和接收器之间的物理通路 两大类: 导引型传输媒体:电磁波被导引沿着固体媒体…...

笙默考试管理系统-MyExamTest----codemirror(57)

笙默考试管理系统-MyExamTest----codemirror(57) 目录 一、 笙默考试管理系统-MyExamTest----codemirror 二、 笙默考试管理系统-MyExamTest----codemirror 三、 笙默考试管理系统-MyExamTest----codemirror 四、 笙默考试管理系统-MyExamTest---…...

Qt高质量的开源项目合集

文章目录 1.Qt官网下载/文档2.第三方开源 1.Qt官网下载/文档 Qt Downloads Qt 清华大学开源软件镜像站 Qt 官方博客 2.第三方开源 记录了平常项目开发中用到的第三方库,以及一些值得参考的项目! Qt AV 基于Qt和FFmpeg的跨平台高性能音视频播放框…...

HarmonyOS ARKUI深度解析:图像组件及权限配置实战指南

文章目录 深入学习RKUI中的图片组件及权限配置图片组件简介图片源的三种格式Image : 图片显示组件图片组件属性及样式控制图片权限配置文章总结问题总结深入学习RKUI中的图片组件及权限配置 在本文中,我们将深入学习ArkUI(HarmonyOS UI框架)中的图片组件及其相关属性,同时…...

萨姆·奥尔特曼的预言

Sam Altman(萨姆奥尔特曼)是 OpenAI 的首席执行官,这家初创公司开发了众所周知的 ChatGPT。2023年11月,他突然被董事会解雇,并短暂调往微软。在 OpenAI 的每个人都威胁要辞职后,他又回来了。 新的商业模式…...

iPhone 13 Pro 更换『移植电芯』和『超容电池』体验

文章目录 考虑换电池Ⅰ 方案一Ⅱ 方案二 总结危险 Note系列地址 简 述: 首发买的iPhone 13P &#xff08;2021.09&#xff09;&#xff0c;随性使用一年出头&#xff0c;容量就暴跌 85%&#xff0c;对比朋友一起买的同款&#xff0c;还是95%。这已经基本得一天两充 >_<&a…...

JavaScript 常用事件演示

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍在在JavaScript 常用事件演示以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xff0c;友友们有任何问题可以在评论区…...

gzip引入后node_modules中.cache compression-webpack-plugin占用内存过多

1.Gzip Gzip&#xff08;GNU zip&#xff09;是一种常见的文件压缩格式和压缩算法&#xff0c;通常用于在 Web 服务器上对静态资源文件进行压缩&#xff0c;以减小文件大小并加快文件传输速度。在前端开发中&#xff0c;经常会使用 Gzip 压缩来优化网站的性能。 Gzip 压缩通过…...

Vue:使用IDEA开发Vue的相关配置

一、IDEA无法识别.vue文件 1、IDEA 添加Vue插件 2、添加Vue配置 File | Settings | Editor | File Types 找到 HTML 文件 在下面点号 输入*.vue 二、IDEA无法创建.vue文件 1、问题 在开发过程中&#xff0c;发现创建文件的界面&#xff0c;没有vue模板 2、相关配置 Fi…...

黑马程序员SSM框架-SpringBoot

视频连接&#xff1a;SpringBoot-01-SpringBoot工程入门案例开发步骤_哔哩哔哩_bilibili SpringBoot简介 入门程序 也可以基于官网创建项目。 SpringBoot项目快速启动 下面的插件将项目运行所需的依赖jar包全部加入到了最终运行的jar包中&#xff0c;并将入口程序指定。 Spri…...

Javascript细节、经验锦集

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/135311084 出自【进步*于辰的博客】 纯文字阐述&#xff0c;内容比较干。并且&#xff0c;由于考…...

git的使用基础教程

最近项目在搞自动化测试&#xff0c;需要将各种测试脚本集成到自动化框架里边&#xff0c;这个就需要用到版本管理系统了,下面简单价绍一下git的使用。 首先从官网下载并安装git工具&#xff0c;下面以wins系统为例子说明 https://git-scm.com/downloads wins安装好后&#xff…...

Springboot整合Elasticsearch 7.X 复杂查询

这里使用Springboot 2.7.12版本&#xff0c;Elasticsearch为7.15.0。 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> yaml文件配置…...

第5课 使用openCV捕获摄像头并实现预览功能

这节课我们开始利用ffmpeg和opencv来实现一个rtmp推流端。推流端的最基本功能其实就两个:预览画面并将画面和声音合并后推送到rtmp服务器。 一、FFmpeg API 推流的一般过程 1.引入ffmpeg库&#xff1a;在代码中引入ffmpeg库&#xff0c;以便使用其提供的功能。 2.捕获摄像头…...

Python3操作Json文件碰到的几个问题

文章目录 小结问题及解决byte数组与str字符串之间不兼容没有Index属性JSON.DUMP(S) & JSON.LOAD(S) 参考 小结 使用Python3操作Json文件碰到的几个问题&#xff0c;进行了解决。 问题及解决 byte数组与str字符串之间不兼容 以下的几个问题都是由于字节数组和字符串之间…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...