8月23日上课内容 第二章 MySQL数据库管理

news2024/11/17 5:20:36

本章结构:

数据库基本操作

查看数据库的结构

 

 

查看数据库列表信息
show database
查看数据库中的表信息 use 数据库名#切换到数据库中
show tables
show tables in mysgl

显示数据表的结构(字段)
describe user;

 

Field:字段名称type: 数据类型Nul1 :是否允许为空Key :主键
Type: 数据类型
Nu11 :是否允许为空
key :主键
Default :默认值
Extra :扩展属性,例如:标志符列 (标识了种子,增量/步长) 1 2
id:r 1 3 5 7
 

常用的数据类型:
int:整型                        用于定义整数类型的数据
float:单精度浮点4字节32位        准确表示到小数点后六位        
double:双精度浮点8字节64位
char:固定长度的字符类型        用于定义字符类型数据。
varchar:可变长度的字符类型        
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位        指定长度数组
#Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

主键是唯一的,但主键可以由多个字段构成

MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“.frm”、“.MYD”和“.MYI”。

MYD”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。

“.MYI”文件也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息。对于 MyISAM 存储来说,可以被 cache 的内容主要就是来源于“.MYI”文件中。每一个MyISAM 表对应一个“.MYI”文件,存放于位置和“.frm”以及“.MYD”一样。

MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件
(frm,myd,myi)。 每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI 文件中。

另外还有“.ibd”和 ibdata 文件,这两种文件都是用来存放 Innodb 数据的,之所以有两种文件来存放 Innodb 的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储 方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata  文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。
 

SQL语句概述

SQL语言
Structured Query Language的缩写,即结构化查询语言

关系型数据库的标准语言
用于维护管理数据库
    包括数据查询、数据更新、访问控制、对象管理等功能

SQL语言分类:

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

DDL:
 

create

drop

alter

1、使用DDL语句新建库、表
 

创建新的数据库
CREATE DATABASE 数据库名;

创建新的表
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

例:

mysql> use auth;
Database changed
mysql> create table users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));


mysql> create table ky (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', level CHAR(16) NOT NULL, PRIMARY KEY (user_name));
 

#NOT NULL   不允许为空值
#DEFAULT''  默认值为空

PRIMARY KEY :主键一般选择没有重复并且不为空值的字段

 

 

 

2、使用DDL语句删除库、表 

●删除指定的数据表:DROP TABLE [数据库名.]表名
mysql> drop table auth.users;
Query OK, 0 rows affected (0.00 sec)

●删除指定的数据库 :DROP DATABASE 数据库名
mysql> drop database auth;
Query OK, 0 rows affected (0.00 sec)

 

DML操作命令

DML语句用于对表中的数据进行管理
包括以下操作
INSERT:插入新数据
UPDATE :更新原有数据
DELETE :删除不需要的数据

向数据表中插入新的数据记录


INSERT INTO 表名(字段1, 字段2, ……)  VALUES(字段1的值, 字段2的值, ……) 
insert into users(user_name,user_passwd) values('zhangsan', password('123456'));     ###标准使用方法
insert into users values('lisi', password('123456')); ###如果这条记录包含表中所有字段的值,则插入语句中的制定字段可以省略


mysql> create database auth;    ###刚才删掉了,现在要创建了
Query OK, 1 row affected (0.00 sec)

mysql> use auth;                     ###进入数据库
Database changed
mysql> create table users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));    #创建一个表
Query OK, 0 rows affected (0.01 sec)

mysql> insert into users(user_name,user_passwd) values('zhangsan', password('123456'));    #在表种插入张三   密码123456
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql>  insert into users values('lisi', password('123456'));
Query OK, 1 row affected, 1 warning (0.00 sec)

 

 

修改、更新数据表中的数据记录 


UPDATE 表名 SET 字段名1=值1[,字段名2=值2]  WHERE 条件表达式
mysql> update auth.users set user_passwd=password('abc123') where user_name='lisi';
Query OK, 0 rows affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 0  Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

刷新信息:操作操作原本是保存在内存中的,刷新后就保存到硬盘中去了

###修改root密码###
update mysql.user set authentication_string=PASSWORD('abc123') where User='root';   ####mysql5.7版本修改root的命令

 

在数据表中删除指定的数据记录

格式:
DELETE FROM 表名 [WHERE 条件表达式];

例:

mysql> delete from auth.users where user_name='lisi';
Query OK, 1 row affected (0.00 sec)

mysql> select * from auth.users; 
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

DQL语句操作

DQL是数据查询语句,只有一条:SELECT
用于从数据表中查找符合条件的数据记录

 
从数据表中查找符合条件的数据记录 

SELECT 字段名1,字段名2 …… FROM 表名 WHERE 条件表达式
select * from auth.users;

select user_name,user_passwd from auth.users where user_name='zhangsan';
######列子######
mysql> select * from auth.users;                                    ###查看数据库auth中users表中所有的数据,这边用通配符*表示所有
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)
######例子######
mysql> select user_name,user_passwd from auth.users where user_name='zhangsan';        ####查看数据库auth的users表中zhangsan 数据   
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
####
mysql> select * from auth.users;                                        
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)


 

数据库表高级操作


关于数据库表的一些基础操作,比如:创建表、删除表、表的 查询等等。数据表在数据库的使用过程中,
有着很高的使用频率,所以本节会讲解些关于 表的升级用法,包括清空表、使用临时表和克隆表。


1、清空列表


清空一个数据表就是删除这个表内的所有数据。前面的小节已经学习过 DELETE FROM 语句,可以删除表内的数据,
除此之外还可以使用 TRUNCATE TABLE 语句实现清 空表内记录。DELETE FROM 语句可以使用 WHERE 子句对删除
的结果集进行过滤选择, 这样更方便、更灵活。TRUNCATE TABLE 语句是删除表中所有记录数据,没法定制,灵活
性上稍差。清空表的具体操作

例: 

create table ky (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', level CHAR(16) NOT NULL, PRIMARY KEY (user_name));

insert into ky values('lisi', password('123456'),'10');
insert into ky  values('lisi1', password('123456'),'45');
insert into ky  values('lisi2', password('123456'),'46');
insert into ky  values('lisi3', password('123456'),'47');
insert into ky  values('lisi4', password('123456'),'48');
insert into ky  values('lisi5', password('123456'),'49');
insert into ky  values('lisi6', password('123456'),'50');
insert into ky  values('lisi7', password('123456'),'1');


mysql> show tables;
+----------------+
| Tables_in_auth |
+----------------+
| ky             |
| ky05           |
| tmp            |
| tmp1           |
| tmp3           |
| users          |
+----------------+
6 rows in set (0.00 sec)

mysql> select * from ky;
+-----------+-------------------------------------------+-------+
| user_name | user_passwd                               | level |
+-----------+-------------------------------------------+-------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 10    |
| lisi1     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 45    |
| lisi2     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 46    |
| lisi3     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 47    |
| lisi4     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 48    |
| lisi5     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 49    |
| lisi6     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 50    |
| lisi7     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 1     |
+-----------+-------------------------------------------+-------+
8 rows in set (0.00 sec)

mysql> delete from ky where level >=45;
Query OK, 6 rows affected (0.00 sec)

mysql> select * from ky;
+-----------+-------------------------------------------+-------+
| user_name | user_passwd                               | level |
+-----------+-------------------------------------------+-------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 10    |
| lisi7     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 1     |
+-----------+-------------------------------------------+-------+
2 rows in set (0.00 sec)

mysql>  truncate table ky;
Query OK, 2 rows affected (0.00 sec)

mysql> select * from ky;
Empty set (0.00 sec)

先创建一个表,往表里面插入数据

有条件的清空,指定数据

清空表中的所有数据(慎用)

 

 

2.临时表


MySQL 的临时表,顾名思义,就是临时建立的表,并不会长期存在,主要用于保存一 些临时数据。临时表有个特性,
就是只在当前连接可见,当前连接下可执行增删改查等操作, 当连接被关闭后,临时表就会被 MySQL 删除,相关的资源也会被释放。 
下面创建临时表 mytmp,然后插入数据,之后断开当前连接,最后重新连到 MySQL 查看临时是否还存在,具体操作如下


mysql>CREATE TEMPORARY TABLE `mytmp` (`id` int(10) NOT NULL AUTO_INCREMENT,`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`level` int(10) NOT NULL,PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


insert into mytmp(name,level) values('aa',10);

select * from mytmp;

退出数据库

mysql -uroot -p

mysql> use auth;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from mytmp;
ERROR 1146 (42S02): Table 'auth.mytmp' doesn't exist

建立一个临时表,插入数据

退出数据库,再进数据库,查看一下表格

 

3、克隆表


在 MySQL 的开发和维护过程中,会有原样拷贝某个数据表的需求。怎么样才能够快速、 完整的拷贝数据表呢?
先来看一下 CREATE TABLE new_tablename AS SELECT 这个语 句,具体实现的 SQL 语句如下

建立基础环境:
mysql> select * from mytmp;
ERROR 1146 (42S02): Table 'auth.mytmp' doesn't exist
mysql> ^C
mysql> select * from ky;
Empty set (0.00 sec)

mysql> insert into ky values('lisi', password('123456'),'10');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi1', password('123456'),'45');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi2', password('123456'),'46');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi3', password('123456'),'47');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi4', password('123456'),'48');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi5', password('123456'),'49');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi6', password('123456'),'50');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into ky  values('lisi7', password('123456'),'1');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> 
mysql> drop table tmp;
Query OK, 0 rows affected (0.00 sec)

mysql> create table tmp as select * from ky;
Query OK, 8 rows affected (0.01 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql> select count(*) from tmp;
+----------+
| count(*) |
+----------+
|        8 |
+----------+
1 row in set (0.00 sec)

建立基础环境:

 

克隆表:

mysql> use auth;
Database changed
mysql> create table tmp like users;        ###通过 LIKE 方法,复制users表生成 tmp 表
Query OK, 0 rows affected (0.00 sec)

mysql> describe tmp;            ###表的结构
+-------------+----------+------+-----+---------+-------+
| Field       | Type     | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| user_name   | char(16) | NO   | PRI | NULL    |       |
| user_passwd | char(48) | YES  |     |         |       |
+-------------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> select * from auth.tmp    ;        ###查询表的数据

Empty set (0.00 sec)


mysql> select * from users;            ###查询users表数据,准备导入tmp表中
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

mysql> insert into tmp select * from users;    ###将users表数据导入tmp中
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select * from tmp;            ###查询tmp中数据
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from ky;
+-----------+-------------------------------------------+-------+
| user_name | user_passwd                               | level |
+-----------+-------------------------------------------+-------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 10    |
| lisi1     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 45    |
| lisi2     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 46    |
| lisi3     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 47    |
| lisi4     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 48    |
| lisi5     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 49    |
| lisi6     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 50    |
| lisi7     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 1     |
+-----------+-------------------------------------------+-------+
8 rows in set (0.00 sec)

mysql> truncate table ky;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from ky;
Empty set (0.00 sec)

通过like的方式克隆表

SHOW CREATE TABLE 方法

mysql> show create table ky\G
1. row ***************************
       Table: ky
Create Table: CREATE TABLE "ky" (
  "user_name" char(16) NOT NULL,
  "user_passwd" char(48) DEFAULT '',
  "level" char(16) NOT NULL,
  PRIMARY KEY ("user_name")
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

CREATE TABLE test2 AS SELECT * FROM  test1;

CREATE TABLE test3 ("user_name" char(16) NOT NULL,"user_passwd" char(48) DEFAULT '',"level" char(16) NOT NULL,PRIMARY KEY ("user_name")) ENGINE=InnoDB DEFAULT CHARSET=utf8

insert into test3 select * from ky;

select * from test3;

创建新表格,复制白色的部分

注意:不能有空行,否则会报错

查看一下表格是否存在,再导入数据

 

数据库用户授权

 

DCL语句操作

############################
设置用户权限(用户不存在时,则新建用户)
GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码’ ]
grant select on auth.* to 'xiaoqi'@'localhost' identified by '123456';
######例子####
mysql> grant select on auth.* to 'xiaoqi'@'localhost' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;                         
Query OK, 0 rows affected (0.00 sec)


######退出mysql用xiaoqi账户登录####
[root@localhost ~]# mysql -u xiaoqi -p                  ##登录
Enter password:                                                        ##输入密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>                                                                     ###已经登录

#######验证xiaoqi#####
mysql> select * from auth.users;                              ###验证授权的访问操作
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

mysql> drop table auth.users;                                ####验证非授权的访问操作
ERROR 1142 (42000): DROP command denied to user 'xiaoqi'@'localhost' for table 'users'

########创建bdqn数据库,授权192.168.100.1的主机连接,用户名为dbuser 密码为pwd@123允许bdqn库中操作###
create database bdqn;
grant all on auth.* to 'dbuser'@'192.168.100.%' identified by 'pwd@123';
grant create on bdqn.* to 'dbuser'@'192.168.100.1' identified by 'pwd@123';
#######列子####3
mysql> create database bdqn;                                          ####创建bdqn数据库
Query OK, 1 row affected (0.02 sec)

mysql> grant all on bdqn.* to 'dbuser'@'192.168.100.1' identified by 'pwd@123';                 ###做授权###
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants;            #查看授权情况


############################
查看用户的权限
SHOW GRANTS FOR 用户名@来源地址
######列子####

mysql> show grants for 'dbuser'@'192.168.100.1';                            ####查看用户的权限
+--------------------------------------------------------------+
| Grants for dbuser@192.168.100.1                              |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dbuser'@'192.168.100.1'               |
| GRANT ALL PRIVILEGES ON "bdqn".* TO 'dbuser'@'192.168.100.1' |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)


revoke all on bdqn.* from 'xiaoqi'@'localhost';

############################
撤销用户的权限
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
revoke all on bdqn.* from 'dbuser'@'192.168.100.1';
#####列子####
mysql> revoke all on bdqn.* from 'dbuser'@'192.168.32.2';
Query OK, 0 rows affected (0.00 sec)


mysql> show grants for 'dbuser'@'192.168.100.1';
+------------------------------------------------+
| Grants for dbuser@192.168.100.1                |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'dbuser'@'192.168.100.1' |
+------------------------------------------------+
1 row in set (0.00 sec)

对xiaoqi进行授权

 

远程授权

先看端口

此时不能远程登录,没授权 

授权

grant select on auth.* to 'xiaoqi'@'%' identified by '123456'

撤销授权

REVOKE all ON auth.* FROM 'xiaoqi' @'localhost';

查看授权信息

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++多种情况不同概率下,在范围内使用随机数

多种情况不同概率下,在范围内使用随机数。比如有5种情况,每种情况的概率不相同,有的概率为25,有的为15. 使用random库的函数来生成随机数。 std::random_device rd; //产生随机数种子 std::mt19937 gen(rd()); //生成伪随机数&a…

VScode 编辑器报错: ‘HelloWorld‘ is declared but its value is never read.

.vue文件被标识红色波浪线;提示: HelloWorld is declared but its value is never read. 问题原因: 因为vue3已经不支持vetur插件。 1、在扩展里面进行搜索Vetur插件,进行禁用或卸载; 2、在 VScode扩展里面搜索并下载…

NO.08 MyBatis创建逆向工程

目录 1、前言 2、添加依赖和插件 3、创建MyBatis的核心配置文件 4、创建逆向工程的配置文件 5、执行MBG插件的generate目标 1、前言 工程的创建有正向工程和逆向工程之分。正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表,如…

Vue3+Pinia+Koa+Three.js 全栈电商项目总结复盘

前言 前几天一个朋友去义乌旅游,带回来很多小商品,就是一整个物美价廉,但是为什么线下购物和网购有的时候差别这么大(网购经常要退换货啊😭😭😭),为此我萌生了一个想法&…

SQL注入之宽字节注入

文章目录 宽字节注入是什么?注入练习让转义符失效联合查询 代码审计 宽字节注入是什么? 宽字节注入准确来说不是注入手法,而是另外一种比较特殊的情况。宽字节注入的目的是绕过单双引号转义。 宽字节注入是一种绕过单双引号转义的手段&#x…

数学——七桥问题——图论

当涉及数学,有很多不同的话题可以讨论。你是否有特定的数学领域、概念或问题想要了解更多?以下是一些常见的数学领域和主题,你可以选择一个或者告诉我你感兴趣的具体内容,我将很乐意为你提供更多信息: 代数学&#xff…

嵌入式Linux开发实操(十):ADC接口开发

#前言 ADC就是模数转换,可以用来接一些模拟量设备,所谓模拟量就是波形不是方波而是各种包络形状的波形的信号,比如电压、电流等电信号或压力、温度、湿度、位移、声音等非电信号,ADC就是将这些信号转换为数字方波信号,以便于信息传递的。 #ADC硬件设计 key按键连接了AD…

高学历就不会“造假”?

一直以来,学历都是职场的敲门砖,也是一个门槛。对企业的雇佣决策而言,学历有着重要的参考价值。 但是总有一小部分求职者,存在侥幸心理,想凭借假学历升职加薪、牟取利益,给企业带来不少的潜在用工风险。倒…

服务器Linux系统配置mysql数据库主从自动备份

服务器Linux系统配置mysql数据库主从自动备份 当数据内容越来越多的时候,数据库也变得越来越大了。如果不小心误删了,或者被黑主机了,那就什么都没有了。所以数据库的数据怎么能让它不丢失做到万无一失变得尤为重要! 我是艾西&a…

(动态规划) 剑指 Offer 47. 礼物的最大价值 ——【Leetcode每日一题】

❓ 剑指 Offer 47. 礼物的最大价值 难度:中等 在一个 m * n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。 你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋…

【应用层】网络基础 -- HTTP协议

再谈协议HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderHTTP周边会话保持 再谈协议 协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的&am…

排序—数据结构

文章目录 1.前置知识1.1稳定性1.2内部排序和外部排序1.3是不是比较的排序 2.直接插入排序2.1思想2.2实现2.3时间复杂度和空间复杂度、稳定性 3.希尔排序3.1思想3.2实现3.3时间复杂度和空间复杂度、稳定性 4.选择排序4.1思想4.2实现4.3时间复杂度和空间复杂度、稳定性 5.堆排序5…

基于卷积神经网络的种子等级识别

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 基于GUI的卷积神经网络和长短期神经网络的语音识别系统 代码下载链接:基于MATLABGUI编程的卷积神经网络和长短期神经网络语音识别系统…

【python零基础入门学习】python基础篇(一)

python基础学习 官方: www.python.org,自行安装,linux上有自带python,win自行安装。 [studentroom9pc01 05]$ python --version Python 2.7.5 #创建虚拟环境: [rootroom9pc01 bin]# pwd /root/nsd1907/bin [rootroom9pc01 bin]…

高质量编程与性能调优实践 性能分析工具pprof

01 高质量编程 1.1 简介 什么是高质量 ——编写的代码能够达到正确可靠、简洁清晰的目标可称之为高质量代码 • 各种边界条件是否考虑完备 • 异常情况处理,稳定性保证 • 易读易维护 编程原则 实际应用场景千变万化,各种语言的特性和语法各不相同 但是高…

1267. 统计参与通信的服务器

这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务…

浪涌保护器防雷应用的行业解决方案

浪涌保护器SPD是一种用于防止电力系统或电子设备受到雷击或其他暂态过电压的损坏的装置。它可以有效地限制或分流过电压,保护被保护设备的安全和正常运行。浪涌保护器在各个行业领域都有广泛的应用,地凯科技将介绍浪涌保护器的主要应用领域,以…

threejs纹理加载(二)

通过threejs提供的加载器我们去加载一些贴图作为几何体的纹理&#xff0c;非常方便。我们以本地一张图片作为例子来实现这个效果&#xff1a; <template><div></div> </template> <script setup> import { ref } from "vue";import …

C++ 编译报错“jump to label”

C 编译报错“jump to label” 分析解决方法如何在Eclipse中添加编译选项 分析 void func() {int a 0;a;goto label; label:int b 0;return; }这样的代码是有问题的&#xff0c;因为C编译规则中&#xff0c;不允许goto后面还有新的变量声明。 解决方法 将所有变量声明放到第…