MySQL之创建和管理表
目录
1. MySQL中的数据类型编辑编辑
2. 创建和管理数据库
方式1:创建数据库
方式2:创建数据库并指定字符集
方式3:判断数据库是否已经存在,不存在则创建数据库( 推荐 )
总结
2.2 使用数据库
查看当前所有的数据库
查看当前正在使用的数据库
查看指定库下所有的表
查看数据库的创建信息
使用/切换数据库
总结
2.3 修改数据库
更改数据库字符集
总结
2.4 删除数据库
方式1:删除指定的数据库
方式2:删除指定的数据库( 推荐 )
总结
3. 创建表
3.1 创建方式1
必须具备:
语法格式:
必须指定:
可选指定:
3.2 创建方式2
4. 修改表
使用 ALTER TABLE 语句可以实现
4.1 追加一个列
语法格式
举例:
4.2 修改一个列
语法格式:
举例
4.3 重命名一个列
语法格式
举例:
4.4 删除一个列
语法格式
举例
5. 重命名表
方式一:使用RENAME
方式二:
6. 删除表
语法格式
举例
7. 清空表
TRUNCATE TABLE语句:
如:
大总结
1. MySQL中的数据类型

2. 创建和管理数据库
方式1:创建数据库
CREATE DATABASE 数据库名;
方式2:创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
方式3:判断数据库是否已经存在,不存在则创建数据库( 推荐 )
CREATE DATABASE IF NOT EXISTS 数据库名;
注意:DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。
总结
数据库的创建创建数据库create database 数据库名;判断在创建数据库create database if not exists 数据库名;创建数据库指定字符集create database 数据库名 character set 字符集;创建数据库指定排序方式create database 数据库名 collate 排序方式;创建数据库指定字符集和排序方式create database 数据库名 character set 字符集 collate 排序方式;查询数据库的字符集和排序方式mysql18:默认 utf8mb4 utf8mb4_0900_ai_cishow variables like 'character_set_database';show variables like 'collate_database';
2.2 使用数据库
查看当前所有的数据库
SHOW DATABASES; #有一个S,代表多个数据库
查看当前正在使用的数据库
SELECT DATABASE(); #使用的一个 mysql 中的全局函数
查看指定库下所有的表
SHOW TABLES FROM 数据库名;
查看数据库的创建信息
SHOW CREATE DATABASE 数据库名;
或者:
SHOW CREATE DATABASE 数据库名\G
使用/切换数据库
USE 数据库名;
注意:要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上“数
据库名.”。
总结
1.2 数据库查看查看所有库show databases;查看当前使用库select database();查看库下所有表show tables from 数据库名;查看创建库的信息和语句show create database 数据库名;选中和切换库;use 数据库名;注意: 对数据进行操作之前,必须要选中库! use 数据库; use 数据库名;
2.3 修改数据库
更改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集; #比如:gbk、utf8等 总结
1.3 数据库修改修改字符集alter database 数据库名 character set 字符集;修改排序方式alter database 数据库名 collate 排序方式;修改字符集和排序方式alter database 数据库名 character set 字符集 collate 排序方式;注意: 数据库中没有修改名称的指令,如果你想改名字,备份数据,删除旧库,创建新库,恢复数据即可! 2.4 删除数据库
方式1:删除指定的数据库
DROP DATABASE 数据库名; 方式2:删除指定的数据库( 推荐 )
DROP DATABASE IF EXISTS 数据库名;
总结
1.4 数据库删除直接删除drop database 数据库名;判断删除drop database if exists 数据库名;注意: 删除是一个危险命令,确认明确,再操作!!
3. 创建表
修改和删除表修改表中列添加列alter table 表名 add 列名 类型 [first|alter 列名] ;修改列名alter table 表名 change 原列名 新列名 新类型 [first|alter 列名] ;修改列类型alter table 表名 modify 列名 新类型 [first|alter 列名] ;删除列alter table 表名 drop 列名;修改表名alter table rename [to] 新表名;删除表drop table [if exists ] 表名;清空表数据truncate table 表名;
3.1 创建方式1
必须具备:
- CREATE TABLE权限
- 存储空间
语法格式:
CREATE TABLE [IF NOT EXISTS] 表名(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
……
[表约束条件]
);
加上了IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表; 如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。
必须指定:
- 表名
- 列名(或字段名),数据类型,长度
可选指定:
- 约束条件
- 默认值
-- 创建表
CREATE TABLE emp (
-- int类型
emp_id INT,
-- 最多保存20个中英文字符
emp_name VARCHAR(20),
-- 总位数不超过15位
salary DOUBLE,
-- 日期类型
birthday DATE
);
3.2 创建方式2
- 使用 AS subquery 选项,将创建表和插入数据结合起来
- 指定的列和子查询中的列要一一对应
- 通过列名和默认值定义列
CREATE TABLE emp1 AS SELECT * FROM employees;
CREATE TABLE emp2 AS SELECT * FROM employees WHERE 1=2; -- 创建的emp2是空表
CREATE TABLE dept80
AS
SELECT employee_id, last_name, salary*12 ANNSAL, hire_date
FROM employees
WHERE department_id = 80;
DESCRIBE dept80;
4. 修改表
修改和删除表修改表中列添加列alter table 表名 add 列名 类型 [first|alter 列名] ;修改列名alter table 表名 change 原列名 新列名 新类型 [first|alter 列名] ;修改列类型alter table 表名 modify 列名 新类型 [first|alter 列名] ;删除列alter table 表名 drop 列名;修改表名alter table rename [to] 新表名;删除表drop table [if exists ] 表名;清空表数据truncate table 表名;
使用 ALTER TABLE 语句可以实现
- 向已有的表中添加列
- 修改现有表中的列
- 删除现有表中的列
- 重命名现有表中的列
4.1 追加一个列
语法格式
ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;
举例:
SHOW CREATE TABLE 表名\G
ALTER TABLE dept80
ADD job_id varchar(15);
4.2 修改一个列
可以修改列的数据类型,长度、默认值和位置
语法格式:
ALTER TABLE 表名 MODIFY 【COLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名
2】; 举例
ALTER TABLE dept80
MODIFY last_name VARCHAR(30);
ALTER TABLE dept80
MODIFY salary double(9,2) default 1000;
4.3 重命名一个列
使用 CHANGE old_column new_column dataType子句重命名列。
语法格式
ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;
举例:
ALTER TABLE dept80
CHANGE department_name dept_name varchar(15);
4.4 删除一个列
删除表中某个字段的
语法格式
ALTER TABLE 表名 DROP 【COLUMN】字段名
举例
ALTER TABLE dept80
DROP COLUMN job_id;
5. 重命名表
修改和删除表修改表中列添加列alter table 表名 add 列名 类型 [first|alter 列名] ;修改列名alter table 表名 change 原列名 新列名 新类型 [first|alter 列名] ;修改列类型alter table 表名 modify 列名 新类型 [first|alter 列名] ;删除列alter table 表名 drop 列名;修改表名alter table rename [to] 新表名;删除表drop table [if exists ] 表名;清空表数据truncate table 表名;
方式一:使用RENAME
RENAME TABLE emp
TO myemp;
方式二:
ALTER table dept
RENAME [TO] detail_dept; -- [TO]可以省略
必须是对象的拥有
6. 删除表
修改和删除表修改表中列添加列alter table 表名 add 列名 类型 [first|alter 列名] ;修改列名alter table 表名 change 原列名 新列名 新类型 [first|alter 列名] ;修改列类型alter table 表名 modify 列名 新类型 [first|alter 列名] ;删除列alter table 表名 drop 列名;修改表名alter table rename [to] 新表名;删除表drop table [if exists ] 表名;清空表数据truncate table 表名;
- 在MySQL中,当一张数据表 没有与其他任何数据表形成关联关系 时,可以将当前数据表直接删除。
- 数据和结构都被删除
- 所有正在运行的相关事务被提交
- 所有相关索引被删除
语法格式
DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
IF EXISTS 的含义为:如果当前数据库中存在相应的数据表,则删除数据表;如果当前数据库中不存在相应的数据表,则忽略删除语句,不再执行删除数据表的操作。
举例
DROP TABLE dept80;
注意:DROP TABLE 语句不能回滚
7. 清空表
修改和删除表修改表中列添加列alter table 表名 add 列名 类型 [first|alter 列名] ;修改列名alter table 表名 change 原列名 新列名 新类型 [first|alter 列名] ;修改列类型alter table 表名 modify 列名 新类型 [first|alter 列名] ;删除列alter table 表名 drop 列名;修改表名alter table rename [to] 新表名;删除表drop table [if exists ] 表名;清空表数据truncate table 表名;
TRUNCATE TABLE语句:
- 删除表中所有的数据
- 释放表的存储空间
如:
TRUNCATE TABLE detail_dept;
大总结
/*1.1数据库的创建创建数据库create database 数据库名;判断在创建数据库create database if not exists 数据库名;创建数据库指定字符集create database 数据库名 character set 字符集;创建数据库指定排序方式create database 数据库名 collate 排序方式;创建数据库指定字符集和排序方式create database 数据库名 character set 字符集 collate 排序方式;查询数据库的字符集和排序方式mysql18:默认 utf8mb4 utf8mb4_0900_ai_cishow variables like 'character_set_database';show variables like 'collate_database';*//*练习:创建ddl_d1库,指定字符集为utf8,且排序方式用大小写敏感的utf8mb4_0900_as_cs模式
*/
CREATE DATABASE IF NOT EXISTS ddl_d1 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;/*1.2 数据库查看查看所有库show databases;查看当前使用库select database();查看库下所有表show tables from 数据库名;查看创建库的信息和语句show create database 数据库名;选中和切换库;use 数据库名;注意: 对数据进行操作之前,必须要选中库! use 数据库; use 数据库名;
*/SHOW DATABASES;SELECT DATABASE();USE mysql;SHOW TABLES FROM mysql;SHOW CREATE DATABASE ddl_d1;/*
1.3 数据库修改修改字符集alter database 数据库名 character set 字符集;修改排序方式alter database 数据库名 collate 排序方式;修改字符集和排序方式alter database 数据库名 character set 字符集 collate 排序方式;注意: 数据库中没有修改名称的指令,如果你想改名字,备份数据,删除旧库,创建新库,恢复数据即可!
*//*1.4 数据库删除直接删除drop database 数据库名;判断删除drop database if exists 数据库名;注意: 删除是一个危险命令,确认明确,再操作!!
*/# 2. DDL之数据表操作
/*2.1 建表语法建表语法总结create table [if not exist] 表名(# 列的信息列名 类型 [列的约束] [列的注释],列名 类型 [列的约束] [列的注释],...列名 类型 [列的约束] [列的注释])[描述][注释]建表事项1. 表名 列名 列类型必须填写的2. 推荐使用if not exists3. 注释不是必须得,但是是很有必要的!4. 列之间使用,隔开,最后一列没有,
*/CREATE DATABASE IF NOT EXISTS book_libs CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;USE book_libs;CREATE TABLE IF NOT EXISTS books(# 列的信息book_name VARCHAR(20) COMMENT '图书名',book_price DOUBLE(4,1) COMMENT '图书价格',book_num INT COMMENT '图书数量'
)CHARSET = utf8mb4 COMMENT '图书表';SHOW TABLES FROM book_libs;/*2.3 建表类型[整数]整数类型(类型,占有空间,范围)标准sql:int / integer 4字节 无符号 0 - 2/32-1 有符号 -2 31 / 2 / 31 -1smallint 2字节 无符号 0 - 2/16-1 有符号 -2 17 / 2 / 17 -1mysql方言:tinyint 1字节 无符号 0 - 2/8 -1 有符号 -2 7 / 2/7-1mediumint 3字节 无符号 0 - 2/24 -1 有符号 -2 23 / 2/23-1bigint 8字节 无符号 0 - 2/64 -1 有符号 -2 63 / 2/63-1有符号: 列名 整数类型 -> 有符号| 有符号 有负值和正值列名 整数类型 unsigned -> 无符号|无符号 没有负值,都是正值,将负值部分,绝对值后,加入正值部分!注意: 选合适范围,范围合适先占有空间最小的!创建一个ddl_d1库中,创建一个t1表,包含: 年龄和学号(范围不确定,但是没有负值)*/CREATE TABLE t1(t1_age TINYINT UNSIGNED COMMENT '年龄,无符号,范围就是 0 - 255',t1_number BIGINT UNSIGNED COMMENT '学号,最大的,且没有负号'
);/*2.4 建表类型[浮点/定值]浮点类型(类型,M,D)float(m,d) 4字节 m 24 d 8double(m,d) 8字节 m 53 d 30定值类型(类型,M,D)decimal(m,d) 动态占有 m 65 d 30使用对比:精度要求不高,例如:身高,体重 float / double精度要求特别高,钱 工资,价格 decimal*//*2.5 建表类型[浮点/定值]浮点类型(类型,M,D)float(m,d) 4字节 m 24 d 8double(m,d) 8字节 m 53 d 30定值类型(类型,M,D)decimal(m,d) 动态占有 m 65 d 30使用对比:精度要求不高,例如:身高,体重 float / double精度要求特别高,钱 工资,价格 decimal*//*2.6 建表类型[字符串]字符串类型char 固定长度类型 一旦声明固定占有对应的空间 M 最大255 [性能较好]varchar 可变长度类型 一旦声明,可以插入小于的长度,自动进行伸缩 M 占有的空间不能超过一行的最大显示65535字节 [性能一般]text 大文本类型,声明不要指定长度,有固定的大小限制, text [65535] , 不占有一行的最大限制空间细节理解1. char声明的时候可以不写m char = char(1)2. char声明了最大长度限制,输入的文本小于长度限制,会在右侧补全空格 char(5) -> 'abc' -> 'abc '3. char类型在读取的时候,会自动去掉右侧的空格 'abc ' -> 'abc'4. varchar声明的时候,必须添加m限制 varchar(m)5. mysql4.0以下版本 varchar(20) -> 20字节限制 mb3 -> 66. mysql5.0以上版本 varchar(20) -> 20字符限制7. varchar类型中识别空格,插入空格 读取也是有空格演示varchar最大限制前提: mysql中一行数据最大的占有空间是65535字节,除了TEXT or BLOBs类型的列(不占有65535限制 法外狂徒)一行-> name1列 -> name1列占有的最大空间65535字节varchar类型默认会使用1字节标识是否为null -> 65535-1 = 65534字节字符集utf8mb4 1个字符 = 4个字节 65534 / 4 = 16383解决方案 :1. 缩小字符大小限制 m变小 [不合理]2. 可以修改字符集 [不合理]3. 可以将字符串类型变成TEXT,不占有一行的限制*/CREATE TABLE t1(name1 VARCHAR(16000),name2 TEXT
)CHARSET=utf8mb4;/*2.7 建表类型[时间类型]时间类型year 1 yyyy | yy '1910' | 1910time 3 HH:MM:SS '10:10:10'date 3 YYYY-MM-DD '1910-10-10'datetime 8 YYYY-MM-DD HH:MM:SS '1910-10-10 10:10:10'timestamp 4 YYYY-MM-DD HH:MM:SS '1970-10-10 10:10:10'注意情况1. year可以写两位年 00 - 99 00-69 =2000 - 2069 70 - 99 = 1970 - 1999 推荐四位的年2. 时间类型,要遵循他们的格式插入,插入的时候就是按字符插入,时间默认不会自动赋值扩展自动填写时间:1.插入默认添加时间datatime | timestamp default current_timestamp2.修改默认更改时间datatime | timestamp default current_timestamp on update current_timestamp演示: 创建t2表,注册日期 字段插入自动添加时间,更新数据不变更新日期 字段插入自动添加时间,更新数据时间改变
*/CREATE TABLE t2(name1 VARCHAR(20),reg_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '注册日期,插入数据自动维护时间',up_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日期,插入数据填写时间,更新数据自动改变时间'
);/*2.8 修改和删除表修改表中列添加列alter table 表名 add 列名 类型 [first|alter 列名] ;修改列名alter table 表名 change 原列名 新列名 新类型 [first|alter 列名] ;修改列类型alter table 表名 modify 列名 新类型 [first|alter 列名] ;删除列alter table 表名 drop 列名;修改表名alter table rename [to] 新表名;删除表drop table [if exists ] 表名;清空表数据truncate table 表名;
*/
/*2.9 表操作实战要求1:创建表格employees要求2:将表employees的mobile字段修改到code字段后面。要求3:将表employees的birth字段改名为birthday;要求4:修改sex字段,数据类型为char(1)。要求5:删除字段note;要求6:增加字段名favoriate_activity,数据类型为varchar(100);要求7:将表employees的名称修改为 employees_info*/CREATE TABLE employeess(emp_num INT,last_name VARCHAR(50),first_name VARCHAR(50),mobile VARCHAR(25),CODE INT,job_time VARCHAR(50),birth DATE,note VARCHAR(255),sex VARCHAR(5)
);# 要求2:将表employees的mobile字段修改到code字段后面。
ALTER TABLE employeess MODIFY mobile VARCHAR(25) AFTER CODE;# 要求3:将表employees的birth字段改名为birthday;
ALTER TABLE employeess CHANGE birth birthday DATE;# 要求4:修改sex字段,数据类型为char(1)。
ALTER TABLE employeess MODIFY sex CHAR(1);DESC employeess;# 要求5:删除字段note;
ALTER TABLE employeess DROP note;#要求6:增加字段名favoriate_activity,数据类型为varchar(100);
ALTER TABLE employeess ADD favoriate_activity VARCHAR(100);#要求7:将表employees的名称修改为 employees_info
ALTER TABLE employeess RENAME employees_info;
相关文章:
MySQL之创建和管理表
目录 1. MySQL中的数据类型编辑编辑 2. 创建和管理数据库 方式1:创建数据库 方式2:创建数据库并指定字符集 方式3:判断数据库是否已经存在,不存在则创建数据库( 推荐 ) 总结 2.2 使用数据库 查看当…...
肌肉骨骼肿瘤治疗市场:潜力无限,未来可期
肌肉骨骼肿瘤治疗作为现代医学的重要分支,专注于应对骨骼和肌肉系统中的良性和恶性肿瘤。随着全球人口老龄化和生活方式的改变,肌肉骨骼疾病日益成为公共卫生的重要问题。与此同时,医疗技术的进步和患者对高质量医疗服务的需求不断推动该市场…...
QGIS 创建三维渲染动画
打开数据包中的denali工程文档,可以看到DEM图层和山体阴影图层。首先创建彩色的山体阴影效果: 接下来新建3D视图: 配置三维地图 配置后,可用鼠标中键、右侧的操作盘等进行三维旋转等操作。 接下来在三维地图中创建动画效果&#x…...
Vue生成类似于打卡页面
数据表格 <el-table :data"tableData" border height"calc(100vh - 240px)" :cell-style"cellFun"><el-table-column label"姓名" show-overflow-tooltip prop"name" align"center"/><el-table-co…...
软件工程——期末复习(2)
Part1:软件工程基本概念 软件程序文档数据 在软件工程中,软件通常被定为程序、文档和数据的集合。程序是按事先设计的功能和性能要求编写的指令序列;程序是完成指定功能的一段特定语言代码。文档是描述程序操作和使用的文档,是与…...
vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式
vxe-table 全键盘操作,按键编辑方式设置,覆盖方式与追加方式; 通过 keyboard-config.editMode 设置按键编辑方式;支持覆盖方式编辑和追加方式编辑 安装 npm install vxe-pc-ui4.3.15 vxe-table4.9.15// ... import VxeUI from v…...
【BUG】VMware|vmrest正在运行此虚拟机,无法配置或删除快照
VMware版本:VMware 16 文章目录 省流版问题解决方案 详细解释版问题解决方案总结 省流版 问题 只读,因为vmrest正在运行虚拟机。 解决方案 参考:虚拟机设置,只读,因为vmrest正在运行此虚拟机。有谁遇到过这种问题吗&…...
STM32 串口和I2C结合案例:
需求 1. 电脑通过串口 给单机 下发点灯计划 例如 13322 单片机上的灯 LED1 亮1秒 灭1秒 LED3 亮1秒 灭1秒 LED3 亮一秒 灭1秒 133221332213322-> mian.c #include "usart1.h" #include "M24C02.h" #include "stdio.h" #include "le…...
QT6_UI设计——设置表格
环境:qt6.8 1、放置 双击 2行 、列 设置 3、设置表格内容 读取表格内容 uint16 get_table_value_16_cmd(int row,int column) {if(column<1)return 0;QTableWidgetItem *itemnew QTableWidgetItem;itemui1->tableWidget_2->item(row,column);if(item! nul…...
游戏使用辅助工具修改器检测不到游戏进程应该如何解决?多种解决方法分享
当您在使用游戏辅助工具或修改器时遇到“未检测到游戏进程”的提示,这通常意味着修改器未能正确识别并连接到游戏的运行实例。以下是一些可能的解决方案: 1. 确保游戏已启动:•确认游戏已经完全启动并且正在运行中。有时游戏可能还在加载界面…...
Java JVM(内存结构,垃圾回收,类加载,内存模型)
一、JVM 主要功能 1. 什么是 jvm? JVM(Java Virtual Machine):负责运行 Java 程序的核心组件。它将 Java 字节码(.class 文件)解释或编译为机器代码,并提供内存管理、垃圾回收和线程管理等功能。 JRE (J…...
C++设计模式(桥接、享元、外观、状态)
一、桥接模式 1.定义 将抽象部分与它的实现部分分离,使它们可以独立地变化。 桥接模式通过使用组合关系而不是继承关系来实现解耦,从而提高系统的灵活性和可扩展性。 2.组成 抽象:定义抽象部分的接口,包含一个指向实现类的对象…...
鸿蒙 DevEco Studio 设置状态栏,调用setWindowSystemBarProperties不生效
参考文章:设置状态栏,调用setWindowSystemBarProperties不生效 我使用 setWindowSystemBarProperties 设置状态栏,不生效。 import window from ohos.window;export default {data: {title: World},setSystemBar() {var windowClass null;…...
Spring03——基于xml的Spring应用
Spring开发中主要对Bean的配置 Bean的常用配置一览如下: Xml配置方式功能描述<bean id"" class"">Bean的id和全限定名配置<bean name"">通过name设置Bean的别名,通过别名也能直接获取到Bean实例<bean sc…...
【AIGC半月报】AIGC大模型启元:2024.12(上)
【AIGC半月报】AIGC大模型启元:2024.12(上) (1)OpenAI-12日发布会(持续更新中........)Day01-12.06:SoraDay02-12.07:ChatGPT圣诞老人风格的语音Day03-12.08:…...
本etcd系列文章补充说明
最开始今年四月份读的是etcdv3.6的main分支的代码,最开始没注意,main分支代码是不断修改的,并且最开始对etcd不太了解,所以源码笔记有些理解不太准确,也可能略有错误,所以年底就回过头来重新复习一遍&#…...
【新品发布】ESP32-P4开发板 —— 启明智显匠心之作,为物联网及HMI产品注入强劲动力
核心亮点: ESP32-P4开发板,是启明智显精心打造的一款高性能物联网开发板。它专为物联网项目及HMI(人机界面)产品而设计,旨在为您提供卓越的性能和稳定可靠的运行体验。 强大硬件配置: 双核400MHz RISC-V处…...
HTML 添加 文本水印
body,html {margin: 0;height: 100vh;width: 100vw;} // 自定义文案const setting {text: "水印文案", // 水印内容innerDate: true, // 在水印下方增加日期width: 110, // 水印宽度};// 自定义文字水印const watermark (function () {return {build: function (a…...
软件无线电安全之GNU Radio基础(下)
往期回顾 软件无线电安全之GUN Radio基础(上) 背景 在上一小节中,我们简单介绍和使用了GNU Radio软件的基础功能和模块,同时通过GNU Radio Companion(GRC)创建了简单的流程图,展示了信号生成、处理和输出的流程。最后…...
windows基础
系统目录 服务 端口 注册表 黑客常用DOS命令(在拿到shell时会用到) 一、 系统目录 Windows目录 系统的安装目录 System32configSAM文件 是用户密码的存储文件 System32etchost文件 记录本地解析(优先级大于DNS域名解析)可以自…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
