仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 642|回复: 7
打印 上一主题 下一主题

[学习教程] 发布我的MYSQL进修心得(五)

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:08:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
也许最好的策略是以不变应万变:给客户他们所需要的,不多也不少。如果MySQL学习教程适合他们,他们就不应该买别的工具。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。MySQL中的运算符良多,这一节次要讲MYSQL中有的,而SQLSERVER没有的运算符
平安即是运算符(<=>)
这个操纵符和=操纵符实行不异的对照操纵,不外<=>能够用来判别NULL值。
在两个操纵数均为NULL时,其前往值为1而不为NULL;
而当一个操纵数为NULL时,其前往值为0而不为NULL。
上面分离是SELECTNULL<=>1SELECT1<=>0SELECTNULL<=>NULL的实行了局
在两个操纵数均为NULL时,其前往值为1而不为NULL;




LEAST运算符
语法格局为:LEAST(值1,值2,...值n),个中值n暗示参数列表中有n个值。在有两个或多个参数的情形下,前往最小值。
假设恣意一个自变量为NULL,则LEAST()的前往值为NULL

利用LEAST运算符举行巨细判别,SQL语句以下:
  1. [color=#0000FF]SELECT[/color]LEAST([color=#800000][b]2[/b][/color],[color=#800000][b]0[/b][/color]),LEAST([color=#FF0000][/color][color=#FF0000]a[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]b[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]c[/color][color=#FF0000][/color]),LEAST([color=#800000][b]10[/b][/color],[color=#0000FF]NULL[/color])
复制代码

由了局能够看到,当参数中是整数大概浮点数时,LEAST将前往个中最小的值;
当参数为字符串时,前往字母中按次最靠前的字符;
当对照值列表中有NULL时,不克不及判别巨细,前往值为NULL

GREATEST运算符
语法格局为:GREATEST(值1,值2,...值n),个中n暗示参数列表中有n个值。
在有两个或多个参数的情形下,前往最年夜值。
假设恣意一个自变量为NULL,则GREATEST()的前往值为NULL

利用GREATEST运算符举行巨细判别,SQL语句以下:
  1. [color=#0000FF]SELECT[/color]GREATEST([color=#800000][b]2[/b][/color],[color=#800000][b]0[/b][/color]),GREATEST([color=#FF0000][/color][color=#FF0000]a[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]b[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]c[/color][color=#FF0000][/color]),GREATEST([color=#800000][b]10[/b][/color],[color=#0000FF]NULL[/color])
复制代码



由了局能够看到,当参数中是整数大概浮点数时,GREATEST将前往个中最年夜的值;
当参数为字符串时,前往字母中按次最靠后的字符;
当对照值列表中有NULL时,不克不及判别巨细,前往值为NULL
REGEXP运算符
在SQLSERVER里是没有正则函数大概运算符的,MYSQL在这方面切实其实对照完美
用来婚配字符串,语法格局为:exPRREGEXP婚配前提,假如expr满意婚配前提,前往1;
假如不满意,则前往0;
若expr或婚配前提恣意一个为NULL,则了局为NULL

经常使用的几种通配符:
(1)^婚配以该字符前面的字符开首的字符串
(2)$婚配以该字符前面的字符开头的字符串
(3).婚配任何一个单字符
(4)[...]婚配在方括号内的任何字符。比方,“[abc]"婚配a、b或c。
字符的局限可使用一个-,“[a-z]”婚配任何字母,而“[0-9]”婚配任何数字
(5)*婚配零个或多个在他后面的字符。比方,“x*”婚配任何数目的*字符,“[0-9]*”婚配任何数目的数字,
而“.*”婚配任何数目的任何字符。

利用REGEXP运算符举行字符串婚配运算,SQL语句以下:
  1. [color=#0000FF]SELECT[/color][color=#FF0000][/color][color=#FF0000]ssky[/color][color=#FF0000][/color]REGEXP[color=#FF0000][/color][color=#FF0000]^s[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]ssky[/color][color=#FF0000][/color]REGEXP[color=#FF0000][/color][color=#FF0000]y$[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]ssky[/color][color=#FF0000][/color]REGEXP[color=#FF0000][/color][color=#FF0000].sky[/color][color=#FF0000][/color],[color=#FF0000][/color][color=#FF0000]ssky[/color][color=#FF0000][/color]REGEXP[color=#FF0000][/color][color=#FF0000][ab][/color][color=#FF0000][/color];
复制代码

由了局能够看到,指定婚配字符串为ssky。
^s暗示婚配任何故字母s开首的字符串,因而满意婚配前提,前往1;
y$暗示婚配任何故字母y开头的字符串,因而满意婚配前提,前往1;
.sky暗示婚配任何故sky开头,字符长度为4的字符串,因而满意婚配前提,前往1;
^s暗示婚配任何故字母s开首的字符串,因而满意婚配前提,前往1;
[ab]暗示婚配任何包括字母a大概b的字符串,指定字符串中没有字母a也没有字母b,因而不满意婚配前提,前往0;

TipS:正则表达式是一个能够举行庞大查询的壮大工具,相对LIKE字符串婚配,他可使用更多的通配符范例
查询了局加倍天真。
逻辑运算符
逻辑与运算符:AND大概&&
逻辑或运算符:OR大概||
下面两个运算符就不说了,只是比SQLSERVER多了&&和||的写法

异或运算符:XOR
当恣意一个操纵数为NULL时,前往值为NULL;关于非NULL的操纵数,假如两个操纵数都长短0值大概都是0值,则前往了局为0;
假如一个为0值,另外一个为非0值,前往了局为1

利用异或运算符XOR举行逻辑判别,SQL语句以下
  1. [color=#0000FF]SELECT[/color][color=#800000][b]1[/b][/color]XOR[color=#800000][b]1[/b][/color],[color=#800000][b]0[/b][/color]XOR[color=#800000][b]0[/b][/color],[color=#800000][b]1[/b][/color]XOR[color=#800000][b]0[/b][/color],[color=#800000][b]1[/b][/color]XOR[color=#0000FF]NULL[/color],[color=#800000][b]1[/b][/color]XOR[color=#800000][b]1[/b][/color]XOR[color=#800000][b]1[/b][/color]
复制代码


由了局能够看到‘1XOR1’和‘0XOR0’中运算符双方的操纵数都为非零值,大概都是零值,因而前往0;
1XOR0中双方的操纵数,一个为0值,另外一个为非0值,前往了局为1;
1XORNULL中有一个操纵数为NULL,前往了局为NULL;
1XOR1XOR1中有多个操纵数,运算符不异,因而运算符从左到右顺次盘算,1XOR1的了局为0,再与1举行异或运算,因而了局为1。

TIPS:aXORb的盘算同等于(aAND(NOTb))大概(NOTaAND(b))
位运算符
因为对照罕用到,这里只做复杂先容,一样位运算符在SQLSERVER里是没有的
位运算符是用来对二进制字节中的位举行测试、移位大概测试处置
MYSQL中供应的位运算有
按位或(|)
按位与(&)
按位异或(^)
按位左移(<<)
按位右移(>>)
按位取反(~):反转一切比特

TIPS:可使用BIN()=binary函数检察一个十进制数的二进制暗示
比方20这个数字SELECTBIN(20)
二进制暗示为:10100

出格提醒
某一些MYSQL中的特别字符必要用本义字符才干拔出数据库,不然发生料想以外的了局。
上面的特别字符必要在输出时加反斜线标记开首
输出单引号必要:
输出双引号必要:
输出反斜杠:
输出回车符:
输出换行符:

输出制表符:        ab
输出退格符:
在拔出这些特别字符到数据库之前必定要举行本义处置
在SQLSERVER里,这些特别字符不是在后面加反斜杠,而是加单引号

比方拔出一个单引号,加了反斜杠,拔出乐成
  1. [color=#0000FF]INSERT[/color][color=#0000FF]INTO[/color]table_1(NAME)[color=#0000FF]VALUES[/color]([color=#FF0000][/color][color=#FF0000][/color][color=#FF0000][/color][color=#FF0000])SELECT*FROMtable_1[/color]
复制代码

总结
这一节复杂先容了MYSQL里的一些运算符和特别字符,而且对照了与SQLSERVER的区分
你会发现实际上MySQL可以更少地占用资金,前者的每CPU许可费用一般从4000美元到25000美元不等,而MySQL企业版的支持和维护成本就更低了。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-18 18:03:48 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
莫相离 该用户已被删除
板凳
发表于 2015-2-2 18:30:03 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
第二个灵魂 该用户已被删除
地板
发表于 2015-2-8 04:37:00 | 只看该作者
发几份SQL课件,以飨阅者
山那边是海 该用户已被删除
5#
发表于 2015-2-24 14:07:38 | 只看该作者
无法深入到数据库系统层面去了解和探究
再见西城 该用户已被删除
6#
发表于 2015-3-7 12:28:47 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
透明 该用户已被删除
7#
发表于 2015-3-15 06:34:53 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
柔情似水 该用户已被删除
8#
发表于 2015-3-21 20:46:23 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-1 14:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表