MYSQL之查询篇

【MySQL】MySQL 查询 外连接(OUTER JOIN):外连接分三类,左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN)。其中,若员工department_id与location_id为1800的department_id相同,则location为’Canada’,其余则为’USA’。在SQL的笛卡尔积(交叉连接)有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积。内连接(INNER JOIN):返回连接表中符合连接条件和查询条件的数据行, 阅读详情

2. 数据库操作

数据库在创建以后最常见的操作便是查询

2.1 查询

为了便于学习和理解,我们预先准备了两个表分别是stduents表和classes表两个表的内容和结构如下所示
students表的内容:

idclass_idnamegenderscore
11小明M90
21小红F95
31小军M88
41小米F73
52小白F81
62小兵M55
72小林M85
83小新F91
93小王M89
103小丽F85

创建students表的SQL命令:

/*创建表的sql语句*/
CREATE TABLE students (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `class_id` int(11) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL,
  `gender` char(1) DEFAULT NULL,
  `score` int(3) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*插入测试数据*/
INSERT INTO `students` VALUES ('1', '1', '小明', 'M', '90');
INSERT INTO `students` VALUES ('2', '1', '小红', 'F', '95');
INSERT INTO `students` VALUES ('3', '1', '小军', 'M', '88');
INSERT INTO `students` VALUES ('4', '1', '小米', 'F', '73');
INSERT INTO `students` VALUES ('5', '2', '小白', 'F', '81');
INSERT INTO `students` VALUES ('6', '2', '小兵', 'M', '55');
INSERT INTO `students` VALUES ('7', '2', '小林', 'M', '85');
INSERT INTO `students` VALUES ('8', '3', '小新', 'F', '91');
INSERT INTO `students` VALUES ('9', '3', '小王', 'M', '89');
INSERT INTO `students` VALUES ('10', '3', '小丽', 'F', '85');

classes表的内容和结构:

idname
1一班
2二班
3三班
4四班

创建classes表的SQL命令:

/*创建表的sql语句*/
CREATE TABLE `classes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(5) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
/*插入测试数据*/

2.1.1基本查询

查询数据库中某个表的所有内容:

SELECT * FORM <table_name>

例如查询students表中的所有内容
查询students表中的所有内容

注意:
对于select语句来说,并不一定非要有from子句,例如如下语句

select 1+2;

上述查询会直接计算出表达式的结果。虽然SELECT可以用作计算,但它并不是SQL的强项。但是,不带FROM子句的SELECT语句有一个有用的用途,就是用来判断当前到数据库的连接是否有效。许多检测工具会执行一条SELECT 1;来测试数据库连接。

2.1.2 条件查询

定义:
大部分情况下,我们查询一张表的时候并不想获取一张表中的所有内容,而是想从所有记录筛选出我们所需要,此时便需要我们在查询过程中对查询条件进行限制,这边是条件查询
条件查询的语法:

SELECT * FROM <表名> WHERE <条件表达式>

例如查询students表中分数大于等于80 (score>=80)的学生信息
查询分数大于等于80的学生信息sql命令

 SELECT * FROM students WHERE score >= 80;

查询结果
条件查询

条件表达式中常用的查询条件有如下这些

查询条件谓词
比较=,>,<,>=,<=,!=,<>,!>,!<;NOT+前边的比较符
确定范围BETWEEN AND,NOT BETWEEN AND
确定集合IN,NOT IN
字符匹配LIKE,NOT LIKE
空值IS NULL,IS NOT NULL
多重条件(逻辑运算)AND,OR,NOT
2.1.3 多重条件查询

在实际生产过程中我们查询一个表可能查询条件并不仅仅只有一个,此时我们便需要AND、OR和NOT来进行连接和限定。
<条件一> AND <条件二>:查询结果既需要满足<条件一>同时也需要满足<条件二>。
例如查询分数大于等于60且小于80的学生信息:

SELECT * FROM students WHERE score >=60 and score < 80; 

查询结果:

<条件一> OR <条件二>:查询结果需要满足条件一或者条件二。
例如查询分数小于60或者大于等于80的学生信息:

select * from students where score <60 or score >= 80;

查询结果:

select * from students where score = 90;
select * from students where NOT score = 90;

查询结果:

2.2 投影查询

有时我们在查询一个表时,可能并不需要所有表的信息,而只是需要一个表的部分列,此时我们便可以通过SELECT 列1, 列2, 列3 FROM ...,让结果集仅包含指定列。这种操作称为投影查询。
eg:查询所有学生的姓名和班级信息

select name,class_id from students;

查询结果:

同时在查询过程中我们可以对查询后的属性名称设计别名,并且也可以指定结果列的顺序(可以和原表的顺序不同)。
使用SELECT 列1, 列2, 列3 FROM ...时,还可以给每一列起个别名,这样,结果集的列名就可以与原表的列名不同。它的语法是SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM ...。
eg:将插叙结果中属性名name改成student_name

select name student_name,class_id from students;

查询结果:

2.3查询结果排序

细心的读者可能已经发现:我们在之前所做的查询最终的查询结果都是按照id(或者class_id)的升序排列的,那么我们如何来改变查询结果的排序顺序那?
其实我们可以通过ORDER BY语句来进行查询结果出顺序的控制。
eg:按照score从小到大对结果进行排序

select * from students ORDER BY score;

查询结果:

默认的排序规则是ASC升序即从小到大,当然如果我们想要查询结果是降序排列,我们可以通过加上DESC来进行进行降序结果输出。
eg:将上边的查询结果按照score降序来进行输出

2.4 分页查询

有时在查询的过程中我们查询的到的结果集比较大,而程序在处理和显示这些数据时空间有限不能够一下子完全显示出来,此时便需要将查询到的结果集分成不同的页来进行显示,这边是分页查询。分页查询实际上也就是将大的数据集(比如几万条)进行拆分,分成若干页,比如1-100第一页、101-200第二页、201-300第三页,以次类推。具体使用分页查询时我们需要通过LIMIT <M> OFFSET <N>子句对查询结果集的大小以及页数进行控制。我很还以students为例,首先查询到它所有的结果集
查询studnets表所有结果集的sql语句

select * from students;

查询结果:

现在我们将查询到数据集进行分页,
查询第一页的数据(每页3条数据):

select * from students limit 3 offset 0;

查询结果为:

上述查询limit 3 offset 0表示,结果集从0号记录开始查询。注意SQL记录集的索引从0开始。如果需要查询第2页,我们需要跳过前边的三条记录,索引此时应该从3开始,即我们需要将offest设置为3。
查询第2页的结果集:

/*每页显示三条数据,获取其中的第2页*/
select * from students limit 3 offset 3;

查询结果:
在这里插入图片描述

同样的查询第3页的结果集时应该讲offset设置为6;
查询第3页的结果集:

select * from students limit 3 offset 6;

查询结果:
在这里插入图片描述

查询第4页的结果集:

select * from students limit 3 offset 9;

查询结果为:

由于第4页只有一条记录所以查询结果只显示一条记录。limit 3表示每页最多“显示三条记录”。
由此可见我们在进行分页查询的时候最关键的问题是设计每页需要显示的结果集大小pageSize(这里设置的是3),然后根据当前页的索引pageIndex(需要查第几页的结果),确定limit以及offset的值:

  • limit一般设置为pageSize
  • offset设置为pageSize*(pageIndex-1)

注意:

  1. offset值的设置是可选的,如果只写limit 3,DBMS不会报错,而是默认认为是limit 3 offset 0。
  2. offset设置的值如果大于最大数量并不会报错,而只是得到一个空的结果集
  3. 在MYSQL中,limit 3 offset 6还可以写为limit 6,3
  4. 在使用limit <m> offset <n>时随着n的值越来越大,查询的效率也会越来越低

2.5 聚集查询

在日常开发的某些应用场景中,我们并不需要获得具体数据集,而只是想要获得满足条件的数据集的条数(例如:查询班级表中男生的人数),此时便需要嵌套查询。对于统计总数、平均数这类查询来说,SQL已经为我们提供了专门的聚合函数,使用聚合函数进行查询,我们便称之为聚合查询,仍然以查询students表中男生的人数为例,我们可以通过SQL内置的count()函数来进行查询。
查询students表中男生的人数:

select count(*) from students where gender='M';

查询结果:
在这里插入图片描述
当然除了count()函数之外SQL还提供了如下的聚合函数

函数说明
SUM计算某一列的合计值,该列必须为数值类型
AVG计算某一列的平均值,该列必须为数值类型
MAX计算某一列的最大值
MIN计算某一列的最小值

注意:

  1. MAX()个MIN()函数并不仅限于数值类型。如果字符类型,MAX()和MIN()会返回排序在最后边和最前边的字符
  2. 如果聚合查询的结果没有匹配到任何行,count()会返回0,而sum()、avg()、max()和min()会返回null。

2.6 多表查询

select查询不仅可以从一张表中查询出结果,还可以同时在多张表中查询出结果,其语法为:select * form <table 1>,<table 2>。
例如,从同时从students表和classes表中查询出结果:
查询所用sql语句:

select * from students,classes;

查询结果为:
在这里插入图片描述
当然这种查询方式得到的结果只是students表和classes表的笛卡尔积,它是students表和classes表的“乘积”,即students表的每一行与classes表的每一行都两两拼在一起返回。结果集的列数是students表和classes表的列数之和,行数是students表和classes表的行数之积。
当然如果简单的使用上边的查询方法不加限定条件,那么查询的结果几乎没有任何意义。因此我们可以通过where子句对查询的结果进行限定。
例如查询男生且位于一班的信息

SELECT
    s.id sid,
    s.name,
    s.gender,
    s.score,
    c.id cid,
    c.name cname
FROM students s, classes c
WHERE s.gender = 'M' AND c.id = 1;

查询结果为:

2.7 连接查询

在上一小结我们提到的连接查询,所得到的结果只是两个表stuents表和classes表的笛卡尔积,两个表直接没有任何的逻辑联系,而实际上我们进行多表查询时更多情况下两张表之间是有关系联系的,比如将students表中class_id和classes表中的id建立相等的联系stduents.class_id=classes.id,这种连接两个表进行JOIN运算的的查询方式,我们称之为连接查询。
连接查询是我们在实际开发过程最常用的查询方式,连接查询在查询过程中又分为自然连接查询、内连接查询、外连接查询等。
自然连接查询:在查询过程中,我们将目标列中重复的属性列去掉这一过程我们称之为自然连接查询。
例如我们查询所有学生信息(包括班级信息),其中信息如姓名、性别、id等信息都在students表中,而班级信息却在classes表中,此时如果直接通过上一节的夺表查询的查询方法进行查询。这样查询的结果会有许多重复的结果值。此时我们便可以通过自然连接查询的方式(限定students表和classes表的属性关系)来进行查询。
自然连接查询方法查询所有学生信息:

select s.id,s.name,s.class_id,s.gender,s.score,c.name from students s,classes c where s.class_id=c.id

查询结果为:

当然我们在查询班级所有信息时我们也可以通过内连接查询来获取相同的查询结果。
内连接查询方式查询所有学生信息:

select s.id,s.name,s.class_id,s.gender,s.score,c.name from students s inner join classes c on s.class_id=c.id;

查询结果为:

此时可能有人要问了,既然自然连接查询和内连接查询可以相同结果,那么我们在实际开发过程中应该选择哪种查询方法?
针对这个问题,首先我们要明白虽然通过自然连接查询以及内连接查询可以得到相同的查询结果,但是它们在底层的实现原理是不同的。一般来说能获得相同的查询结果条件下,我们也一般都是通过内连接来查询的,因为内连接使用ON,而自然连接是通过使用WHERE子句来进行限定,而WHERE的效率没有ON高(ON 指匹配到第一条成功的就结束,其他不匹配;若没有,不进行匹配,而WHERE会一直匹配,进行判断。)

注意: inner join查询的写法为:

  1. 先确定主表,仍然使用FROM <表1>的语法;
  2. 再确定需要连接的表,使用INNER JOIN <表2>的语法;
  3. 然后确定连接条件,使用ON <条件…>,这里的条件是s.class_id = c.id,表示students表的class_id列与classes表的id列相同的行需要连接;
  4. 可选:加上WHERE子句、ORDER BY等子句。

那可能又有人问了“既然有外连接,那么是否有内连接那?”答案是肯定的,我们暂且不说什么是外连接,我们先通过一个例子来看下内连接和外连接之间的区别,我们还是查询所有学生的信息,但是不同之处在于我们将内连接换成外连接。
通过外连接查询所有学生信息:

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
RIGHT OUTER JOIN classes c
ON s.class_id = c.id;

查询结果为:
在这里插入图片描述
我们容易发现,此时的查询结果比内连接方式多了一行,多出来的一行是“四班”,但是,学生相关的列如name、gender、score都为NULL。这也容易理解,因为根据ON条件s.class_id = c.id,classes表的id=4的行正是“四班”,但是,students表中并不存在class_id=4的行。
当然有RIGHT OUTER JOIN,就有LEFT OUTER JOIN,以及FULL OUTER JOIN。它们的区别是:INNER JOIN只返回同时存在于两张表的行数据,由于students表的class_id包含1,2,3,classes表的id包含1,2,3,4,所以,INNER JOIN根据条件s.class_id = c.id返回的结果集仅包含1,2,3。RIGHT OUTER JOIN返回右表都存在的行。如果某一行仅在右表存在,那么结果集就会以NULL填充剩下的字段。LEFT OUTER JOIN则返回左表都存在的行。如果我们给students表增加一行,并添加class_id=5,由于classes1表并不存在id=5的行,所以,LEFT OUTER JOIN的结果会增加一行,对应的class_name是NULL:
先插入一个不含class_id的学生信息:

insert into stduents (id, name,gender,score) values(default,'李平','M',95);
select * from students;

通过外连接查询所有学生信息:

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
LEFT OUTER JOIN classes c
ON s.class_id = c.id;

查询结果为:

最后,我们使用FULL OUTER JOIN,它会把两张表的所有记录全部选择出来,并且,自动把对方不存在的列填充为NULL:

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
FULL OUTER JOIN classes c
ON s.class_id = c.id;

查询结果:

idnameclass_idclass_namegenderscore
1小明1一班M90
2小红1一班F95
3小军1一班M88
4小米1一班F73
5小白2二班F81
6小兵2二班M55
7小林2二班M85
8小新3三班F91
9小王3三班M89
10小丽3三班F88
11李平5NULLM95

**注意:**MYSQL是不支持FULL OUTER JOIN查询的。
为了便于大家理解JON查询,下边我们用图来表示各种查询的关系:
假设查询语句是:

SELECT ... FROM tableA ??? JOIN tableB ON tableA.column1 = tableB.column2;

我们把tableA看作左表,把tableB看成右表,那么INNER JOIN是选出两张表都存在的记录:

LEFT OUTER JOIN是选出左表存在的记录:

RIGHT OUTER JOIN是选出右表存在的记录:

FULL OUTER JOIN则是选出左右表都存在的记录:

2.7 嵌套查询

基于上边几节的描述常用的查询方法都已基本囊括,但是某些情况下我们需要将一个查询块(一个SELECT-FROM-WHERE子句称为查询块)嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询称为嵌套查询。例如:
通过嵌套查询二班的学生信息:

select * from students where class_id in
(select id from classes where name='二班' );

查询结果:
在这里插入图片描述

嵌套查询可以使用户使用多个简单查询构成复杂的查询,从而增强SQL的查询能力。以层层嵌套的方式来构造程序正式SQL中“结构化”的含义所在。在使用嵌套查询的过程中根据子查询的方式不同,我们将查询分为下边三大类:

2.7.1 使用IN谓词的子查询

在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中经常使用的谓词。比如我们要查询跟小丽同学考同样分数学生的信息我们可以通过如下步骤来构造嵌套查询。

  1. 首先确定小丽同学所考的分数:
    查询小丽同学所考的分数:
select score from students where name='小丽';

查询结果为:

  1. 查询students表中所有score=85的学生信息:
    查询score=85的学生信息:
select * from students where score=85;

查询结果:

3. 将第一步构造的查询语句嵌套到第二句中构造嵌套查询。
查询语句为:

select * from students where score in
(select score from students where name='小丽');

查询结果为:

在这个例子程序中细心的同学会发现,子查询的查询条件是和父查询是相互独立的,对于此类查询我们称之为不相关子查询。对于此种查询我们实际上是可以通过连接查询来获取同样的查询结果的。例如上边“查询跟小丽同学考同样分数学生的信息”,我们可以通过如下的SQL语句进行替代:

select s1.* from students s1,students s2 where s1.score=s2.score and s2.name='小丽';

查询结果:

由此可见实现同一个结果的查询方式有很多种,但是不同方法查询的效率确实不同的。这就是数据编程人员需要掌握的数据性能调优技术,后续时间充裕,我会对常用的mysql查询的调优技术进行总结,此处便不进行详尽阐述了。

2.7.2 带有比较符号的子查询

有时某些嵌套子查询中,我们并不需要通过IN详尽匹配子查询中的结果,而只是需要对子查询返回的单个结果进行比较,此时我们便需要使用比较运算符对查询结果进行限定。比如我们查询分数高于平均分的学生信息:

select id,class_id,name,gender,score from students s where score >= 
(select avg(score) from students);

查询结果为:

**注意:**在使用比较符号时子查询的应当只有一个否则,查询结果是不正确的。

2.7.3 带有ANY(SOME) 或者ALL位于的子查询

子查询的结果有一个时可以使用比较运算符,但是当返回值有多个时我们需要通过ANY(SOME)或者ALL等谓语以及和比较符号一起连用来对结果进行限定,常见的用法以及含义如下表所示

限定符作用
>ANY大于子查询中的某个结果值
>ALL大于子查询的所有结果值
<ANY小于子查询结果中的某个值
<ALL小于子查询结果中的所有值
>=ANY大于等于子查询中的某个结果只
>=ALL大于等于子查询中的所有结果只
<=ANY小于等于子查询中的某个结果值
<=ALL小于等于子查询的所有结果值
=ANY等于子查询中的某个结果值
=ALL等于子查询中的所有结果值(通常没有任何意义)
!=ANY不等于子查询中的某个结果值
!=ALL不等于子查询中的所有结果值

比如查询所有学生中分数最低的学生的姓名和成绩

select name,score from students where score<=ALL(select score from students);

查询结果为:

2.7.4 带EXISTS的子查询

EXISTS代表存在量词。带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真“true”和逻辑假“flase”。
例如我们可以通过嵌套查询,查询二班所有学生的信息。

select * from students where exists 
(select * from classes where students.class_id=id and name='二班');

查询结果:

**注意:**通过EXISTS引出的子查询,其目标表达式通常都是使用*,因为带有EXISTS的子查询只返回真值或者假值,给出列名没有任何意义。

2.8 基于派生表的查询

其实子查询有时候并不一定非要出现在WHERE子句中,还可以出现在FROM子句中,这是子查询产生的临时派生表成为朱查询的查询对象,这种查询方式我们称为基于派生表的查询。
例如查询所有学生的姓名信息我们通过派生表查询方式实现:

select s1.name from 
(select * from students) as s1

查询结果为:

当然我们在此处举例子可能意义不大,仅仅只是为了说明EXITS子句的用法。具体在开发过程中EXISTS的具体使用,需要读者自己去发掘和探索。

面试必备—MySQL中数据查询语句 阅读详情

相关推荐

《MySQL 入门教程》第 19 篇 子查询

MySQL 子查询(Subquery)是指嵌套在其他 SQL 语句( SELECT、INSERT、UPDATE、DELETE 等)中的查询语句。本文介绍了 MySQL 中的标量子查询、行子查询、表子查询,以及派生表、IN、ALL、ANY/SOME运算符,关联子查询和EXISTS运算符。

Tony.Dong的专栏 2399

MySQL的六种查询方法

在MySQL数据库中查询操作是最重要的一个操作。

qq_58299900的博客 3422

《MySQL 入门教程》第 07 篇 简单查询

本篇介绍如何使用 SELECT 语句查询 MySQL 中的表,包括查询指定字段和全部字段、快速查询信息、使用别名和代码注释。

Tony.Dong的专栏 1566

MySQL 查询语句大全

超全MySQL查询语句,MySQL查询语句有这一篇就够了

qq_57570052的博客 10万+

ComfyUI中一个超好用的变量管理类节点-KJNodes

在AI绘图中,ComfyUI的热度开始慢慢起来一些,但是这个软件在使用的过程中,需要很多连线,仅仅一个最简单的动画生成,就需要连接这么多线条,而且有些线会飞的很远,看起来就很不美观,尤其是一些复杂工作流,连接到最后自己可能已经分不太清楚到底连接好了没有。今天在研究C站的大佬们的工作流的时候,发现一个有意思的工作流,看起来大概是这种感觉:干净整洁。他用到了KJNodes这么个节点来管理变量,git上星标也不算很多,所以我想很多朋友可能还不知道,所以这里简单介绍下用法。

聚梦小课堂 7524

【OCCT】第3讲 OpenCasCade&VTK实现三维建模Demo

本文分享OpenCasCade&VTK共同实现三维建模Demo,希望对各位小伙伴有所帮助!1. 新建Visual Studio工程新建空项目添加main.cpp添加main函数2. 配置OpenCasCade & VTK 库配置包含路径:配置库文件:添加链接库:添加运行环境:注意:VTK库的版本要与编译OpenCasCade库时选择的版本一致,否则会出错!

qq_40041064的博客 781

MySQL 多种查询方法

x 是表SC的别名,又称为元组变量,可以用来表示SC的一个元组,内层查询是求一个学生所有选修课平均成绩的,至于是哪个学生的平均成绩要看参数x.Sno的值,而该值是与父查询相关的,因此这类查询称为。SQL中没有全称量词(for all),但是可以把带有全称量词的谓词转换为等价的带有存在量词的谓词,可以将题目转换成等价的存在量词的形式:没有一门课程是他不选修的。,将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为。例2、查询计算机科学系的学生与年龄不大于19岁的学生的交集。

qq_52108058的博客 6226

2024最新版:MacOS Sonoma系统下CocoaPods安装全攻略(解决Ruby版本冲突)

本文详细介绍了在MacOS Sonoma系统下安装CocoaPods的全过程,重点解决Ruby版本冲突问题。通过HomeBrew安装最新Ruby版本,配置环境变量,并正确安装CocoaPods,帮助iOS开发者顺利管理项目依赖。文章还提供了常见问题的解决方案和优化配置建议,确保开发环境的稳定性和高效性。

lll78的博客 1042

lambdaquerywrapper查询指定字段_《MySQL 入门教程》第 07 篇 简单查询

文章来源:《MySQL 入门教程》第 07 篇 简单查询原文作者:不剪发的Tony老师来源平台:优快云从本篇开始我们将会介绍 MySQL 中的各种查询语句,主要使用的数据表结构如下:它们分别是:部门表(department),包含部门编号(dept_id)和部门名称(dept_name)字段,主键为部门编号。该表共计 6 条数据。职位表(job),包含职位编号(job_id)和职位名称(job_...

weixin_39543773的博客 1万+

《AFSim 2.9中文参考手册》

本栏目将对《AFSim 2.9中文参考手册》进行持续更新,欢迎关注交流!对本文或者AFSIM相关内容感兴趣的朋友,可私心联系作者。《AFSim 2.9中文参考手册》内容概览。

henggesim的博客 1万+

brother的PT-9800PCN标签打印机二次开发

本来想通过esc/p指令打印标签,但是无奈能找到的资料太少,而且打电话给客服,也没有sample可以提供参考,后来客服说使用template功能的话,打印很方便。于是下载手册学习了一下, 先下载P-touch Editor软件,制作标签模板。 制作的模板就是普通的标签,不需要连接数据库之类的,模板里有3个object,分别是文本1,文本2,条形码3。这个很关键,后面的代码传送数据,就是按这...

3563

【MySQL篇】聚合查询,联合查询

并且让s1 为计算机原理 课程id为3 s2为java 课程id 为1。只能将它们转化成列与列比较大小,自连接将可以完成操作 自己与自己笛卡尔积。俩张表存在一一对应的情况 ,所有内连接和外连接找到的结果都是一致的;这些数据是全部排列组合的结果,并不是我们全部想要的;显示平均工资大于10000的角色和它的平均工资。列出 同学的名称 课程的名字 以及课程的成绩。当修改其中某个值,让它们不保存一一对应的情况。当对应不存在的列 会用null填充。求语文的最高分 和 英语的最低分。初始化数据,以便下一步的学习。

chaodddddd的博客 5661

063、推挽变换器的磁偏问题与解决

本文针对推挽变换器中的磁偏问题展开分析。作者通过实际案例指出,磁偏主要由开关管导通压降差异和驱动信号不对称引起,会导致变压器饱和、MOS管炸毁等问题。文章提供了四种解决方案:采用电流模式控制、添加隔直电容、优化对称驱动设计以及引入磁芯气隙(作为最后手段)。调试时应重点观察原边电流波形对称性、变压器声音和直流分量。作者强调实践经验的重要性,建议预留隔直电容位置,并指出推挽拓扑在500W以上功率场合的局限性。这些基于实战的经验总结为电源工程师提供了有价值的参考。

Jack010169的博客 312

【MySQL篇】复合查询

基于上篇MySQL基本查询,基本上都是对一张表进行查询。【MySQL篇】MySQL基本查询详解-优快云博客复合查询是处理复杂业务逻辑的核心技能 ,本篇涵盖多表查询,子查询和合并查询等复杂场景。

2401_82677021的博客 1238

Python爬虫实战:使用最新技术抓取采购网招标公告信息

本文将详细介绍如何使用Python最新爬虫技术构建一个高效的采购网招标公告信息抓取系统。我们将从爬虫基础概念讲起,逐步深入到高级技巧,包括异步处理、反爬虫对策、数据解析与存储等,并提供完整的代码实现。本文旨在为读者提供一套完整的网络数据采集解决方案,适用于各类政府采购平台和商业招标网站。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序或脚本,它们按照一定的规则,自动地浏览万维网并提取所需数据。在现代商业环境中,爬虫技术广泛应用于价格监控、竞争情报收集、市场研究等领域。

2201_76125261的博客 1623

AI处理器组合

编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不通链路中的处理器不能通信,如下图所示。- 如果申请处理器个数为1,则选择同一链路,剩余可用的处理器数量为1个的最佳,其次是剩余3个的为次佳,然后是剩余2个,最后是剩余4个。输出为组合列表,当array=[0, 1, 4, 5, 6, 7] ,num=1时,输出为[[0], [1]]- 如果申请处理器个数为2,则选择同一链路剩余可用的处理器数量2个的为最佳,其次是剩余4个,最后是剩余3个。任务申请1个处理器。

面试高手的博客 1万+

【MySQL篇】MySQL基本查询详解

where chinese>80 and name not like '孙%';

2401_82677021的博客 6199

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MySQL基础篇 | 简单的查询、条件查询、排序查询

MySQL 【第二篇】 简单的查询、条件查询、排序查询

m0_61933976的博客 3091

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

vc mysql 查询_MYSQL之查询篇

2. 数据库操作数据库在创建以后最常见的操作便是查询2.1 查询为了便于学习和理解,我们预先准备了两个表分别是stduents表和classes表两个表的内容和结构如下所示students表的内容:idclass_idnamegenderscore11小明M9021小红F9531小军M8841小米F7352小白F8162小兵M5572小林M8583小新F9193小王M89103小丽F85创建stu...

weixin_32656511的博客 309

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【基础篇】MySQL系列之子查询

🔹大家好,我是颜语凌。 🔶个人主页:颜语凌 🔹文章介绍:MySQL基础篇系列文章 🔶欢迎点赞➕关注➕评论 目录 一、 子查询的介绍 二、子查询的使用 三、小结 一、 子查询的介绍 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询. 主查询和子查询的关系: ...

weixin_54667422的博客 468

Mysql笔记篇(Mysql数据库的几个查询)

一.条件查询 where 1.等值查询 = select * from student where id=1; 2.不等值查询 != (< >) 查询年龄不是20岁的学生信息 select * from student where age!=20; 3.关系比较查询 < <= > >= 查询年龄大于20岁的学生信息 select * from student where...

qq_58849698的博客 542

MySQL 第九讲---基础篇 复合查询

MySQL复合查询是处理复杂业务需求的关键技能,涉及多表查询、自连接、子查询和合并查询等技术。通过掌握这些核心语法,用户能够从分散的数据表中提取关联信息,完成更复杂的业务逻辑分析。本讲作为《MySQL基础篇》的第八讲,旨在帮助学习者从容应对跨表数据查询的需求,为后续的复杂业务分析和数据库设计优化打下坚实基础。通过学习,用户将能够从简单查询迈向高效整合,提升数据库操作的能力。

hi0_6的博客 1158

Mysql配套测试之查询篇

看到这里不容易,点个关注不迷路!

2301_81831423的博客 2134

MySQL进阶实战查询篇

数据库常见面试题50道

weixin_72380152的博客 1120
上一篇: MYSQL之概念基础篇
下一篇: 浅谈布隆过滤器
vcjmhg
博客等级 码龄11年 27粉丝 94原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值