外键约束 主键:可以唯一标识一条记录的列
外键:从表中与主表的主键对应的字段
主表:外键所指向的表,约束其他表的表
从表:外键所在的表,被约束的表
价值:建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性
建立外键约束 创建表时添加外键约束:CONSTRAINT [外键约束的名称] FOREIGN KEY (外键字段) REFERENCES [主表名称(主键字段)]
添加外键约束:ALTER TABLE [表名] ADD CONSTRAINT [外键约束的名称] FOREIGN KEY [外键字段] REFERENCES [主表名称(主键字段)]
alter table emp_part add constraint emp_dept foreign key(dept_id) references dept(id);
# 创建一个关联到主表的从表 CREATE TABLE emp_part( emp_id INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), age INT , gender VARCHAR(10), dept_id INT, -- 添加外键约束 CONSTRAINT emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id) 删除外键约束 语法: ALTER TABLE [表名] DROP FOREIGN KEY [外键约束名称] 注意事项 从表外键数据类型必须与主表的主键一致 删除数据时,需先删除从表数据再删除主表的数据 添加数据时先添加主表数据,再添加从表数据 # 删除外键约束 ALTER TABLE emp_part DROP FOREIGN KEY emp_dept # 插入一条非法数据 INSERT INTO emp_part VALUES(1,'cindy',20,'female','4') SELECT * FROM emp_part # 向主表中插入一条数据 INSERT INTO dept VALUES(2,'运营部','张三','北京') # 向从表中插入一条数据 INSERT INTO emp_part VALUES(1,'cindy',20,'female','2') # 删除主表中的数据 DELETE FROM dept WHERE id=2 级联删除 删除主表数据的同时,也删除掉从表中相关的数据;即当你删除一个部门信息,就会把所关联的该部门员工信息删除。 ON DELETE CASCADE alter table emp_part add constraint emp_dept foreign key(dept_id) references dept(id) on delete cascade;
https://dev.mysql.com/doc/refman/8.0/en/multiple-windows-services.html
Remove-Service -Name MySQL80 mysqld --install MySQL --defaults-extra-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
IDEA中操作数据库插入数据报错异常(博客项目插入评论) bug1 问题
Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'article_id' at row 1
原因
字面意思是插入的数据值超过article_id列的范围
解决方案
查看对应的数据库字段类型并修正 article_id字段将int修改为bigint
参考方案
Navicat工具连接oracle的方法
目录Navicat工具连接oracle的方法环境报错 oracle library is not loaded解决办法
环境 客户端电脑:win10 64位 oracle数据库版本:11.2.0.4 报错 oracle library is not loaded 使用navicat连接oracle数据库报错,信息如下: 解决办法 下载oracle客户端:Oracle Instant Client Downloads (https://www.oracle.com/database/technologies/instant-client/downloads.html)
选择你对应系统的版本,进行下载 我下载版本为:instantclient-basic-windows.x64-19.14.0.0.0dbru.zip
下载后解压到你指定的一个目录中
配置navicate
选择你指定目录里的oci.dll文件,然后确定
重新启动navicat 生效
再次测试连接,成功,点击 确定 退出
一、MBR丢失
检查MBR信息: dd if=/dev/vda of=/vda bs=512 count=1 cat vda| hexdump| less 重建MBR: 如果是grub2: 直接grub2-install --force /dev/vda (需强制安装,否则会报错。) 如果是grub: 先执行grub-recheck 再执行grub-install /dev/vda
二、文件系统异常
1、fdisk恢复分区查看ext文件系统的其实扇区:
dd if=/dev/vda bs=512 count=4096 2>/dev/null | od -tx1 | perl -ne ' chomp; if (/^([0-7]+)\s # 磁盘数据的位置 ([0-9a-f][0-9a-f]\s){8} # 越过无关数据 53\sef\s # 模数 0[124]\s00\s0[123]\s00\s # 文件系统状态和出错后的行为配置 /x) { my $s=int((oct $1)/512)-2; print qq[$s $_\n]; }'
a.先通过模数找到文件系统的起始扇区(53ef是ext的模数所以此方法只适用extb.fdisk -u /dev/xxx 重新分区保证起始扇区和前面找到的一致即可云上默认都是单分区(fdisk默认是按照cylinder为单位的所以加-u指定以sector为单位)c.新版本fdisk都是以2048为起始扇区的最小值的,如果分区起始扇区是63等小于2048的话,使用parted代替fdisk
2、testdisk恢复分区a.运行testdisk /dev/xvdb(根据实际情况替换设备名),再选择Proceed(默认值)后按回车键。
b.选择分区表类型进行扫描:一般选择Intel(默认)。如果您的数据盘采用GPT分区,选择EFI GPT。
c.选择Analyse后按回车键。
d. 如果您没有看到没有任何分区信息,选择Quick Search后按回车键快速搜索。
Springboot集成Redis简介 redis的端口是6379 springboot添加redis的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.0</version> </dependency> Spring Data Redis提供了两个模板类来进行数据的操作: RedisTemplate StringRedisTemplate只针对键值都是字符串的进行操作。 RedisTemplate,StringRedisTemplate主要数据访问方法: opsForValue();操作只有简单属性的数据 opsForList();操作含有list的数据 opsForSet();操作含有set的数据 opsForZSet();操作含有有序set的数据 opsForHash();操作含有hash的数据 Serializer: 当数据存储到spring的时候,键和值都是通过Spring提供的Serializer序列化到数据库的,RedisTemplate默认使用JdkSerializationRedisSerializer序列化, StringRedisTemplate默认使用StringRedisSerializer进行序列化。 springboot的支持: 在RedisAutoConfiguration配置类中,默认配置了RedisTemplate,StringRedisTemplate可以直接使用Redis存储数据库。 application.properties文件配置 # 数据库名称db0 spring.redis.database=0 #服务器地址 spring.redis.host=192.168.101.60 #连接端口 spring.redis.port=6379 #连接池最大连接数 spring.redis.max-idle=8 #连接池最小连接数 spring.redis.min-idle=0 #在给定时间内连接池能分配的最大连接数 spring.redis.max-active=8 #当资源耗尽时,抛出异常的等待时间,负值为无限期的阻止 spring.redis.max-wait=-1 实体类 public class Student implements Serializable { private static final Long serialVersionUID=1L; private String sno; private String sname; private String sage; public Student() { } public Student(String sno, String sname, String sage) { this.
问题 当需要打开多个终端窗口分别执行不同的命令,可以是bash脚本统一处理
方法 vim xxxxx.sh gnome-terminal --tab bash -c 'cd $dir; bash xx.sh' gnome-terminal --tab -e bash -c 'cd $dir; python xxx.py' gnome-terminal命令配置 如果gnome-terminal命令不支持,可以在配置快捷键处配置
运算器主要负责算数运算与逻辑运算
算术逻辑单元(ALU):主要负责计算
累加寄存器(AC):也称累加器,给予一个计算的工作区,例1+2=3 存放计算的数字与结果!
数据缓冲寄存器(DR):缓存:因为CPU和内存、外设之间的操作速度存在差异,在速度上的缓存以及数据传送的中转站。
状态条件寄存器(PSW):保存根据算术指令和逻辑指令运行或测试的结果建立的各种条件码的内容,主要分为状态标志和控制标志。例如运算结果、状态的保存。
控制器:
功能:决定了计算机运行过程的自动化。不仅要保证程序的正确执行,而且还要能够处理异常事件。
(1)、指令寄存器(IR):用来存放一条指令,控制其他部分协调操作;
(2)、程序计算器(PC)(重点):存放的是将要执行的下一条指令的地址;告诉cpu,即将要执行的指令。
(3)、地址寄存器(AR):保存现在访问的内存地址到地址寄存器;
(4)、指令译码器(ID):翻译(操作码)的作用。例如我们的操作码是mov,就解释mov是什么意思;向操作控制器控制逻辑部件发出控制信号。p2——3
寄存器组(了解)
整除取余法:结果从下往上写;
八进制/十六进制转化成二进制:
八进制:将每一个数字转化成3位的二进制,然后拼起来
十六进制:将每一个数字转化成4位的二进制,然后拼起来
存储器(了解)
数据总线(DB):传送数据信息,是双向的。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的次数;CPU→内存(双向)
地址总线(CB):传送CPU发出的地址信息,是单向的。地址总线的宽度决定了CPU的最大寻址能力;
控制总线(AB):传送控制信号、时序信号和状态信息等;每一条线的信息传送方向是单方向且确定的,但CB作为一个整体则是双向的。
程序控制方式:
1.无条件传送:外设总是准备好的,无条件,随时接受和提供数据;
2.程序查询方式:CPU利用程序来查询外设的设备,准备好了再传数据。例如:我们用打印机打印,程序先查询打印机是否处在空闲状态,若不处在空闲状态,则等打印机空闲的时候CPU再向打印机传输这个数据。
3.中断方式:不需要CPU等待,也不需要查询状态。而是外设在准备好过后,向CPU发出中断请求。与外设处理好后,再回到之前进行的程序继续执行;
以上的三种方式都需要CPU的参与: 以下效率更高,但是是以更多的硬件为代价的。
4.DMA方式:数据的传输是在主存和外设(直接内存存取)之间直接进行,不需要CPU的干预,实际操作是由DMA硬件DMAC直接执行完成的;
5.通道方式和外围处理机方式。
在VMware中安装Windows11操作系统 文章目录 在VMware中安装Windows11操作系统 1.Windows11操作系统简介 2.在VMware中创建一个新的虚拟机 2.1.下载Windows 11系统镜像 2.2.新建一个windows虚拟机 2.3.配置虚拟机资源设置 2.4.将虚拟机开机选择blos启动 3.安装Windows11操作系统 3.1.安装操作系统 3.2.设置系统 4.Windows11安装完成administrator 1.Windows11操作系统简介 Windows 11是由微软公司(Microsoft)开发的操作系统,应用于计算机和平板电脑等设备 [1] 。于2021年6月24日发布 [3] ,2021年10月5日发行 [29] 。
2.在VMware中创建一个新的虚拟机 2.1.下载Windows 11系统镜像 网址:https://next.itellyou.cn/Identity/Account/Login?ReturnUrl=%2FOriginal%2F#cbp=Product?ID=42e87ac8-9cd6-eb11-bdf8-e0d4e850c9c6
登陆后点击windows11,然后复制ED2K名称,打开迅雷即可下载。
2.2.新建一个windows虚拟机 1)点击创建虚拟机。
2)类型选择典型。
3)稍后选择操作系统镜像。 4)选择windows 10 x64就可以满足windows 11的安装。 5)设置虚拟机的名称并选择虚拟机的安装位置。 6)选择虚拟机的磁盘容量,一定要大于64GB。 2.3.配置虚拟机资源设置 1)首先将虚拟机的内存和CPU都选成4G4核,否则是会安装失败的。 2)设置虚拟机加密。 3)点击高级设置uefi启动。
4)添加一个可信模块。 2.4.将虚拟机开机选择blos启动 1)开机启动后显示如下,手动摁一下ESC键。
3)选择EFI第二项。 4)弹出以下按钮后迅速敲回车键进入系统安装页面。
5)如下所示。
3.安装Windows11操作系统 3.1.安装操作系统 1)点击现在安装windows。 2)选择windows11专业版。
3)同意许可。
4)选择自定义安装。 5)选择系统安装的位置。 6)等待windows安装即可。
1、下载安装包lrzsz-0.12.20.tar.gz : http://www.ohse.de/uwe/software/lrzsz.html2、把安装包放到 /usr/local 目录下
3、执行命令:tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20 # ./configure && make && make install4、使用命令 rz 就可以了解压zip包命令:unzip aa.zip