当前位置:首页 > 日记 > 正文

MySQL和MSSQL的比较(七)--查询

MySQL和MSSQL的比较(七)--查询
比较异同,加深记忆。

这是一个MySQL和MSSQL对比学习经验(七)是相同的,相同的地方把稍有不同的地方,我举一个例子,谢谢你的支持(一_ O U)O

本节主要介绍mysql中的基本查询(mysql官方参考手册)

MySQL中选择的基本语法形式:

选择属性列表

从表名和视图列表

{条件表达式}

{按属性的名称{有条件表达式

{属性名{ } } ASC |降序顺序

{限制,行数}
解释uff1a

WHERE子句:根据条件表达式指定的条件进行查询。

按组子句:按属性名称指定的字段分组。

有子句:对有子句有一个组,只有当条件表达式中指定的条件满足时才可以输出。

按组子句通常与聚合函数一起使用,如计数()、和()等。

ORDERBY子句:排序的属性名称指定的字段,排序的方式是通过ASC和DESC两参数指出,和默认的是由ASC,这些排序,升序。

设置测试表

创建测试表
创建表的水果

f_id char(10)不为空,
s_id INT NOT NULL,
f_name char(255)不为空,
f_price十进制(8,2)不为空,
主键(f_id)

插入测试数据
插入水果(f_id,s_id,f_name,f_price)
值(步骤,101,'apple ',5.2),
('b1 ',102,'blackberry ',5.2),
('bs1 ',105,'orange ',5.2),
('bs2 ',103,'melon ',5.2),
('t1 ',106,'banana ',5.2);
使用select语句查询的f_id字段的数据

选择f_id,f_name水果

注意:MySQL中的SQL语句不区分大小写,因此select和select函数是相同的。

这是因为SQLServer相同!

常见的查询
从水果中选择*
选择f_id,水果,f_price > 5.1 f_name
选择f_id,水果,s_id在f_name(101102)
选择f_id,水果,s_id不f_name(101102)
选择f_id,水果在2和10之间f_name f_price
选择f_id,水果在2和10之间f_price不f_name
类字符匹配查询

1%,通配符%,与任意长度字符匹配,包括零字符。
选择f_id,f_name水果,f_name like'b % y

2、_可以匹配任何下划线通配符,每次一个字符

下面的语句有四个下划线
选择f_id,水果,f_name像'____nf_name

以同样的方式,也有一些在SQLServer
使用{ }

SELECT * FROM { } { }在AAA dbo。{名称} like's _____

查询空值
创建表的客户

c_id INT NOT NULL auto_increment,
c_name char(25)不为空,
c_city char(50)空,
主键(c_id)

插入客户(c_name,c_city)
值('liming ',中国'),
('hongfang,null)
选择*从哪里c_city是客户零

选择*从客户那里c_city不空

和,或者,关键字
选择f_id,水果,f_name像'____n'and f_id = 'bs2 f_name
选择f_id,水果,f_name像'____n'or f_id = 'bs2 f_name
选择不同的s_id水果


选择s_id,计数(1)总s_id水果组

再插入两条记录
插入水果(f_id,s_id,f_name,f_price)
值('a6 ',101,'cherry ',6),
('a8 ',102,'coconut ',7)
如果你想看到各供应商提供的水果品种名称,MySQL可以使用group_concat()组中的功能,

显示每个组中每个字段的值。
选择s_id,group_concat(f_name)的s_id水果组名称

SQLServer没有group_concat()函数,和SQLServer需要使用XML功能来达到相同的效果,而MySQL是做得很好

具有:过滤包

分组数据成果表的基础上s_id显示超过1的水果包信息
选择s_id,group_concat(f_name)的s_id具有水果的组名

利用组汇总
选择s_id,计数(1)总s_id水果组与汇总

最后一行被添加,7表示总列的所有值之和。

与ROLLUP关键字也在SQLServer,详细说明:,%,立方体的关键,汇总关键和SQLServer分组功能

注意:使用汇总时,你不能使用ORDER BY子句来同时,排序的结果是,汇总和秩序是相互排斥的!

限制限制查询结果的数量。

在SQLServer,顶部使用关键字,关键字和限制使用MySQL

限制{位置偏移},行数

第一个位置偏移参数表示,如果没有指定位置偏移,MySQL开始显示从哪个行是可选参数。

它将从表中的第一条记录开始(第一记录的位置偏移量为0,第二天记录的位置偏移量为1…等等)。

返回返回项数的第二个参数行数
从水果中选择*

SELECT * FROM水果限4,3

上述结果返回第五条记录行开头的3条记录(自0开始)。

注:在mysql5.6,你可以使用极限4偏移3,这意味着你得到3的记录从第五行记录,并限制4,3返回相同的结果。

在sqlserver2012,这个语法是由MySQL语法的支持,但这需要排序的列,不像MySQL,不需要一个列排序。
使用{ }


创建表的水果

f_id char(10)不为空,
s_id INT NOT NULL,
f_name char(255)不为空,
f_price十进制(8, 2)不为空,
主键(f_id)


插入水果
(f_id,
s_id,
f_name,
f_price

select'a1,
101,
苹果,
五点二
联盟的所有
select'b1,
102,
黑莓,
五点二
联盟的所有
select'bs1,
105,
橙,
五点二
联盟的所有
select'bs2,
103,
甜瓜,
五点二
联盟的所有
select't1,
106,
香蕉,
五点二
联盟的所有
select'a6,
101,
樱桃,

联盟的所有
select'a8,
102,
椰子,

首先,s_id排序,然后返回到3的记录始于第五线
*选择
从{ } { } DBO的水果。
{ }的s_id ASC秩序
偏移4行
只取下3行;

虽然没有MySQL那么方便,但也是一种进步,为抵消性能取下可以参考Yunjian的歌:

SQL Server2012 T-SQL寻呼增强尝试

子查询

子查询是从mysql4.1介绍。

插入测试数据
创建表的TBL1(num1 int不为空);
创建表tbl2(num2 INT NOT NULL)

插入TBL1值(1)、(4)、(13)、(27);
插入tbl2值(6)、(14)、(11)、(20)

任何关键字后面是比较运算符,表示如果值的任何值的子查询返回的是真的,则返回true。

返回所有的tbl2 num2列表,然后比较num1在TBL1值与任何值大于num2,这是满足查询条件的结果。
选择在num1 >任何TBL1 num1(选择num2从tbl2)

所有的关键字后面是比较运算符,表示所有的子查询返回的值进行比较,真的,然后回到真实
选择从哪里num1 >所有num1 TBL1(选择num2从tbl2)

任何和所有的键也可以用于SQLServer
使用{ }

创建表的TBL1(num1 int不为空)
创建表tbl2(num2 INT NOT NULL)

插入TBL1值(1)、(4)、(13)、(27)
插入tbl2值(6)、(14)、(11)、(20)

选择在num1 >任何TBL1 num1(选择num2从tbl2)
选择从哪里num1 >所有num1 TBL1(选择num2从tbl2)

结果是一样的。
合并查询

使用联合关键字,当结果合并时,两个查询的列和数据类型的数量必须相同。

每个SELECT语句由并集或联合所有关键字分隔。

联合:在执行时删除重复记录,所有返回的行都是唯一的。

联合所有:不要自动排序结果而不删除重复行
选择s_id,f_name,f_price
从水果
在f_price<9
联盟
选择s_id,f_name,f_price
从水果
在s_id在(101103)

第一个查询是查询一个小于9 f_price记录,和第二查询处理s_id 101和103。

因为一些记录在f_price小于9的记录s_id是102, 105,和106,这些结果将不会被删除,并将第二查询合并。

所以最终的结果将有s_id记录的102, 105,和106。

正则表达式查询

正则表达式是不是SQLServer,但不仅在MySQL,而且功能丰富

使用正则表达式关键字指定MySQL中的正则表达式的字符匹配模式

1,查询特定字符或字符串开头的记录。

匹配以特定字符或字符串开头的文本的文本。
选择*从水果里f_name regexp的^ B
返回B的f_name场纪录
2,在某个字符或字符串的结尾查询记录。

以特定字符或字符串结尾的文本。
选择*从水果里f_name regexp'y $
返回一个记录,结束在f_name场Y
三.使用符号替换字符串中的任何字符。

字符。匹配任何字符
SELECT * FROM水果,f_name regexp'a.g

A和G的两个字母包含一个字符,而橙色符合要求。

4。使用*和+匹配多个字符

星号与前一个字符匹配的次数最多,包括0次,至少一次字符加上匹配前的字符。
选择*从水果里f_name regexp的^巴*

黑莓和香蕉符合要求,B开始,任何一个匹配多次,无论订单出现在哪里。
选择*从水果里f_name regexp的^ BA +

+至少匹配字母A,只有香蕉满足匹配条件。

5。匹配指定字符串

正则表达式可以匹配指定的字符串,只要在查询文本字符串被如匹配多个字符串分隔符分隔|之间的多个字符串
选择*从水果里f_name regexp'on | AP

你可以看到苹果、甜瓜和椰子的3个价值观包括字符串和AP,以满足匹配条件。

6。匹配指定字符中的任何一个

括号指定字符集,只有一个字符,即要查找的文本。
选择*从水果里{ }f_name regexp OT

括号还可以指定值集。
选择*从水果里s_id regexp的{ 456 }

在s_id字段的值的3个数字1是匹配的记录字段

{ 456 }也可以作为指定的集合间隔写入。

7。与指定字符以外的字符匹配。

字符集,而不是指定集合中的任何{ }字符。
选择*从水果里f_id regexp的{ ^ a-e1-2 }

返回一个记录,是不是在一个AE 1-2封信的开头,如A1,B1,不符合要求。

8。使用{、}、或n和m }来指定连续字符串的数目。

字符串是{,},至少表示N时间之前的字符;字符串n和m表示匹配前的字符串不小于n次,不超过m次。
选择*从水果里f_name regexp'b { 1 }
至少有1个字母B、黑莓和香蕉都符合要求。
选择*从水果里f_name regexp'ba { }的1,3

BA字符串至少出现一次,最多三次,香蕉串符合要求。

总结

本节介绍了MySQL的查询与SQL Server进行比较,尤其是定期查询MySQL的灵活性

这比SQLServer的一点

如果有不对的地方,欢迎派专噢(一_ u)O

附上一个O(色情作者_ U)这是O.

相关文章

2014中国电子商务行业门户网站大会

2014中国电子商务行业门户网站大会

产业,行业,门户网站,中国电子商务,大会,由中国电子商务协会主办的2014中国电子商务门户大会将在北京媒体中心在2014年9月21日举行。这次会议聚集了电子商务行业的精英和政治和商业界的领导人讨论了电子商务的发展前景。 电子商务门户之路 …

edisk.exe的过程是什么的edisk过程

edisk.exe的过程是什么的edisk过程

文件,过程,电脑软件,edisk,exe,点评:edisk.exe的McAfee VirusScan杀毒安全套件为您的系统状态备份的一部分 进程文件:edisk或edisk.exe 进程名称:McAfee VirusScan急救盘的创造者 过程类别:安全风险的过程 英文描述: edisk.exe是一个过程,属于M…

Win8.1企业版添加管理员设置和启动

Win8.1企业版添加管理员设置和启动

启动,管理员,屏幕,设置,企业版,注释:企业版Windows 8.1企业系统支持IT管理员设置和更改系统启动屏幕的默认布局特性,用于设置工作组用户的默认启动屏幕布局,并防止其他用户更改布局的新功能。 近日,微软强调,企业版的Windows 8.1企业系统支持管…

什么是字体查看程序什么fontview查

什么是字体查看程序什么fontview查

查询,字体,过程,功能,程序,点评:FONTVIEW.EXE是一个W32。opaserv。T病毒相关程序。该木马允许攻击者访问你的计算机,窃取密码和个人数据 进程文件:fontview或FONTVIEW.EXE 进程名称:W32。opaserv T病毒。 过程类别:安全风险的过程 英文描述: FO…

多excel表格条件自动求和公式

多excel表格条件自动求和公式

条件,公式,表格,电脑软件,excel,我们在excel中做统计,我们经常遇到使用有条件的,它是数据项的某个条件: 1。利用SUMIF单条件求和公式(): 要计算C列中的数据,需要统计条件是B列中的数据是条件1,并将结果放入C6单元中。只要我们输入公式= SUMIF(B2:B5…

tor.exe的过程是怎样的功能是什么

tor.exe的过程是怎样的功能是什么

文件,是怎样,功能,过程,程序,点评:你找到了一个在Windows任务管理器tor.exe过程它为什么在运行是病毒吗把一个问题知道什么是tor.exe! 日历功能 tor.exe工艺文件通常是Tor / Tor项目,或是会和Polipo,隐藏自己的IP地址,0.2.0.2-alpha类似Tor的…

MySQL模糊查询和regexp的总结

MySQL模糊查询和regexp的总结

模糊,查询,电脑软件,MySQL,regexp,喜欢和regexp在MySQL实现模糊查询。 ------------------------ 使用类似于许多人都知道,最常用的是从名称%一%的选择*; %表示一个任意字符,其效果就像是在*一个正则表达式,它有几个用途:%、%一%、%,分别是什…

mysql索引的详细介绍

mysql索引的详细介绍

索引,详细介绍,电脑软件,mysql,MySQL索引概述 所有的MySQL的列类型可以被索引,使用索引的相关栏目是提高选择操作性能的最佳途径。根据每个表的存储引擎的最大指数和最大长度指标的定义,所有的存储引擎支持至少16个指标每桌,至少有256个字节…

浅析MySQL替换的使用

浅析MySQL替换的使用

替换,电脑软件,MySQL,这可以在sql server中处理: 复制代码代码如下所示: 如果不存在(从T选择id为1的1) 插入T(ID,update_time)值(1,getdate()) 其他的 更新设置update_time = getdate(),ID = 1 那么MySQL是如何实现这种逻辑的呢不必担心,MySQL中有一个更简…

MySQL如何查询在一段时间内未售出

MySQL如何查询在一段时间内未售出

商品,查询,内未,电脑软件,MySQL,前端时间,室友带来一个关于MySQL查询的问题: 有3张桌子: 1、zd_product产品表zp_id主键(产品ID)inputtime(产品发布时间) 2、zd_order订单zp_id外键(产品ID)zo_id主键(ID)zo_voer_time(订单完成时间) 3、zd_ord_pro产…

如何找出隐藏在Win7的Windows邮件

如何找出隐藏在Win7的Windows邮件

邮件,电脑软件,Windows,点评:对于一个不熟悉的朋友用WIN7,你只能看到4找到Windows邮件隐藏在win7和需要的朋友分享它的小步骤 一种方法是简单的,它只需要4个小步骤找到Windows邮件隐藏在win7。很多朋友认为Windows邮件已被删除,在Win7,但它不是,…

在一些魔法的使用转移到提高工作效

在一些魔法的使用转移到提高工作效

债券,提高工作效率,魔法,转移到,电脑软件,点评:如果我们能将鼠标和键盘操作,一些捷径来按时完成工作的使用,提高效率仍然是非常有效的,一些神奇的介绍移动Windows7键,感兴趣的朋友可以参考 键盘和鼠标的操作效率不如触摸操作直观方便。但如果我…