《mysql必知必会》学习_第六章_20180730_欢

2019-10-29 05:04栏目:网站首页

第六章《过滤数据》

(生龙活虎)几个数据库相关的定义

P35

1.数据库

  1. select prod_name,prod_price from products where prod_price=2.5;

数据库: 保存有组织数据的容器。

2.select prod_name,prod_price from products where prod_price='2.5';

数据的有所存款和储蓄、检索、管理和拍卖实际上是有数据库软件DBMS实现的。

#两个语句获得的结果相近,因为钦定的是数值。

咱俩由此数据库软件DBMS来创制和垄断(monopoly)容器。

图片 1

2.表

P36

某种特定项目数据的结构化清单。表名是头一无二的,用来标识自身。

select prod_name,prod_price from products where prod_name='fuses'; #当钦赐的是文字时候,则要用引号(‘ ’)。

表具有部分风味,定义了数额在表中怎么样的寄放,存款和储蓄什么样的数目,数据怎么样解释,各部分音信怎么着命名等。描述那组新闻叫做格局(schema),它是关于数据库和表的布局及特点音讯。

图片 2

3.列和数据类型

select prod_name,prod_price from products where prod_price <10; #检索prod_price小于或等于10(<=不是=<)的,读取prod_name,prod_price列。

列:表中的一个字段

图片 3

数据类型:每种列都有打点的数据类型

 select prod_name,prod_price from products where prod_price <10; #检索prod_price小于10的,读取prod_name,prod_price列。

4.行

图片 4

表中的一条记下

P37 不包容检查(不对等有个别值)

5.主键

  1. select vend_id,prod_name from products where vend_id <>1003; #vend_id不等于1003# 

一列要么生龙活虎组列,能够唯生机勃勃区分表中的种种行。

2.1. select vend_id,prod_name from products where vend_id !=1003; #vend_id不等于1003# 1和2的发挥的情致是同等的# 

习感觉常上:不立异主键列中的值,不录用主键列的值,不在主键列中使用大概校正的值。

图片 5

6.外键

P38

外键为有个别表的一列,它包罗另四个表的主键值。

 select prod_name,prod_price from products where prod_price between 5 and 10; #检索prod_price在节制5到10之内的。注意:数值加上引号与否并不会潜移暗化结果#

(二)mysql使用办法

图片 6

1.mysql是什么?

select prod_name from products where prod_price is null ; #意味着检索prod_price是空值的#回到未有结果,因为prod_price未有空值#

mysql是大器晚成种DBMS,正是风姿洒脱种数据库软件。它是后生可畏种基于顾客机-服务器的数据库。

图片 7

2.mysql的优点:

P39

(1)因为开源,成本低

select cust_id from customers where cust_email is null ;#检索cust_email是空值#

(2)实施进度快,质量好

图片 8

(3)可信赖

 

(4)易于安装和行使

3.接连好数据库后,就可以访谈数据库并做操作,当中use是用来接收数据库的,show是用来查阅mysql数据库、表、每部音讯的。

(1)use database name;

      表示切换使用哪个数据库。

      用use张开数据库,手艺读取在那之中的数码。

(2)show database;

      再次回到数据库的列表

(3)show tables;

      获取二个数据库内的表的列表

(4)show columns from customers;

      呈现每列的音讯,前面用的相当多的是 desc customers;

(三)用select检索数据

1.select:

用途:从表中检索七个要么多少个数据列。

select语句中须要反映两种新闻:选什么,从哪处选。

2.搜索单列

例如:select prod_name from products;

分解:从products表中追寻出来prod_name列

注意:再次回到结果是未排序的。

3.搜索多列

例如:select prod_id,prod_name,prod_price from products;

4.找寻全部列

select * from product;

可取:不明显列名的时候利用。

5.distinct关键字

作用:提示mysql只回去不相同的值的行

例如:select distinct vend_id from products;

运用:它必需放在列名前边

6.limit

职能:重回结果的前几行

例如:select prod_name from products limit 5;

如果是 select prod_name from products limit 5,5;则表示从行5以前,检索5行.

瞩目:检索出来第大器晚成行是行0。假设行数相当不足,能回去多少就再次来到多少。

7.通通限定的表名

select products.prod_name from product;

(四)用where实行多少过滤

1、where子句

意义:钦命寻觅条件,因为相同数据库表都包括大量的数码,非常少我们须求全数的行,平常会基于特定须求来领取数额的子集。where语句就是来钦点寻觅条件(过滤条件)

位置:放在from之后,order by之前

例子:select prod_name,prod_price from products where prod_price = 2.50

解释:这里运用了等于测验,只回去prod_price为2.5的行,还能有等于、不等于、小于、小于等、大于、大于等、between操作符。

扩展:依照那一个操作符,可以做单个值特别(=)、不相称检查(!=或许<>)、范围值检查(between)、空值检查(is null)

事例1:between用法,它要求八个值。

select prod_name,prod_price from products where prod_price between 5 and 10;

事例2:空值检查

select cust_id from customers where cust_email is null;

2.组合where子句

目标:为了进行越来越强的过滤调节,mysql允许给出多个where自居,以逻辑操作符and可能or的法子接收。

and例子:

select prod_id,prod_price,prod_name

from products

where vend_id =1003 and prod_price <=10;

分解:必需同有时间满意多个标准

or例子:

select prod_id,prod_price,prod_name

from products

where vend_id =1003 or vend_id =1002;

释疑:知足大肆多少个标准就可以

专一:总括次序用圆括号限定,要不易于混淆。

3、in操作

功能:内定条件约束

例子:select prod_name,prod_price

from products

where vend_id in (1002,1003);

分解:检索承包商1002和1003创建的有着成品。in操作符前边随着的是法定值得清单。

另生龙活虎种写法:

select prod_name,prod_price

from products

where vend_id = 1002 or vend_id = 1003;

那就是说为何选择in操作符呢,优点是怎么着吗?

(1)清楚只管

(2)计算次序轻松驾驭

(3)in实施比or实行的快

(4)在in中得以分包别的的select语句

4、not操作符:

功效:where子句中用来否认后跟条件的基本点字。

例如:select prod_name,prod_price

from products

where vend_id not in (1002,1003);

解说:检索除了1002和1003之外的有所。

(五)通配符过滤

1、应用场景

  此前说的数量过滤都是对已知值进行过滤的,举例说相配二个值恐怕多个值,大于有个别值或然是稍低于有些值,或然是检查有个别范围的值。

  可是一旦作者要物色产品名中蕴藏anvil的具备产品吗,这个时候通配符就足以大展宏图了,大家得以行使通配符搜索方式,搜索产品名中任何职分现身anvil的制品。

2、什么是通配符

概念:用来合营值得后生可畏都部队分的特殊字符

什么样使用:为了在寻觅子句中接收通配符,必得利用like操作符。

3、有哪些通配符以至哪些接受啊?

(意气风发)百分号通配符%

代表:任何字符出现自便次数,也足以是0次

例子:

(1)找到以jet开端的制品,选拔jet后边为随机三个字符

select prod_id,prod_name

from products

where prod_name like 'jet%';

(2)相配任何任务富含anvil,无论在前边依旧今后现身什么字符。

select prod_id,prod_name

from products

where prod_name like '%anvil%';

(3)找到以s起头、以e结尾的持有成品:

select prod_name

from products

where prod_name like 's%e';

注意:

(1)可以用‘**%’的花样进行尾空格管理,也得以用trim函数进行拍卖

(2)%通配符不能相称null

(二)下划线通配符_

代表:下划线只相称单个字符并不是多少个字符

那也是与%的区分,这里就不譬喻赘述了。

4、小结:

通配符是生龙活虎种拾分有效的寻觅工具,可是无法过度使用,不然搜索时间会非常长。

(六)正则表达式相配

1、啥是正则表明式

正则表达式的效果与利益是相称文本,将叁个正则说明式与三个文本串进行比较,mysql用where子句对正则表明式提供了始于的支撑,允许钦定正则表明式,过滤select检索出的多寡。

2、like与regexp的区别

举例来看两个的差别:

(一)like统配符

select prod_name

from products

where prod_name like '1000'

order by prod_name;

结果:不回去数据

(二)正则表达式

select prod_name

from products

where prod_name regexp '1000'

order by prod_name;

结果:再次回到后生可畏行

原因:like相称的是整整列,唯有利用通配符的时候才会回来。而regexp是在列值中相称,借使被匹配的公文在列值中冒出regexp将会找到他,相应的将在被重回。

3、有哪两种匹配吗?

(黄金时代)基本字符相称

例1:检索列prod_name包罗文本1000的兼具行

select prod_name

from products

where prod_name regexp '1000'

order by  prod_name;

在乎:regexp后所跟的事物作为正则表明式管理。

例2:检索列prod_name包涵000的享有行

select prod_name

from products

where prod_name regexp '.000'

order by  prod_name;

只顾:.是正则表明式语言中的贰个破例的字符,它表示的十一分放肆二个字符,所以1000和2003都契合条件。

(二)or匹配

采纳:当本人想找寻五个串之有的时候,使用|

例子:匹配prod_name为1000或者2000的情况

select prod_name

from products

where prod_name regexp '1000|2000'

order by prod_name;

(三)般配多少个字符之风度翩翩

意味着:相称任何叁个单一字符,当想相称特定字符的时候,可透过制订生龙活虎组用[]括起来的字符来完毕。

例1:

select prod_name

from products

where prod_name regexp '[123] Ton'

order by prod_name;

释疑:正则表明式是[123] Ton,[123]概念了意气风发组字符,即相配1大概2要么3,这么看,其实[ ]是另生龙活虎种情势or语句,也能够用作是[1|2|3]的缩写。

例2:

select prod_name

from products

where prod_name regexp '[^123] Ton'

order by prod_name;

分解:匹配的是除这么些字符意外的别样东西。

(三)匹配范围

聚拢能够用来定义要协作的贰个要么多少个字符,若是想相称0到9,能够用[0123456789],也足以用[0-9],而且约束不肯定是数值,也足以宽容字符,[a-z]合营大肆的假名字符。

例1:

select prod_name

from products

where prod_name regexp '[1-5] Ton'

order by prod_name;

解说:那个表明式的乐趣是相称1到5,例如.5 Ton也会回去。

(四)相称特殊字符

为了协作特殊字符,必需运用\为前导

例如:

(1) \-匹配-,\.匹配.

(2) 匹配用\

(五)匹配字符类

(1)[:alnum:]  --  率性字符和数字

(2)[:alpha:]  --  自便字符

(3)[:blank:]  --  空格和制表

(4)[:cntrl:]  --  ascii调节字符

(5)[:digit:]  --  跋扈数字

(6)[:graph:]  --  与[:print:]长期以来,可是不满含空格

(7)[:print:]  --  大肆可打印字符

(8)[:lower:]  --  恣意小写字母

(9)[:punct:]  --  既不在[:alpha:]也不在[:cntrl:]中的大肆字符

(10)[:space:]  --  满含空格在内的放肆空白字符

(11)[:upper:]  --  狂妄大写字母

(12)[:xdigit:]  --  大肆十三进制数字

(六)相称多少个实例

意思:在此以前的正则表明式师傅和徒弟相称单词现身。不过一时要求对神工鬼斧书目进行越来越强的支配

例1:

select prod_name

from products

where prod_name regexp '\([0-9] sticks?\)'

order by prod_name;

解释:其中\是用来相称括号的,[0-9]用来合作率性数字,sticks?相配stick和sticks,因为?相配他前方任何字符的0次照旧1次面世。

例2:

select prod_name

from products

where prod_name regexp '[[:digit:]]{4}'

order by prod_name;

解释:[:digit:]非常任意数字,{4}确切的渴求它眼下的数字现身4次,全部正则表明式相配连在一同的人身自由4位数字。

同理,能够写成:

select prod_name

from products

where prod_name regexp '[0-9][0-9][0-9][0-9]’

order by prod_name;

扩展:

*表示0个可能过个门户相当

表示1个只怕八个十三分

?表示0个或者1个匹配

{n}表示内定书目标十一分

{n,}表示不菲于钦命数量的拾分

{n,m}表示分外数目标界定

(七)定位符

指标:为了合营特定岗位的公文。

事例:寻觅以三个数要么小数点发轫的全体成品,这里须求固定符^,表示文本的发端。

select prod_name

from products

where prod_name regexp '^[0-9\.]'

order by prod_name;

注意:在集合^[123]中意味着否定该集结,在这表示的是文件的上马。

扩展:

(1)^ 文本的起头

(2)$ 文本的最终

(七)总结字段

--为啥需求总括字段?

因为存款和储蓄在数据库表中的数码平时不是应用程序所急需的格式,临时大家必要对本来数据做一些转移等急需。那正是测算字段发挥效用的时候了。

注意:

(1)大家必要直接从数据库中查找寻调换、计算依然格式化过的多少,并不是寻搜索多少,然后再在顾客机应用程序可能报告前后相继中另行格式化。

(2)总结字段并不实际存在于数据库表中,计算字段是运营时在select语句内创造的。

正文主要介绍三个知识点,一个是拼接字段,二个是实施算数计算。

1、拼接字段

东挪西撮:将值联结到一块儿组成叁个单个值。在select语句中,使用concat()函数来拼接五个列,待拼接的依次串用逗号分隔。

例子:

select concat(vend_name,' (',vend_country,') ')

from vendors

order by vend_name;

2、实践算数总计

例子:

select prod_id,

          quantity,

          item_price,

          quantity*item_price as expanded_price

from orderitems

where order_name = 20005;

解释:其中expanded_price是叁个估测计算字段,总括为quantity*item_price。在实践算数总括的时候,加减乘除都能够甲酸,何况用圆括号来规定总计顺序。

扩张:删除左边的全部空格,能够用rtrim()函数,借使是删除左边的享有空格,可用ltrim(),去掉两边的空格是trim(),在拼接字段有的时候候会用到。举个例子:

select concat(rtrim(vend_name),' (',rtrim(vend_country),')') as

vend_title

from vendors

order by vend_name;

(八)数据管理函数

本文重要介绍mysql帮衬什么的函数,以致哪些接收这一个函数。

1、使用函数,那么重要有哪些项目标函数呢?

(1)用于拍卖文件串的文本函数。比方说:删除可能填充钱,转变大小写

(2)用于在数值数据上进展算数总括,例如说:返屏相对值以至代数运算

(3)用于拍卖日期和岁月值,何况从那个值中领取一定的成份的日子和岁月函数,比方说再次回到那四个值的日期之差,检查日期的可行。

(4)再次来到DBMS正选择的极度规音信的体系函数。比方重回客商登陆音信、检查版本细节。

2、文本管理函数

(1)rtrim():去除列值左侧的空格

(2)upper():将文件转变大写

(3)left():再次来到串侧面的字符

(4)length():重临串的长度

(5)locate():寻觅串的三个子串

(6)lower():转变为题写

(7)soundex():重临串的soundex值,发音雷同

(8)substring():重回子串的字符

例子:

select cust_name,cust_contact

from customers

where soundex(cust_contact) = soundex('Y Lie');

3、日期和时间管理函数

(1)adddate() :扩张一个日子(天、周)

(2)addtime() :扩充叁个岁月(时、分)

(3)curdate():重临当后天子

(4)date():重回日期时间的日期部分

(5)datediff():总括八个日子之差

(6)day():重返一个日子的造化部分

(7)dayofweek():对应多少个日子重临对应星期几

(8)hour():重回三个日期的时辰有些

(9)minute():重返七个时刻的分钟部分

(10)month():重临两个光阴的月份部分

(11)now():重返当今日子的岁月

(12)second():重返三个时刻的秒部分

(13)time():再次回到贰个日辰时间的光阴某些

(14)year():再次来到二个日期的年份部分

在乎:不管是插入表依然更新表如故用where子句实行过滤,日期必得为yyyy-mm-dd的格式,就算别的的日期格式恐怕有效,可是那是首选的日子格式,它息灭了多意义性。

例如:

select cust_id,order_num

from orders

where order_date = '2015-09-01';

借使日期的格局是‘2014-09-01 00:00:00’,那么就招来不出去,所以进一步可相信的款式为:

select cust_id,order_num

from orders

where date(order_date) = '2015-09-01';

豆蔻梢头旦本人想寻觅出二〇〇六年五月下的具有订单:

方法一:

select cust_id,order_num

from orders

where date(order_date) between '2005-09-01' and '2015-09-30';

方法二:

select cust_id,order_num

from orders

where year(order_date) =2005 and month(order_date)=9;

4、数值管理函数:

它常常用来代数、三角或几何运算。

abs、cos、exp、mod、pi、rand、sin、sqrt、tan

(九)汇总量据

那部分首要介绍聚焦函数以致怎么样利用它们来汇总表的数目。

1、聚焦函数的概念:运转在行组上,总括和再次来到单个值的函数。

2、mysql重要的聚众函数有何样?

(1)avg:再次来到某些列的平均值

(2)count:重返某列的行数

(3)max:再次来到某列的最大值

(4)min:重临某列的最小值

(5)sum:再次回到某列值之和

3、avg

概念:

(1)通过对表中的行数计数病总计特定列值之和。求得该列的平均值。

(2)avg可以用来回到全体列的平均值,也得以用来范数特定列或行的平均值。

例子:

selelct avg(prod_price) as avg_price

from product;

演说:重临products表中有着产品的平均价格

select avg(prod_price) as avg_price

from products

where vend_id = 1003;

讲明:钦命特定行只怕特定列求平均值,它回到的是特定承包商1003所提供产品的平均价值。

注意:

(1)avg只可以显著特定数值列的平均值,并且列名必需作为函数的参数给出。借使说大家想博得愈来愈多列的平均值,要利用四个avg()函数。

(2)avg()函数忽视列值为NULL的行

4、count

概念:

(1)count()首假若用来计数

(2)利用count()分明表中央银行的数码,以致相符特定条件的行的数额

注意:

(1)使用count(*)对表中央银行的数据实行总结,不管是表列中包括的是null和非null

(2)使用count(column)对特定的具有值的行进行计数,忽视null

例子:

select count(*) as num_cust

from customers;

表明:再次回到customers表中型地铁户的总量,这里运用count(*)对具有的行开展计数,不管各行中有啥值,计数值将要num_cust中返回。

select count(cust_emial) as num_cust

from customers;

解说:只对有关键邮件的顾客扩充计数。

5、max()

概念:max()再次来到钦点列的最大值,可是max()须要制定列名

例子:

select max(prod_price) as max_price

from products;

释疑:重临products表中最贵的物料。

注意:

(1)在用来文书数据的时候,假使数量是按对应的列排序,则max()重临的是最终生机勃勃行。

(2)max()函数忽视列值为null的行

6、min()

概念:max()重回钦点列的十分小值,可是max()需求制定列名,使用方法与max同理

7、sum

概念:用来回到钦赐列值的和(总结)

例子:

select sum(quantity) as items_ordered

from orderitems

where order_num = 20005;

解释:sum(quantity)用来回到订单中负有货色的多寡之和,where子句值总计某些货色订单中的货色。

同理,sum也能够用来交涉总结值。比方下边包车型地铁例子,能够拿走总的订单金额,where子句相近保障只总结某些货物订单中的物品。

select sum(item_price*quantity) as total_price

from orderitems

where order_num = 20005;

小心:sum()会忽略列值为null的行。

8、在聚合函数中用distinct

事例:加了distinct参数之后,平均值只思虑各类区别的标价

select avg(distinct prod_price) as avg_price

from products

where vend_id = 1003;

注意:

(1)distinct只可以用于count()

(2)不能用count(distinct)

(3)不能用distinct count(*)

9、组合聚焦函数,看见这几个例子就能秒懂~

例如:

select count(*) as num_items

          min(prod_price) as price_min,

          max(prod_price) as price_max,

          avg(prod_price) as price_avg

from products;

(十)排序检索数据

指标:为了明显的排序用select语句检索出来的数据,能够用order by子句,order by往往取一个仍旧八个列的名字,依据此对输出进行排序。

1、如何用order by

依照单个列排序的例证:

select prod_name

from products

order by prod_name;

假使依照四个列进行排序的话,只要列出列名,列名之间用逗号分隔。举例下边包车型大巴例子,首先依照价钱排序,再根据货色名字排序。

select prod_id,prod_price,prod_name

from products

order by prod_price,prod_name;

细心:对于上述例子,仅仅在四个行有所相仿的prod_price值时才对prod_name进行排序。假如prod_price列中具备的值都以唯生机勃勃的,那么就不会依据prod_name排序。

2、钦点排序方向

升序:asc,默认的

降序:desc

事例:遵照价钱降序,最贵的在前边。

select prod_id,prod_price,prod_name

from products

order by prod_price desc;

假如遵照多少个列进行排序呢?举例:

select prod_id,prod_price,prod_name

from products

order by prod_price desc,prod_name;

表达:以降序排序产品,然后再对产品名排序。

留意:这里只对prod_price降序了,假若想在多个列上实行姜旭排序,必得对各类列钦点desc关键字。

壮大:使用order by和limit的咬合,能够寻觅贰个列的万丈和最低的值。

举个例子:如何找寻最昂贵货物的值

select prod_price

from products

order by prod_price desc

limit 1;

(十大器晚成)分组数据

1、什么是分组?

分组便是汇总表内容的子集,分组允许把数据分为七个逻辑组,以便能对各种组开展联谊总结。

2、涉及的子句

group by子句和having子句

3、上边从五个部分介绍分组:

(1)创设分组 --group by

(2)过滤分组 --having

(意气风发)创制分组

举例:

select vend_id, count(※) as num_prods

from products

group by vend_id;

解释:

对vend_id分组,而且总计个数。

group by钦命要被分组的靶子(vend_id),并做总结。

注意:

(1)group by子句能够分包自由数目标列

(2)即使在group by子句中嵌套了分组,数据将会在最终显著的分组上拓宽聚焦。

(3)在group by中列出的列不可能是集合函数

(4)假使在select中应用表明式,则必需在group by子句中钦点相像的表达式,无法使用别称。

(5)除了集结计算语句之外,select语句中的没个列都不得不在group by子句中付出。

(6)假使分组列中有所null,则它们将会作为一个分组再次来到。

(7)group by必需在where语句之后,order语句在此以前。

(二)过滤分组

意义:规定了席卷怎么样分组,清除哪些分组

举例说:小编想列出足足有五个订单的兼具顾客,那时,必需依照完整的分组进行过滤,并非依据各自的行开展过滤。

留意:where过滤钦点的是行并不是分组。where未有分组的定义。

引进:having进行过滤分组,事实上,全数品种的where子句都得以用having来代替。

where和having的分歧:where过滤行,having过滤分组

举例1:

select cust_id, count(※)  as orders

from orders

group by cust_id

having count(※)>2;

表明:订单数大于2的客户

举例2:

select vend_id, count(※) as num_prods

from products

where prod_price >10

group by vend_id

having count(※)>2;

演讲:同临时候用了where和having,表示全部2个以上,价格10上述的产品的代理商。

最终注意:

貌似在利用group by子句的时候,应该给出order by子句,那是保障数据准确排序的并世无双方法。千万不要依靠group by的排序数据。

总结:

select子句的各种:

select

from

where

group by

having

order by

limit

(十二)子查询

子查询日常现身的场景:

(1)where子句的in操作符中

(2)用来填充计算列

1、在那处举一个事例,就知道子查询是哪些,以至子查询如何使用了。

譬释迦牟尼讲:列出订购货品TNT2的持有顾客。

参照:mysql必知必会样例表

涉及的表:orderitems、orders、customers

寻觅的步子:

(1)检索包罗货品TNT2的富有订单号

select order_num

from orderitems

where prod_id = 'TNT2';

获得的结果是:order_num:20005和20007

(2)查询全部订单二零零零5和二零零零7的顾客

select cust_id

from orders

where order_num in (20005,20007);

获得的结果是:cust_id:10001和10004

(3)检索客商id为10001和10004的客商消息

select cust_name,cust_contact

from customers

where cust_id in (10001,10004);

即获得了最终的结果

将那四个查询合并为二个:

select cust_name,cust_contact

from customers

where cust_id in (select cust_id

                            from orders

                            where order_num in (select order_num

                                                              from orderitems

                                                              where prod_id = 'TNT2'));

2、再举三个例证:以往亟需展现customers表中每一种客户的订单总额。

关系的表:customers,orders(存储订单与相应的顾客id)

(1)先过滤有个别特定顾客的订单数量,再推广到各种客户。

select count(※) as orders

from orders

where cust_id = 10001;

(2)对种种顾客举办count计算

select cust_name,

          cust_state,

          (select count(※)

            from orders

            where orders.cust_id = customers.cust_id) as orders

from customers

order by cust_name;

备考:该子查询对寻觅出的每一个顾客实施一回

子查询的利弊:

优点:

在where子句中使用子查询能够编写出作用很强况且很利索的SQL语句

缺点:

(1)满含子查询的select语句难以阅读和调节和测量检验。

(2)就算对嵌套的子查询的数码未有界定,可是在实质上接纳中由于天性的限定,无法嵌套太多的子查询。

版权声明:本文由威尼斯人app发布于网站首页,转载请注明出处:《mysql必知必会》学习_第六章_20180730_欢