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

MySQL数据库基本操作和完整性约束类型详解

目录

  • 一、增删改查的sql语句
  • 二、表完整性约束
    • 1、表完整性约束的介绍
    • 2、常见的完整性约束类型
    • 3、表完整性约束实战操作
      • 3.1.主键primary key
      • 3.2.自增键auto_increment
      • 3.3.唯一键UNIQUE
      • 3.4.null与not null
      • 3.5.默认约束

一、增删改查的sql语句

SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
DDL语句—数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句—数据库操纵/操作语言(对记录的操作): 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DCL语句—数据库控制语言(和权限有关): 例如控制用户的访问权限GRANT、REVOKE
DQL语句—数据库查询语言: 查询数据SELECT
库相当于windows/linux中的一个目录,用于存放文件的
库里面存放了若干张表,表可以看作成是一个文件。
每一行叫做记录,除了第一行。
每一列叫一个字段。列上面的第一个叫字段名称。

创建数据库
mysql> create database 库名;查看数据库
mysql> show databases;
​
进入数据库
mysql> use 库名
​
查看当前所在的库
mysql> select database();
创建表案例:
mysql> create table users(  id int primary key,     #id字段名,int数据类型,整数 primary key主键name varchar(30),       #name字段名,varchar(30)可变长字符串,限制30字符age int                 #age是字段名 数据类型是int整数,
)ENGINE=InnoDB DEFAULT CHARSET=utf8;    #指定存储引擎,设置默认的字符集

参数解释
表名:需要创建的表名
字段:表中包含的各个字段名和类型
类型:字段的类型,如int、varchar等
宽度:某些类型的长度限制,如varchar(50)
约束条件:给字段添加的约束,如primary key、 null 等
存储引擎:指定表使用的存储引擎,如InnoDB、MyISAM等
字符集:指定表使用的字符集,如utf8等

注意:在同一张表中,字段名是不能相同;宽度和约束条件是可选的;字段名和类型是必须的。

1、创建表:

mysql> create table t1(id int,name varchar(20),age int); # 字段 类型 字段 类型(长度),字段 类型 
​
mysql> create table t2(id int,name varchar(50),sex enum('m','f'),age int);
#m:male  f:female 女士

2、查看有哪些表

mysql> show tables;

3、查看表结构

mysql> desc t1;

​4、查看表里面的所有记录
语法: select 内容 from 表名;

mysql> select * from t1;
#*代表所有内容

​5、查看表里面的指定字段的数据
语法:select 字段,字段 from 表名;

mysql> select name,sex from t1;

6、查看表的状态

mysql> show table status like '表名'\G    
#每条SQL语句会以分号结尾,想看的清楚一些以\G结尾,一条记录一条记录显示。
#(把表90度向左反转,第一列显示字段,第二列显示记录)使用的\G就不用添加分号了

​7、修改表名称
方式一
语法:rename table 旧表名 to 新表名;

mysql> rename table t1 to t2;
Query OK, 0 rows affected (0.00 sec)

方式二
语法:alter table 旧表名 rename 新表名;

mysql> alter table t2 rename t3;

8、使用edit(\e)编辑

mysql> \e
create table users2(id int primary key,name varchar(30),age int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8-> ;
#可以写新的语句,调用的vim编辑器,在里面结尾的时候不加分号,保存退出之后在加“;”

​9、删除表:在企业中是危险操作,慎用!

mysql> drop table 表名;

​10、删除库:在企业中是危险操作,慎用!

mysql> drop database 库名;

二、表完整性约束

1、表完整性约束的介绍

数据完整性指的是数据的一致性和正确性。
完整性约束是指数据库的内容必须遵守约束的规则。
若定义了数据完整性约束,MySQL会负责数据的完整性,每次更新数据时,MySQL都会测试新的数据内容是否符合相关的完整性约束条件,只有符合完整性的约束条件的更新才被接受。
作用:为了规范数据格式, 在用户进行插入、修改、删除等操作时,DBMS(数据库管理系统(Data Base Management System))自动按照约束条件对数据进行监测, 使不符合规范的数据不能进入数据库,以确保数据的完整性和唯一性

2、常见的完整性约束类型

约束条件说明PRIMARY KEY (PK)标识该字段为该表的主键,可以唯一的标识记录,不能为空UNIQUE + NOT NULL标识该字段的值是唯一的,且不能为空FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表之间的关联NULL标识是否允许为空,默认为NULLNOT NULL 标识该字段不能为空,可以修改UNIQUE KEY (UK)标识该字段的值是唯一的,可以为空AUTO_INCREMENT标识该字段的值自动增长(整数类型,而且为主键)DEFAULT为该字段设置默认值

主键和外键的区别:
主键用于唯一标识表中的每一行,不允许重复。而外键只是用于引用其他表中的主键,可以重复。
主键在建表时就需要定义,不能为空。而外键可以为空。
主键一般选择不重复且不易改变的字段。外键一般选择另一个表中的主键。
主键在数据修改时提供紧密控制,外键提供了表与表之间关联的链接。
删除主键记录,表中此记录将被删除。删除外键记录,外键与主键的关联会被删除,但数据仍存在。

举个简单的例子:学生表的ID字段是主键,课程表也有ID字段,但是课程表中的学生ID字段引用学生表的ID字段,课程表中的学生ID就叫外键。

​总结:

  • 主键用于标识表中的每一行
  • 外键用于关联两个表
  • 主键不允许重复
  • 外键可以重复

3、表完整性约束实战操作

3.1.主键primary key

每张表里只能有一个主键,不能为空,而且唯一,主键保证记录的唯一性,主键自动为NOT NULL。
拓展知识:
未设置主键时如何处理表?
首先Innodb从上往下搜索所有字段, 直到找到一个非空且唯一的字段, 该字段就会自动升级为主键
如果表中既没有主键, 也没有非空且唯一的字段, 那么InnoDB会采用自己内部提供的一个隐藏字段作为主键, 此时提升查询效率的作用就无法享受了(隐藏字段看不见)
即:一个UNIQUE KEY 又是一个NOT NULL的时候,那么它被当做PRIMARY KEY主键。
定义两种方式:

#表存在,添加约束
mysql> alter table t03 add primary key (hostname);​案例:
mysql> desc  t03;
+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| born_year | year(4) | YES  |     | NULL    |       |
+-----------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)#指定born_year为主键
mysql> alter table t03 add primary key (born_year);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc  t03;
+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| born_year | year(4) | NO   | PRI | NULL    |       |  
+-----------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)#创建表并指定主键约束
mysql> create table t9(hostname char(20),ip char(150),primary key(hostname));
mysql> insert into t9(hostname,ip) values('edu.com', '10.10.10.11');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into t9(hostname,ip) values('edu.com', '10.10.10.12');
ERROR 1062 (23000): Duplicate entry 'edu.com' for key 'PRIMARY'
#主键冲突了,主键有且只能有一个
​
mysql> insert into t9(hostname,ip) values('edu', '10.10.10.11');
Query OK, 1 row affected (0.01 sec)
​
mysql> select * from t9;
+-----------+-------------+
| hostname  | ip          |
+-----------+-------------+
| edu       | 10.10.10.11 |
| edu.com   | 10.10.10.11 |
+-----------+-------------+
2 rows in set (0.00 sec)
​
mysql> insert into t9(hostname,ip) values('jy', '10.10.10.12');
Query OK, 1 row affected (0.00 sec)
#可以插入成功,因为ip并不是主键
​
mysql> select * from t9;
+-----------+-------------+
| hostname  | ip          |
+-----------+-------------+
| edu       | 10.10.10.11 |
| edu.com   | 10.10.10.11 |
| jy        | 10.10.10.12 |
+-----------+-------------+
3 rows in set (0.00 sec)#删除主键
mysql> alter table t9  drop  primary key;#再查看一下表结构,看看hostname是否为主键了
mysql> desc  t9;

3.2.自增键auto_increment

设置后,会自动编号,且必须与主键组合使用,默认情况下,起始值为1,每次的增量为1。
当插入数据时,如果为AUTO_INCREMENT数据列明确指定了一个数值

则会出现两种情况:
1、如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
2、如果插入的值大于已编号的值,则会把它插入到数据列中,并在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。
每张表只能有一个字段为自增,而且必须要成了key也就是主键才可以自动增长

案例

mysql> CREATE TABLE department3 (dept_id INT PRIMARY KEY AUTO_INCREMENT,dept_name VARCHAR(30),comment VARCHAR(50));
上述案例是创建了一个department3(部门3)的表格,并且将dept_id部门id设置成了主键和自增键,后续添加了一个部门成员就会自动加1
查看表结构:mysql> select * from department3;
Empty set (0.00 sec)#插入数据,一次插入2条数据,它会自动增加id号,从1开始自增
mysql> insert into department3(dept_name, comment) values('tom','test'), ('jack', 'test2');
Query OK, 2 rows affected (0.00 sec)mysql> select * from department3;
+---------+-----------+---------+
| dept_id | dept_name | comment |
+---------+-----------+---------+
|       1 | tom       | test    |
|       2 | jack      | test2   |
+---------+-----------+---------+
2 rows in set (0.00 sec)#也可以指定id插入,直接跳过3和4
mysql> insert into department3(dept_id,dept_name,comment)  values('5','bob','test5');
Query OK, 1 row affected (0.00 sec)#或者,不指定字段也是可以的,不指定具体的字段就是必须要插入3个数据值
mysql> insert into department3  values('6','jary','test6');#查询数据
mysql> select * from department3;
+---------+-----------+---------+
| dept_id | dept_name | comment |
+---------+-----------+---------+
|       1 | tom       | test    |
|       2 | jack      | test2   |
|       5 | bob       | test5   |
|       6 | jary      | test6   |
+---------+-----------+---------+#删除自动增长
#语法:ALTER TABLE table_name CHANGE  old_col_name new_col_name column_definition(列定义约束条件)
mysql> ALTER TABLE department3 CHANGE dept_id  dept_id INT NOT NULL;
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> desc department3;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| dept_id   | int(11)     | NO   | PRI | NULL    |       |
| dept_name | varchar(30) | YES  |     | NULL    |       |
| comment   | varchar(50) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

3.3.唯一键UNIQUE

设置唯一约束UNIQUE,字段添加唯一约束之后,该字段的值不能重复,也就是说在一列当中不能出现一样的值。
案例

mysql> CREATE TABLE department2 (dept_id INT,dept_name VARCHAR(30) UNIQUE,comment VARCHAR(50));
Query OK, 0 rows affected (0.00 sec)#插入第一条数据
mysql> insert into department2(dept_id,dept_name,comment) values('1','tom',good'')#插入第二条数据
mysql> insert into department2(dept_id,dept_name,comment) values('2','tom',good'')
ERROR 1062 (23000): Duplicate entry 'tom' for key 'dept_name'
#插入数据的时候id和comment字段相同可以插入数据,如果有相同的名字不唯一。所以插入数据失败。#将名字换掉再次插入
mysql> insert into department2(dept_id,dept_name,comment) values('2','jack',good'')
Query OK, 1 row affected (0.00 sec)#插入第三条数据,id可以相同,名字不能相同
mysql> insert into department2(dept_id,dept_name,comment) values('2','jim',good'')
Query OK, 1 row affected (0.00 sec)mysql> select * from department2;
+---------+-----------+---------+
| dept_id | dept_name | comment |
+---------+-----------+---------+
|       1 | tom       | good    |
|       2 | jack      | good    |
|       2 | jim       | good    |
+---------+-----------+---------+
3 rows in set (0.00 sec)

3.4.null与not null

是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
字段是否有默认值,默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值,也就是空值

例如:sex enum('male','female') not null default 'male'
只能选择male和female,不允许为空,默认是male
案例:不允许为空not null

#创建表格
mysql> create table t2(id int(5),name varchar(10),sex enum('male','female') not null default 'male');
Query OK, 0 rows affected (0.00 sec)#查看表结构
mysql> desc  t2;
+-------+-----------------------+------+-----+---------+-------+
| Field | Type                  | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+-------+
| id    | int(5)                | YES  |     | NULL    |       |
| name  | varchar(10)           | YES  |     | NULL    |       |
| sex   | enum('male','female') | NO   |     | male    |       |
+-------+-----------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)#插入数据
mysql> insert into t2(id,name) values(1,'tom');#查询数据
mysql> select * from t4;
+------+------+------+
| id   | name | sex  |
+------+------+------+
|    1 | tom  | male |
+------+------+------+
1 row in set (0.00 sec)#再插入一条
mysql> insert  into t2 values(1,'jack','female');
Query OK, 1 row affected (0.00 sec)mysql> select * from t2;
+------+------+--------+
| id   | name | sex    |
+------+------+--------+
|    1 | tom  | male   |
|    1 | jack | female |
+------+------+--------+
2 rows in set (0.00 sec)#加错了,删掉,使用delete删除
#语法:DELETE FROM table_name WHERE column_name = 'value';
#多条件匹配:DELETE FROM table_name WHERE column_name1 = 'value1' AND column_name2 = 'value2';
#操作:
mysql> delete from  t2 where name='jack';
Query OK, 1 row affected (0.00 sec)mysql> select * from t2;
+------+------+------+
| id   | name | sex  |
+------+------+------+
|    1 | tom  | male |
+------+------+------+
1 row in set (0.00 sec)
#允许为空null
mysql> create table t3(id int(5),name varchar(10),age int(5));
Query OK, 0 rows affected (0.00 sec)#查看表结构
mysql> desc t3;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(5)      | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(5)      | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)mysql> insert into t3(id,name) values(1,'tom');
Query OK, 1 row affected (0.00 sec)mysql> select * from t3;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    1 | tom  | NULL |
+------+------+------+
1 row in set (0.00 sec)
指定字符集:
#在创建表的最后面指定一下: default charset=utf8 
mysql> create  table  t4(id int(5)) default charset=utf8;
Query OK, 0 rows affected (0.01 sec)

3.5.默认约束

添加/删除默认约束

#创建一个表
mysql> create table user(id int not null, name varchar(20), number int, primary key(id));
Query OK, 0 rows affected (0.01 sec)mysql> describe user;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(20) | YES  |     | NULL    |       |
| number | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)#设置默认值,将number这个字段设置成:不给这个字段赋值时,默认为0,而不是为空
mysql> ALTER TABLE user ALTER number SET DEFAULT 0;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESCRIBE user;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(20) | YES  |     | NULL    |       |
| number | int(11)     | YES  |     | 0       |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)#将id这个字段设置成自增建
mysql> ALTER TABLE user CHANGE id id INT NOT NULL AUTO_INCREMENT;
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0#查看表结构
mysql> desc user;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20) | YES  |     | NULL    |                |
| number | int(11)     | YES  |     | 0       |                |
+--------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)#插入数据
mysql> INSERT INTO user(name) VALUES('rock'); 
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO user(name) VALUES('rock');
Query OK, 1 row affected (0.00 sec)mysql> select * from user;
+----+------+--------+
| id | name | number |
+----+------+--------+
|  1 | rock |      0 |
|  2 | rock |      0 |
+----+------+--------+
2 rows in set (0.00 sec)#如果我想自己填number的值,也是可以的
mysql> insert into user values('3','rock1','2');
Query OK, 1 row affected (0.00 sec)mysql> select * from user;
+----+-------+--------+
| id | name  | number |
+----+-------+--------+
|  1 | rock  |      0 |
|  2 | rock  |      0 |
|  3 | rock1 |      2 |
+----+-------+--------+
3 rows in set (0.00 sec)#不指定自增建的值,也是可以的,它会自动增加
mysql> insert into user(name,number) values('jack','4');
Query OK, 1 row affected (0.00 sec)mysql> select * from user;                            
+----+-------+--------+
| id | name  | number |
+----+-------+--------+
|  1 | rock  |      0 |
|  2 | rock  |      0 |
|  3 | rock1 |      2 |
|  4 | jack  |      4 |
+----+-------+--------+
4 rows in set (0.00 sec)#删除默认值
mysql> ALTER TABLE user ALTER number drop DEFAULT;#再次查看表结构
mysql> desc  user;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20) | YES  |     | NULL    |                |
| number | int(11)     | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
#就能看到number这个字段的Default为空了

相关文章:

MySQL数据库基本操作和完整性约束类型详解

目录 一、增删改查的sql语句二、表完整性约束1、表完整性约束的介绍2、常见的完整性约束类型3、表完整性约束实战操作3.1.主键primary key3.2.自增键auto_increment3.3.唯一键UNIQUE3.4.null与not null3.5.默认约束 一、增删改查的sql语句 SQL(Structured Query Lan…...

unity2022版本 实现加减进度条

简介 在现代游戏开发中,用户界面 (UI) 扮演着至关重要的角色,它不仅为玩家提供信息,还增强了游戏的可玩性。加减进度条是一种常见的UI元素,它可以用于显示游戏中的进度、倒计时、资源管理和其他关键信息。在这篇博客中&#xff0…...

COCO数据集中图像的caption读取到txt文件

annotations_trainval2017.zip import os import shutil import jsoncaptions_path r"G:\SketchDiffusion\Sketchycoco\Dataset\annotations\captions_train2017.json" # 读取json文件 with open(captions_path, r) as f1:dictortary json.load(f1)# 得到images和…...

再谈Java泛型

一.类型参数的约束 我们可以对泛型传进来的参数做一些约束,比如说 用extends表明传进来的参数类型必须是必须是某个类型的子类型或者本身 当然也可以用接口约束,也是用extends表明传进来的参数类型必须实现某个接口。用&连接,注意class…...

scss使用自定义函数实现单位像素随屏幕比例动态缩放

vue中通过变量和scss函数来动态实现动态缩放像素 简单来说就是比例缩小时&#xff0c;像素单位变大&#xff0c;从而字体大小相对不变&#xff0c;以下仅处理比例缩小的状况 自定义一个属性–size&#xff0c;初始值为1px template <template><div class"hom…...

Django 静态自定义化配置

STATIC # APP本地静态资源目录&#xff08;就APP对应的&#xff09; STATIC_URL "/static/"# 远程静态文件URL&#xff08;少用&#xff09; REMOTE_STATIC_URL# 外部引用静态文件目录&#xff08;外层的&#xff09; STATICFILES_DIRS [os.path.join(BASE_DIR, &…...

TensorFlow入门(十四、数据读取机制(1))

TensorFlow的数据读取方式 TensorFlow的数据读取方式共有三种,分别是: ①预加载数据(Preloaded data) 预加载数据的方式,其实就是静态图(Graph)的模式。即将数据直接内嵌到Graph中,再把Graph传入Session中运行。 示例代码如下: import tensorflow.compat.v1 as tf tf.disabl…...

hyperf框架WebSocket 服务

1&#xff1a;安装 composer require hyperf/websocket-server2&#xff1a;配置 Server 修改 config/autoload/server.php&#xff0c;增加以下配置。 return [servers > [[name > ws,type > Server::SERVER_WEBSOCKET,host > 0.0.0.0,port > 9502,sock_typ…...

前端模块化

当我们从公司招聘上看到要求模块化的内容。 能从这几个角度回答&#xff0c;就说明我们是懂模块化的。 1. 模块化的本意&#xff0c;是当遇到一个复杂项目的时候&#xff08;简单的不建议用&#xff09;&#xff0c;把这个复杂的问题拆分成相对独立的模块&#xff0c;降低程序…...

如何使用Docker轻松构建和管理应用程序(一)

如今Docker的使用已经非常普遍&#xff0c;特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务&#xff0c;从而到达弹性部署业务的能力。在云服务概念兴起之后&#xff0c;Docker的使用场景和范围进一步发展&#xff0c;如今在微服务架构越来越流行的情况下&a…...

uniapp 获取地理位置(uni#getLocation和高德sdk获取中文地址)

参考 https://uniapp.dcloud.net.cn/api/location/location.html https://ask.dcloud.net.cn/article/35070 1. uniapp api获取经纬度 uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&#xff1a; res.longitude);console.log(当前位…...

openmp 通用核心 学习 2 数据环境—任务-内存模型

目录 openmp 数据环境 子句&#xff1a; 在上述三个子句中也可以传入指针和数组 openmp 任务&#xff1a; openmp内存模型&#xff1a; openmp 数据环境 子句&#xff1a; shared(list) private(list)//默认构造 值未被初始化 对于图6-5&#xff1a; //File #1 int tm…...

Linux有哪些指令

Linux操作系统提供了许多指令&#xff0c;可以帮助用户进行各种操作。以下是一些常见的Linux指令&#xff1a; ls&#xff1a;列出当前目录下的文件和目录。cd&#xff1a;改变当前工作目录。pwd&#xff1a;显示当前工作目录。mkdir&#xff1a;创建新的目录。rm&#xff1a;…...

图扑 HT for Web 风格属性手册教程

图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎。HT for Web&#xff08;以下简称 HT&#xff09;图元的样式由其 Style 属性控制&#xff0c;并且不同类型图元的 Style 属性各不相同。为了方便查询和理解图元的 Style 属性&#xff0…...

oracle 数据库删除序列

oracle 数据库删除序列 要删除 Oracle 数据库中的序列&#xff0c;你可以使用以下的 SQL 命令&#xff1a; DROP SEQUENCE sequence_name;其中&#xff0c;sequence_name 是你想删除的序列的名称。你需要确保当前用户对序列拥有适当的权限。 请注意&#xff0c;删除序列将永…...

JAVA毕业设计098—基于Java+Springboot的在线教育课程视频(源码+数据库)

基于JavaSpringboot的在线教育课程视频(源码数据库)098 一、系统介绍 本系统分为管理员、教师、用户三种角色(角色菜单可自行分配) 用户功能&#xff1a; 注册、登录、课程搜索、视频观看、课程资料发布、资料浏览、用户中心、我的发布、通知信息、密码修改 教师功能&…...

如何在雷电模拟器上安装Magisk并加载movecert模块抓https包(二)

接来下在PC端安装和配置Charles&#xff0c;方法同下面链接&#xff0c;不再赘述。在模拟器上安装magisk实现Charles抓https包&#xff08;二&#xff09;_小小爬虾的博客-CSDN博客 一、记录下本机IP和代理端口 二、在手机模拟器上设置代理192.168.31.71:8888&#xff0c;设置…...

基于web的酒店客房管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 会员信息管理 客房信息管理 收藏客房管理 用户入住管理 客房清扫管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施…...

linux查看系统信息

Linux查看当前操作系统版本信息 cat /proc/version Linux version 2.6.32-696.el6.x86_64 (mockbuildc1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:05 UTC 2017 Linux查看版本当前操作系统内核信息 uname -a Linux…...

蓝牙官网demo的记录

目录 一、官网蓝牙demo 二、可以参考的博客带蓝牙demo 一、官网蓝牙demo 平常看android官网&#xff0c;发现有两个不同的文档地址&#xff1a; 连接 | Android 开源项目 | Android Open Source Project 蓝牙概览 | Connectivity | Android Developers 蓝牙demo在 …...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...

动态规划-1035.不相交的线-力扣(LeetCode)

一、题目解析 光看题目要求和例图&#xff0c;感觉这题好麻烦&#xff0c;直线不能相交啊&#xff0c;每个数字只属于一条连线啊等等&#xff0c;但我们结合题目所给的信息和例图的内容&#xff0c;这不就是最长公共子序列吗&#xff1f;&#xff0c;我们把最长公共子序列连线起…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...

标注工具核心架构分析——主窗口的图像显示

&#x1f3d7;️ 标注工具核心架构分析 &#x1f4cb; 系统概述 主要有两个核心类&#xff0c;采用经典的 Scene-View 架构模式&#xff1a; &#x1f3af; 核心类结构 1. AnnotationScene (QGraphicsScene子类) 主要负责标注场景的管理和交互 &#x1f527; 关键函数&…...