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

单多表查询练习

课堂代码练习

mysql> select * from t_heros;
+----+-----------+--------------+
| id | name      | books        |
+----+-----------+--------------+
|  1 | 孙悟空    | 西游记       |
|  2 | 猪八戒    | 西游记       |
|  3 | 林黛玉    | 红楼梦       |
|  4 | 贾宝玉    | 红楼梦       |
|  5 | 诸葛亮    | 三国演义     |
|  6 | 关羽      | 三国演义     |
|  7 | 宋江      | 水浒传       |
|  8 | 林冲      | 水浒传       |
+----+-----------+--------------+
8 rows in set (0.00 sec)增
mysql> insert into t_heros value("9","唐僧","西游记"),("10","赵云","三国演义");
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0
删
mysql> delete from t_heros where name="关羽";
Query OK, 1 row affected (0.01 sec)
查
mysql> select * from t_heros;
+----+-----------+--------------+
| id | name      | books        |
+----+-----------+--------------+
|  1 | 孙悟空    | 西游记       |
|  2 | 猪八戒    | 西游记       |
|  3 | 林黛玉    | 红楼梦       |
|  4 | 贾宝玉    | 红楼梦       |
|  5 | 诸葛亮    | 三国演义     |
|  7 | 宋江      | 水浒传       |
|  8 | 林冲      | 水浒传       |
|  9 | 唐僧      | 西游记       |
| 10 | 赵云      | 三国演义     |
+----+-----------+--------------+
9 rows in set (0.00 sec)

单表查询

mysql> INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生日期`) VALUES (101, 1001, '2015-5-4', 3500.00, '群众', '张三', '1990-7-1');
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生日期`) VALUES (101, 1002, '2017-2-6', 3200.00, '团员', '李四', '1997-2-8');
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1003, '2011-1-4', 8500.00, '党员', '王亮', '1983-6-8');
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1004, '2016-10-10', 5500.00, '群众', '赵六', '1994-9-5');
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1005, '2014-4-1', 4800.00, '党员', '钱七', '1992-12-30');
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1006, '2017-5-5', 4500.00, '党员', '孙八', '1996-9-2');
Query OK, 1 row affected (0.01 sec)
1、显示所有职工的基本信息。   
mysql> select * from worker;
+-----------+-----------+--------------+---------+--------------+--------+--------------+
| 部门号    | 职工号    | 工作时间     | 工资    | 政治面貌     | 姓名   | 出生日期     |
+-----------+-----------+--------------+---------+--------------+--------+--------------+
|       101 |      1001 | 2015-05-04   | 3500.00 | 群众         | 张三   | 1990-07-01   |
|       101 |      1002 | 2017-02-06   | 3200.00 | 团员         | 李四   | 1997-02-08   |
|       102 |      1003 | 2011-01-04   | 8500.00 | 党员         | 王亮   | 1983-06-08   |
|       102 |      1004 | 2016-10-10   | 5500.00 | 群众         | 赵六   | 1994-09-05   |
|       102 |      1005 | 2014-04-01   | 4800.00 | 党员         | 钱七   | 1992-12-30   |
|       102 |      1006 | 2017-05-05   | 4500.00 | 党员         | 孙八   | 1996-09-02   |
+-----------+-----------+--------------+---------+--------------+--------+--------------+
6 rows in set (0.00 sec)2、查询所有职工所属部门的部门号,不显示重复的部门号。  select distinct 部门号 from worker;
+-----------+
| 部门号    |
+-----------+
|       101 |
|       102 |
+-----------+
2 rows in set (0.00 sec)3、求出所有职工的人数。  
mysql> select count(*) as 人数 from worker;
+--------+
| 人数   |
+--------+
|      6 |
+--------+
1 row in set (0.01 sec)4、列出最高工和最低工资。 
mysql> select max(工资) as 最高工资,min(工资) as 最低工资 from worker;
+--------------+--------------+
| 最高工资     | 最低工资     |
+--------------+--------------+
|      8500.00 |      3200.00 |
+--------------+--------------+
1 row in set (0.00 sec)5、列出职工的平均工资和总工资。  
mysql> select avg(工资) as 平均工资,sum(工资) as 总工资 from worker;
+--------------+-----------+
| 平均工资     | 总工资    |
+--------------+-----------+
|  5000.000000 |  30000.00 |
+--------------+-----------+
1 row in set (0.00 sec)6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。 
mysql> create table 工作日期表(-> 职工号 int primary key,-> 姓名 varchar(50),-> 参加工作 date);
Query OK, 0 rows affected (0.02 sec)7、显示所有职工的年龄。
mysql> select 姓名,year(curdate())-year(出生日期) as 年龄 from worker;
+--------+--------+
| 姓名   | 年龄   |
+--------+--------+
| 张三   |     35 |
| 李四   |     28 |
| 王亮   |     42 |
| 赵六   |     31 |
| 钱七   |     33 |
| 孙八   |     29 |
+--------+--------+
6 rows in set (0.00 sec)8、列出所有姓李的职工的职工号、姓名和出生日期。
mysql> select 职工号,姓名,出生日期 from worker where 姓名 like "李%";
+-----------+--------+--------------+
| 职工号    | 姓名   | 出生日期     |
+-----------+--------+--------------+
|      1002 | 李四   | 1997-02-08   |
+-----------+--------+--------------+
1 row in set (0.00 sec)9、列出1960年以前出生的职工的姓名、参加工作日期。
mysql> select 姓名,工作时间 as 参加工作时间 from worker where year(出生日期) < 1990;
+--------+--------------------+
| 姓名   | 参加工作时间       |
+--------+--------------------+
| 王亮   | 2011-01-04         |
+--------+--------------------+
1 row in set (0.00 sec)10、列出工资在1000-2000之间的所有职工姓名。
mysql> select 姓名 from worker where 工资 >= 3000 and 工资 <= 5000;
+--------+
| 姓名   |
+--------+
| 张三   |
| 李四   |
| 钱七   |
| 孙八   |
+--------+
4 rows in set (0.00 sec)11、列出所有陈姓和李姓的职工姓名。
mysql> select 姓名 from worker where 姓名 like "陈%" or 姓名 like "李%";
+--------+
| 姓名   |
+--------+
| 李四   |
+--------+
1 row in set (0.00 sec)12、列出所有部门号为2和3的职工号、姓名、党员否。
mysql> select 职工号,姓名,政治面貌 from worker where 部门号 = 102 or 部门号 =  103;
+-----------+--------+--------------+
| 职工号    | 姓名   | 政治面貌     |
+-----------+--------+--------------+
|      1003 | 王亮   | 党员         |
|      1004 | 赵六   | 群众         |
|      1005 | 钱七   | 党员         |
|      1006 | 孙八   | 党员         |
+-----------+--------+--------------+
4 rows in set (0.00 sec)13、将职工表worker中的职工按出生的先后顺序排序。
mysql> select * from worker order by year(出生日期);
+-----------+-----------+--------------+---------+--------------+--------+--------------+
| 部门号    | 职工号    | 工作时间     | 工资    | 政治面貌     | 姓名   | 出生日期     |
+-----------+-----------+--------------+---------+--------------+--------+--------------+
|       102 |      1003 | 2011-01-04   | 8500.00 | 党员         | 王亮   | 1983-06-08   |
|       101 |      1001 | 2015-05-04   | 3500.00 | 群众         | 张三   | 1990-07-01   |
|       102 |      1005 | 2014-04-01   | 4800.00 | 党员         | 钱七   | 1992-12-30   |
|       102 |      1004 | 2016-10-10   | 5500.00 | 群众         | 赵六   | 1994-09-05   |
|       102 |      1006 | 2017-05-05   | 4500.00 | 党员         | 孙八   | 1996-09-02   |
|       101 |      1002 | 2017-02-06   | 3200.00 | 团员         | 李四   | 1997-02-08   |
+-----------+-----------+--------------+---------+--------------+--------+--------------+
6 rows in set (0.00 sec)14、显示工资最高的前3名职工的职工号和姓名。
mysql> select 职工号,姓名 from worker order by 工资 limit 3;
+-----------+--------+
| 职工号    | 姓名   |
+-----------+--------+
|      1002 | 李四   |
|      1001 | 张三   |
|      1006 | 孙八   |
+-----------+--------+
3 rows in set (0.00 sec)15、求出各部门党员的人数。 
mysql> select 部门号,count(*) as 党员人数 from worker where 政治面貌 = "党员" group by 部门号;
+-----------+--------------+
| 部门号    | 党员人数     |
+-----------+--------------+
|       102 |            3 |
+-----------+--------------+
1 row in set (0.01 sec)16、统计各部门的工资和平均工资
mysql> select 部门号,avg(工资) as 平均工资,sum(工资) as 总工资 from worker group by 部门号;
+-----------+--------------+-----------+
| 部门号    | 平均工资     | 总工资    |
+-----------+--------------+-----------+
|       101 |  3350.000000 |   6700.00 |
|       102 |  5825.000000 |  23300.00 |
+-----------+--------------+-----------+
2 rows in set (0.00 sec)17、列出总人数大于4的部门号和总人数。
mysql> select 部门号,count(*) from worker group by 部门号 having count(*) >= 4;
+-----------+----------+
| 部门号    | count(*) |
+-----------+----------+
|       102 |        4 |
+-----------+----------+
1 row in set (0.00 sec)

多表查询

1.创建 student 表
CREATE TABLE student (id INT(10) NOT NULL UNIQUE PRIMARY KEY,name VARCHAR(20) NOT NULL,sex VARCHAR(4),birth YEAR,department VARCHAR(20),address VARCHAR(50)
);创建 score 表
CREATE TABLE score (id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,stu_id INT(10) NOT NULL,c_name VARCHAR(20),grade INT(10),-- 添加外键约束,关联 student 表的 id 列FOREIGN KEY (stu_id) REFERENCES student(id),-- 添加唯一约束,确保每个学生的每门课程成绩唯一UNIQUE (stu_id, c_name)
);    
2.为student表和score表增加记录
向student表插入记录的INSERT语句如下:
INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');
INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');
INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市');
INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');
INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');
INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
向score表插入记录的INSERT语句如下:
INSERT INTO score VALUES(NULL,901, '计算机',98);
INSERT INTO score VALUES(NULL,901, '英语', 80);
INSERT INTO score VALUES(NULL,902, '计算机',65);
INSERT INTO score VALUES(NULL,902, '中文',88);
INSERT INTO score VALUES(NULL,903, '中文',95);
INSERT INTO score VALUES(NULL,904, '计算机',70);
INSERT INTO score VALUES(NULL,904, '英语',92);
INSERT INTO score VALUES(NULL,905, '英语',94);
INSERT INTO score VALUES(NULL,906, '计算机',90);
INSERT INTO score VALUES(NULL,906, '英语',85);3.查询student表的所有记录
mysql> select * from student;
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    | 男   |  1985 | 计算机系     | 北京市海淀区       |
| 902 | 张老二    | 男   |  1986 | 中文系       | 北京市昌平区       |
| 903 | 张三      | 女   |  1990 | 中文系       | 湖南省永州市       |
| 904 | 李四      | 男   |  1990 | 英语系       | 辽宁省阜新市       |
| 905 | 王五      | 女   |  1991 | 英语系       | 福建省厦门市       |
| 906 | 王六      | 男   |  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
6 rows in set (0.00 sec)4.查询student表的第2条到4条记录
mysql> select * from student limit 1,3;
+-----+-----------+------+-------+------------+--------------------+
| id  | name      | sex  | birth | department | address            |
+-----+-----------+------+-------+------------+--------------------+
| 902 | 张老二    | 男   |  1986 | 中文系     | 北京市昌平区       |
| 903 | 张三      | 女   |  1990 | 中文系     | 湖南省永州市       |
| 904 | 李四      | 男   |  1990 | 英语系     | 辽宁省阜新市       |
+-----+-----------+------+-------+------------+--------------------+
3 rows in set (0.00 sec)5.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
mysql> select id,name,department from student;
+-----+-----------+--------------+
| id  | name      | department   |
+-----+-----------+--------------+
| 901 | 张老大    | 计算机系     |
| 902 | 张老二    | 中文系       |
| 903 | 张三      | 中文系       |
| 904 | 李四      | 英语系       |
| 905 | 王五      | 英语系       |
| 906 | 王六      | 计算机系     |
+-----+-----------+--------------+
6 rows in set (0.00 sec)6.从student表中查询计算机系和英语系的学生的信息
mysql> select * from student where department = "计算机系" or department = "英语系";
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    | 男   |  1985 | 计算机系     | 北京市海淀区       |
| 904 | 李四      | 男   |  1990 | 英语系       | 辽宁省阜新市       |
| 905 | 王五      | 女   |  1991 | 英语系       | 福建省厦门市       |
| 906 | 王六      | 男   |  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
4 rows in set (0.00 sec)7.从student表中查询年龄18~22岁的学生信息
mysql> select * from student where year(curdate())-birth >= 18 and year(curdate())-birth <= 35;
+-----+--------+------+-------+------------+--------------------+
| id  | name   | sex  | birth | department | address            |
+-----+--------+------+-------+------------+--------------------+
| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市       |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市       |
| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市       |
+-----+--------+------+-------+------------+--------------------+
3 rows in set (0.00 sec)8.从student表中查询每个院系有多少人
mysql> select department,count(*) as 人数 from student group by department;
+--------------+--------+
| department   | 人数   |
+--------------+--------+
| 计算机系     |      2 |
| 中文系       |      2 |
| 英语系       |      2 |
+--------------+--------+
3 rows in set (0.00 sec)9.从score表中查询每个科目的最高分
mysql> select c_name as 科目,max(grade) as 最高分 from score group by c_name;
+-----------+-----------+
| 科目      | 最高分    |
+-----------+-----------+
| 计算机    |        98 |
| 英语      |        94 |
| 中文      |        95 |
+-----------+-----------+
3 rows in set (0.00 sec)10.查询李四的考试科目(c_name)和考试成绩(grade)
mysql> select c_name,grade from score where stu_id = (select id from student where name = "李四"
);
+-----------+-------+
| c_name    | grade |
+-----------+-------+
| 英语      |    92 |
| 计算机    |    70 |
+-----------+-------+
2 rows in set (0.00 sec)11.用连接的方式查询所有学生的信息和考试信息
mysql> select * from student left join score on student.id = score.stu_id;
+-----+-----------+------+-------+--------------+--------------------+------+--------+-----------+-------+
| id  | name      | sex  | birth | department   | address            | id   | stu_id | c_name    | grade |
+-----+-----------+------+-------+--------------+--------------------+------+--------+-----------+-------+
| 901 | 张老大    | 男   |  1985 | 计算机系     | 北京市海淀区       |    2 |    901 | 英语      |    80 |
| 901 | 张老大    | 男   |  1985 | 计算机系     | 北京市海淀区       |    1 |    901 | 计算机    |    98 |
| 902 | 张老二    | 男   |  1986 | 中文系       | 北京市昌平区       |    4 |    902 | 中文      |    88 |
| 902 | 张老二    | 男   |  1986 | 中文系       | 北京市昌平区       |    3 |    902 | 计算机    |    65 |
| 903 | 张三      | 女   |  1990 | 中文系       | 湖南省永州市       |    5 |    903 | 中文      |    95 |
| 904 | 李四      | 男   |  1990 | 英语系       | 辽宁省阜新市       |    7 |    904 | 英语      |    92 |
| 904 | 李四      | 男   |  1990 | 英语系       | 辽宁省阜新市       |    6 |    904 | 计算机    |    70 |
| 905 | 王五      | 女   |  1991 | 英语系       | 福建省厦门市       |    8 |    905 | 英语      |    94 |
| 906 | 王六      | 男   |  1988 | 计算机系     | 湖南省衡阳市       |   10 |    906 | 英语      |    85 |
| 906 | 王六      | 男   |  1988 | 计算机系     | 湖南省衡阳市       |    9 |    906 | 计算机    |    90 |
+-----+-----------+------+-------+--------------+--------------------+------+--------+-----------+-------+
10 rows in set (0.00 sec)12.计算每个学生的总成绩
mysql> select name,sum(grade) from student left join score on student.id = score.stu_id group bystudent.name;
+-----------+------------+
| name      | sum(grade) |
+-----------+------------+
| 张老大    |        178 |
| 张老二    |        153 |
| 张三      |         95 |
| 李四      |        162 |
| 王五      |         94 |
| 王六      |        175 |
+-----------+------------+
6 rows in set (0.00 sec)13.计算每个考试科目的平均成绩
mysql> select c_name,avg(grade) from student left join score on student.id = score.stu_id group
by c_name;
+-----------+------------+
| c_name    | avg(grade) |
+-----------+------------+
| 英语      |    87.7500 |
| 计算机    |    80.7500 |
| 中文      |    91.5000 |
+-----------+------------+
3 rows in set (0.00 sec)14.查询计算机成绩低于95的学生信息
mysql> select * from student left join score on student.id = score.stu_id where c_name = "计算机
" and grade < 95;
+-----+-----------+------+-------+--------------+--------------------+------+--------+-----------+-------+
| id  | name      | sex  | birth | department   | address            | id   | stu_id | c_name    | grade |
+-----+-----------+------+-------+--------------+--------------------+------+--------+-----------+-------+
| 902 | 张老二    | 男   |  1986 | 中文系       | 北京市昌平区       |    3 |    902 | 计算机    |    65 |
| 904 | 李四      | 男   |  1990 | 英语系       | 辽宁省阜新市       |    6 |    904 | 计算机    |    70 |
| 906 | 王六      | 男   |  1988 | 计算机系     | 湖南省衡阳市       |    9 |    906 | 计算机    |    90 |
+-----+-----------+------+-------+--------------+--------------------+------+--------+-----------+-------+
3 rows in set (0.00 sec)15.查询同时参加计算机和英语考试的学生的信息
mysql> select student.* from student where student.id in(select stu_id from score where c_name i
n ("计算机","英语") group by stu_id having count(distinct c_name) = 2);
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    | 男   |  1985 | 计算机系     | 北京市海淀区       |
| 904 | 李四      | 男   |  1990 | 英语系       | 辽宁省阜新市       |
| 906 | 王六      | 男   |  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
3 rows in set (0.00 sec)16.将计算机考试成绩按从高到低进行排序
mysql> select grade from student left join score on student.id = score.stu_id where c_name = "计算机" order by grade desc;
+-------+
| grade |
+-------+
|    98 |
|    90 |
|    70 |
|    65 |
+-------+
4 rows in set (0.00 sec)17.从student表和score表中查询出学生的学号,然后合并查询结果
mysql> select id as student_id from student union select stu_id as student_id from score;
+------------+
| student_id |
+------------+
|        901 |
|        902 |
|        903 |
|        904 |
|        905 |
|        906 |
+------------+
6 rows in set (0.00 sec)18.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
mysql> select s.name,s.department,sc.c_name,sc.grade from student s left join score sc on s.id =
sc.stu_id where s.name like "张%" or s.name like "王%";
+-----------+--------------+-----------+-------+
| name      | department   | c_name    | grade |
+-----------+--------------+-----------+-------+
| 张老大    | 计算机系     | 英语      |    80 |
| 张老大    | 计算机系     | 计算机    |    98 |
| 张老二    | 中文系       | 中文      |    88 |
| 张老二    | 中文系       | 计算机    |    65 |
| 张三      | 中文系       | 中文      |    95 |
| 王五      | 英语系       | 英语      |    94 |
| 王六      | 计算机系     | 英语      |    85 |
| 王六      | 计算机系     | 计算机    |    90 |
+-----------+--------------+-----------+-------+
8 rows in set (0.00 sec)19.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩
mysql> select s.name, (year(curdate()) - s.birth) as age, s.department, sc.c_name, sc.grade from student s left join score sc ON s.id = sc.stu_id where s.address like '湖南%';
+--------+------+--------------+-----------+-------+
| name   | age  | department   | c_name    | grade |
+--------+------+--------------+-----------+-------+
| 张三   |   35 | 中文系       | 中文      |    95 |
| 王六   |   37 | 计算机系     | 英语      |    85 |
| 王六   |   37 | 计算机系     | 计算机    |    90 |
+--------+------+--------------+-----------+-------+
3 rows in set (0.00 sec)

相关文章:

单多表查询练习

课堂代码练习 mysql> select * from t_heros; ----------------------------- | id | name | books | ----------------------------- | 1 | 孙悟空 | 西游记 | | 2 | 猪八戒 | 西游记 | | 3 | 林黛玉 | 红楼梦 | | 4 | 贾宝玉…...

SICAR标准 汽车焊装生产线触摸屏操作说明

目录 SIMATIC HMI 是西门子工业自动化解决方案的核心组件&#xff0c;支持实时设备监控与交互&#xff0c;文档中展示了其在焊装生产线中以SICAR标准为基础的具体应用&#xff0c;包括车型切换&#xff08;如 AY2/A26&#xff09;、KMC 夹具配置及能源效率分析&#xff0c;适用…...

Photoshop 2025安装教程包含下载安装包,2025最新版图文安装教程

文章目录 前言一、Photoshop 2025下载二、Photoshop 2025安装教程1. 安装包解压2. 找到安装程序3. 以管理员身份运行4. 安装选项设置5. 选择安装路径6. 开始安装7. 安装完成8. 启动软件9. 软件主界面 前言 无论你是专业设计师&#xff0c;还是刚接触图像处理的新手&#xff0c…...

SylixOS 中 select 原理及使用分析

1、select接口简介 1.1 select接口使用用例 select 是操作系统多路 I/O 复用技术实现的方式之一。 select 函数允许程序监视多个文件描述符&#xff0c;等待所监视的一个或者多个文件描述符变为“准备好”的状态。所谓的”准备好“状态是指&#xff1a;文件描述符不再是阻塞状…...

F1C200S编译

一、查看荔枝派Nano的分区内容 分成了两个分区 将第一个分区通过mount进行挂载&#xff0c;查看到内容包括&#xff1a;主要是dtb设备树和zImage压缩的内核。由于u-boot不是是通过dd指令传输到指定的位置&#xff0c;因此这里不显示。还有一个scr&#xff0c;这是一个uboot启动…...

边缘计算 vs. 云计算,谁才是工业物联网的未来?

前言 在物联网&#xff08;IoT&#xff09;飞速发展的今天&#xff0c;边缘计算正在彻底改变数据的处理、存储和分析方式。传统的IoT设备数据通常需要发送到云端进行处理&#xff0c;但随着设备数量的激增&#xff0c;这种模式在延迟、带宽和安全性方面暴露出诸多局限。边缘计…...

vue 使用v-model实现父子组件传值——子父组件同步更新

基于vue2和vue3两个版本的框架略显不同&#xff0c;所以我分开的来讲&#xff1a; 1、vue2 子组件&#xff08;my-input.vue&#xff09;&#xff1a; <template><input type"text" :value"name" input"inputChange" /> </tem…...

监控易运维在北京某医药集团数字新基建项目中的应用

随着信息技术的快速发展&#xff0c;企业数字化转型已成为当今时代的趋势。北京某医药公司作为一家知名的中医药企业&#xff0c;也在积极推进数字化建设。在数字新基建招标项目中&#xff0c;监控易管理平台 6.0 凭借其强大的功能和特点&#xff0c;成功中标&#xff0c;为医药…...

小智AI音频开发 libopus + Eclipse C/C++ MinGW 编解码测试用例

小智AI音频开发 libopus Eclipse C/C MinGW 编解码测试用例 目录 小智AI音频开发 libopus Eclipse C/C MinGW 编解码测试用例前言移植编解码测试libopus编码器的控制参数信号类型比特率带宽编码复杂度前向纠错声道不连续传输位深帧持续时长码率VBR约束应用类型 示例代码 前言…...

Spring Boot定时任务设置与实现

Spring Boot定时任务设置与实现 在Spring Boot中&#xff0c;可以使用Scheduled注解来创建定时任务。以下是一个简单的示例&#xff0c;展示了如何在项目启动后每5秒调用一次指定的方法。 1. 添加依赖 首先&#xff0c;确保你的pom.xml文件中包含Spring Boot的依赖&#xff…...

海康/大华/宇视/华为/汉邦/天地伟业/英飞拓/科达/中星微/同为/天视通等主流监控设备RTSP地址

RTSP协议是TCP/IP协议体系中的一个应用层协议&#xff0c;该协议主要规定了一对多应用程序如何有效地通过IP网络传送多媒体数据&#xff0c;特别适用于音视频数据的实时传输和控制。 目前监控市场厂家众多&#xff0c;各个厂家的RTSP地址格式不尽一致 以下是海康威视、大华股份…...

FreeRTOS 队列结构体 xQUEUE 深度解析

一、核心成员与功能设计 FreeRTOS 的队列结构体 xQUEUE 是任务间通信&#xff08;IPC&#xff09;的核心数据结构&#xff0c;通过统一的设计支持队列、信号量、互斥量等多种同步机制。其设计体现了 ​**"数据拷贝 结构复用"** 的理念&#xff0c;兼顾轻量化与扩展…...

system V 消息队列信息量(了解)

目录 system V 消息队列 消息队列的基本原理 消息队列数据结构 消息队列接口介绍 消息队列相关函数 消息队列的释放 向消息队列发送数据 向消息队列接收消息 System V 信号量 信号量相关概念 信号量的数据结构 信号量相关函数 进程互斥 system V IPC联系 system V…...

CSS rem、vw/vh、less

目录 分辨率、视口与二倍图 一、分辨率与像素基础 1. 物理像素&#xff08;Physical Pixels&#xff09; 2. 逻辑像素&#xff08;CSS 像素&#xff09; 二、视口&#xff08;Viewport&#xff09;控制 1. 视口类型 2. 设置理想视口 三、二倍图&#xff08;Retina/HiD…...

CHI协议——retry

一、核心目标 防止请求阻塞&#xff1a;当Completer暂时无法处理请求(比如tracker不够被占满)时&#xff0c;通过retry机制避免请求在 REQ Channel堆积&#xff0c;确保系统流畅运行。 retry机制只存在于REQ Channel&#xff0c;在DAT/RSP/SNP Channel不存在 二、Retry Flow…...

在linux部署网站

在Linux部署网站&#xff0c;需要准备一个纯净的系统 一、系统环境准备 1.设置静态IP地址 ‌ 2.关闭默认防火墙 systemctl disable firewalld --now ‌ 3.配置SSH密钥登录 4.yum update -y && reboot # 更新系统内核 5.yum install -y wget curl unzip # 安装…...

语义网是什么

语义网&#xff08;Semantic Web&#xff09;是由万维网发明者 蒂姆伯纳斯-李&#xff08;Tim Berners-Lee&#xff09; 在20世纪90年代末提出的概念&#xff0c;目标是让互联网上的数据不仅对人类可读&#xff0c;还能被机器自动理解、关联和推理。它通过为数据添加明确的语义…...

51单片机

本文来源&#xff1a;腾讯元宝 51单片机是对所有兼容Intel 8031指令系统的8位单片机的统称&#xff0c;其技术起源于1981年Intel推出的8051内核微控制器(Micro Control Unit)。作为嵌入式系统领域的经典代表&#xff0c;它具有以下核心特点和应用价值&#xff1a; 一、技术特…...

初2数学-1.勾股定理

复习勾股定理&#xff1a; 1. ; 2. ; 3. ; 4. 后面3个式子都是根据相似三角形对应边成比例推出来的。 第4个式子来做例子&#xff1a; 三角形CBD与三角形 ACD相似&#xff0c;所以&#xff1a; h:c2 c1 : h. 【例题] ABCD为菱形&#xff0c;边长为…...

Java条码与二维码生成技术详解

一、技术选型分析 1.1 条码生成方案 Barbecue是最成熟的Java条码库&#xff0c;支持&#xff1a; Code 128EAN-13/UPC-AUSPS Inteligent Mail等12种工业标准格式 1.2 二维码方案对比 库名称维护状态复杂度功能扩展性ZXing★★★★☆较高强QRGen★★★☆☆简单一般BoofCV★…...

Spring Boot 集成 Quartz 实现定时任务(Cron 表达式示例)

Spring Boot 集成 Quartz 实现定时任务&#xff08;Cron 表达式示例&#xff09; 前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Spring Boot 观察定时任务执行5. Quartz Cron 表达式详解6. 结论 前言 在 Spring Boot 项目中&#xff0c;我们经常…...

数智读书笔记系列025《智能医疗:医学人工智能的未来》

一、书籍概述与核心价值 1.1 书籍定位与影响力 《智能医疗:医学人工智能的未来》在智能医疗领域占据着独特且重要的位置,作为首部由德勤管理咨询引进的 AI 医疗译著,它宛如一座桥梁,连接了人工智能与生物医学这两个看似独立却又紧密关联的领域。在当下智能医疗蓬勃发展但…...

SQL Server 2022常见问题解答

以下是SQL Server 2022的常见问题解答,按主题分类整理: 一、安装与升级 SQL Server 2022的系统要求是什么? 支持的操作系统:Windows Server 2016及以上、Linux(Ubuntu 20.04/22.04, RHEL 8/9等)。内存:至少4GB(建议8GB+)。磁盘空间:6GB以上,具体取决于安装组件。如何…...

SQLAlchemy关键词搜索技术深度解析:从基础过滤到全文检索

在数据驱动的应用开发中&#xff0c;基于关键词的模糊查询是常见的业务需求。SQLAlchemy作为Python生态中最流行的ORM框架&#xff0c;提供了多种实现关键词搜索的技术方案。本文将从性能、适用场景和技术复杂度三个维度&#xff0c;系统对比分析SQLAlchemy中关键词搜索的最佳实…...

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析

一、React 15&#xff08;2016&#xff09; 核心架构&#xff1a;Stack Reconciler&#xff08;栈协调器&#xff09; 工作原理&#xff1a; 同步递归渲染&#xff1a;采用深度优先遍历方式递归处理 Virtual DOM&#xff0c;形成不可中断的调用栈渲染流程&#xff1a;1. 触发 …...

[Windows] Edge浏览器_134.0.3124.83绿色便携增强版-集成官方Deepseek侧边栏

微软Edge浏览器 绿色便携增强版 长期更新 链接&#xff1a;https://pan.xunlei.com/s/VOMA-aVC_GPJiv-MzRS89lsVA1?pwdemxj# Edge浏览器_134.0.3124.83绿色便携增强版-集成官方Deepseek侧边栏...

STM32学习笔记之存储器映射(原理篇)

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

探索PyMOL新插件NRGSuite-Qt:全面提升分子对接、结合位点预测与动力学模拟的研究效率

随着分子建模和计算生物学的快速发展&#xff0c;分子对接&#xff08;Molecular Docking&#xff09;、结合位点预测、相互作用分析以及动力学研究等领域的工具越来越重要。这些工具不仅帮助研究人员理解分子间的相互作用机制&#xff0c;还能加速药物设计和优化过程。NRGSuit…...

c#在work线程中怎样更新UI控件

最近笔者调试修改项目&#xff0c;碰到了c#在work线程中怎样更新UI控件中的场景&#xff0c;简单总结了下&#xff0c;主要有两个方法&#xff1a; 方法1&#xff1a;通过System.Windows.Application.Current.Dispatcher.Invoke来更新UI控件 System.Windows.Application.Curre…...

DeepSeek、Grok 与 ChatGPT 4.5:新一代大模型架构与推理能力深度解析

近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;领域发展迅猛&#xff0c;DeepSeek、Grok 以及 OpenAI 最新发布的 ChatGPT 4.5 都是该领域的代表性产品。本文将从架构设计、推理能力、训练策略等方面&#xff0c;对三者进行技术对比&#xff0c;探讨其优势与潜在的应…...

从零基础到 Java 网站项目开发学习规划​

在数字化时代&#xff0c;Java 凭借其卓越的跨平台性、强大的功能和丰富的类库&#xff0c;成为开发各类网站的主流编程语言。对于想要踏入 Java 网站开发领域的初学者而言&#xff0c;一份系统、科学的学习规划至关重要。它不仅能帮助我们有条不紊地掌握知识和技能&#xff0c…...

Unity Shader 学习17:合批渲染

一、基础概念 合批主要是针对这三个概念进行优化减少&#xff1a; ① SetPass Call&#xff1a;一次渲染状态切换&#xff0c;也就是每次切换 材质/Pass 时&#xff0c;就会触发一次SetPass Call ② Draw Call&#xff1a;cpu 调用一次 gpu 绘制函数 ③ Batch&#xff1a;表示…...

【JavaSE】抽象类和接口

【JavaSE】抽象类和接口 前言&#xff1a;补充知识 —— 利用类和对象&#xff0c;交换两个数字 一、抽象类1.1 抽象类是什么&#xff1f;1.2 抽象类特点1.3 抽象类举例1.4 抽象类作用 二、接口2.1 接口是什么&#xff1f;2.2 接口的特性2.3 接口的使用规则2.4 类可以实现多个接…...

嵌入式单片机程序的映像文件解读

映像文件类型 单片机下载程序的映像文件是包含了可执行代码、数据等信息,用于将程序烧录到单片机中的文件。常见的映像文件种类如下: 十六进制文件(Hex 文件) 格式特点:Hex 文件是一种文本格式的文件,以 ASCII 字符形式存储数据。它由一系列的记录组成,每条记录包含一个…...

在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服务器,并实现远程联机,详细教程

Linux 部署 MineCraft 服务器 详细教程&#xff08;丐版&#xff0c;无需云服务器&#xff09; 一、虚拟机 Ubuntu 部署二、下载 Minecraft 服务端三、安装 JRE 21四、安装 MCS manager 面板五、搭建服务器六、本地测试连接七、下载樱花&#xff0c;实现内网穿透&#xff0c;邀…...

STL之string

1.为什么学习string类 1.1 C语言中的字符串 C语言中&#xff0c;字符串是以’\0’结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c; 但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且…...

cJSON-轻量级 C 语言 JSON 解析库的使用(一)

文章目录 cJSON&#xff1a;轻量级 C 语言 JSON 解析库的使用前言一、cJSON 简介核心特点&#xff1a; 二、核心数据结构解析三、深入解析 API 设计1. 解析 JSON2. 访问数据3. 构建 JSON 四、内存管理策略五、高级应用技巧1. 引用系统2. 批量操作3. 原地修改 六、性能优化技巧1…...

用Python和Stable Diffusion生成AI动画:从图像到视频的全流程指南

引言 本文将演示如何通过Python代码实现基于文本提示的AI动画生成。我们将使用Stable Diffusion生成连贯图像帧,结合OpenCV合成视频,最终实现一个可自定义的动画生成 pipeline。 一、环境准备 1. 依赖安装 # 安装核心库 pip install diffusers transformers torch numpy …...

C++ 继承:面向对象编程的核心概念(二)

文章目录 5. 继承与友元6. 继承与静态成员7. 多继承及其菱形继承问题7.1 不同的继承方式7.2 虚继承 8. 继承和组合9. 总结 书接上回:C 继承&#xff1a;面向对象编程的核心概念&#xff08;一&#xff09; 5. 继承与友元 友元关系不能继承&#xff0c;也就是说基类友元不能访问…...

Chaos Mesh 混沌工程平台介绍、安装及使用指南

Chaos Mesh 混沌工程平台介绍、安装及使用指南 一、Chaos Mesh 简介 Chaos Mesh 是 PingCAP 开源的云原生混沌工程平台&#xff0c;支持在 Kubernetes 环境中模拟各种故障场景&#xff0c;帮助提升系统的容错性和可恢复性。 核心特性 丰富的故障类型&#xff1a; 资源类&…...

每天五分钟深度学习框架PyTorch:梯度裁剪解决RNN梯度爆炸的问题

本文重点 在循环神经网络训练的过程中,有时候很容易出现梯度爆炸的情况,如果出现这种问题,我们应该怎么办?本文先来分析一下为什么会出现这种情况,然后我们在给出解决方案 梯度爆炸的原因 我们从RNN训练的反向传播算法入手,当我们使用BPTT算法训练RNN的时候,它的公式…...

批量删除 PDF 中的所有图片、所有二维码图片以及指定的某张图片

PDF 文档中我们可以插入图片、文字等多种类型的资源。在某些场景下&#xff0c;可能我们需要删除 PDF 文档中的图片&#xff0c;有可能是需要删除所有的图片&#xff0c;也有可能是删除固定的某些图片。那碰到这种情况&#xff0c;我们应该怎么处理呢&#xff1f;今天就给大家介…...

力扣HOT100之普通数组:53. 最大子数组和

这道题目我用贪心做的&#xff0c;感觉用贪心的思路比较简单&#xff0c;以后要是面试碰到这道题就直接用贪心好了&#xff0c;这道题用贪心的核心思想就是不断将数组元素i加入总和sum&#xff0c;如果sum比当前维护的最大值result更大&#xff0c;说明当前遍历到的i是正数&…...

【Qt】C++前向声明与Qt信号与槽的区别

相同点&#xff1a;二者都可以解决头文件相互包含的问题 一、C 前向声明 概念&#xff1a;前向声明是在代码里仅仅声明一个类、函数或者变量&#xff0c;而不给出其完整定义。例如class MyClass; 就是对 MyClass 类的前向声明。 作用&#xff1a;主要是为了降低编译依赖&…...

SQL-木马植入、报错注入及其他

一、读写权限确认 show global variables like %secure%; 查看mysql全局变量的配置&#xff0c;当输入以上命令时&#xff0c;结果 secure_file_priv 空的时候&#xff0c;任意读写 secure_file_priv 某个路径的时候&#xff0c;只能在规定的那个路径下读写 secure_file_pri…...

基于 PHP 内置类及函数的免杀 WebShell

前言 PHP 作为广泛使用的服务端语言&#xff0c;其灵活的内置类&#xff08;如 DOMDocument&#xff09;和文件操作机制&#xff08;.ini、.inc 的自动加载&#xff09;&#xff0c;为攻击者提供了天然的隐蔽通道。通过 动态函数拼接、反射调用、加密混淆 和 伪命名空间 等手法…...

主键id设计

主键自增id &#x1f331; 1. 自增 ID&#xff08;Auto Increment ID&#xff09; ✅ 特点&#xff1a; • 数据库自带&#xff08;MySQL, PostgreSQL 都支持&#xff09; • 简单易用&#xff0c;可读性强 • 一般作为主键自带聚簇索引&#xff08;主键就是物理存储顺序&…...

文件上传绕过的小点总结(6)

14.文件上传&#xff08;文件包含漏洞&#xff09;二次渲染 很多服务器为了防止代码嵌入图片&#xff0c;通常会将上传的图片进行重新生成处理&#xff0c;包括文件格式转换等等&#xff0c;嵌入的恶意代码很容易被改掉。于是产生了二次渲染&#xff0c;二次渲染的原理就是找到…...

传统应用容器化迁移实践

背景介绍&#xff1a;从传统部署到容器化迁移的必要性 在过去的运维工作中&#xff0c;某企业一直依赖于传统的物理机和虚拟机部署方式。然而&#xff0c;随着业务的快速发展和应用规模的不断扩大&#xff0c;传统部署方式的局限性逐渐显现&#xff1a; 资源利用率低&#xf…...

混境之地1

问题描述 小蓝有一天误入了一个混境之地。 好消息是&#xff1a;他误打误撞拿到了一张地图&#xff0c;并从中获取到以下信息&#xff1a; 混境之地的大小为 n⋅mn⋅m&#xff0c;其中 # 表示这个位置很危险&#xff0c;无法通行&#xff0c;. 表示道路&#xff0c;可以通行。他…...