MySQL必知必会,要点记录

第04章 检索数据
 
检索不同的数据 DISTINCT

SELECT DISTINCT 字段名
注意: 不能部分使用DISTINCT
DISTINCT 关键字应用于所有列而不仅是前置它的列,如果给出 SELECT DISTINCT 字段名1,字段名2 ,除非指定的两个列都不同,否则所有行都将被检索出来。


第07章 过滤数据
 
IN 操作符一般比 OR 操作符清单更快!
 
MySQL中的NOT :  MySQL支持使用 NOT 对 IN、BETWEEN 和 EXISTS 子句取反,这与多数其他 DBMS(数据库管理系统) 允许使用 NOT 对各种条件取反有很大的差别。
 
第08章 用通配符进行过滤
  
LIKE的通配符 有 “%” 和 “_”。 “%” 通配符,匹配0到n个任意字符,不包括null。 “_”  通配符,匹配一位任意字符,不包括 null。


不要过度的使用通配符,如果其他操作符能达到相同的目的,应该使用其他的操作符。
在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
 
第09章 用正则表达式进行搜索
 
MySQL中使用正则表达式,用 REGEXP  

SELECT * FROM 表名 WHERE name REGEXP ‘.ilei’; 

将搜索出所有 ilei 前有一位任意字符的结果。

 
注意:LIKE 匹配整个列。如果被匹配的文本在列值中出现,LIKE 将不会找到它,相应的行也不被返回(除非使用通配符),而 REGEXP 在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP 将会找到它,相应的行将被返回。这是一个非常重要的差别。
 
MySQL自3.23.4版本后,REGEXP 不区分大小写。 若想区分大小写,需要加关键字 “BINARY”。如 WHERE  表名 REGEXP BINARY ‘JetPack .000’ 。
 
匹配“\”:为了匹配反斜杠(\)字符本身,需要使用\\\。
\或\\ ?:多数正则表达式实现使用单个反斜杠转义特殊字符以便能使用这些特殊字符本身。但MySQL要求两个反斜杠(MySQL自己解释一个,正则表达式库解释一个)。

 
可以在不使用数据库表的情况下用 SELECT 检查总是返回0(没有匹配)或1(匹配)。可以用带文字串的 REGEXP 来测试表达式,并试验它们。相应的语法如下:
SELECT ‘hello’ REGEXP ‘[0-9]’;

这个例子显然将返回 0(因为文本hello中没有数字)。


第10章 创建计算字段


假设需要显示   商品名(商品编号)  而商品名与商品编号存在于两个字段中, 那么可以采用 Concat()

SELECT Concat(name,'(',id,')');

MySQL的不同之处 :多数 DBMS 使用 + 或 || 来实现拼接,MySQL则使用 Concat() 函数来实现。 当把SQL语句转换成MySQL语句时一定要把这个区别铭记于心。


去掉内容两侧空格,可使用 Trim()、RTrim()、 LTrim()

SELECT Trim(字段名)


MySQL算数操作符 : 加 + 、 减 - 、乘 * 、除 /

SELECT 字段1 * 字段2


如何测试计算:  SELECT 提供了测试和试验函数与计算的一个很好的办法,虽然 SELECT 通常用来从表中检索数据,但可以省略 FROM 自居一边简单地访问和处理表达式。 例如:SELECT 3*2; 将返回 6,SELECT Trim('asd '); 将返回 asd ,而SELECT Now() 利用 Now() 函数返回当前日期和时间,通过这些例子,可以明白如何根据需要使用SELECT 进行实验。


第11章 使用数据处理函数


常用的文本处理函数


    Length()             返回串的长度
    Lower()              将串转为小写
    Upper()              将串转为大写
    LTrim()               去左侧空格
    RTrim()              去右侧空格
    Trim()                 去两侧空格

    Left()                            返回字符串左边的字符                                             说明:left(被截取字段,截取长度) 
    Right()                         返回字符串右边的字符                                             说明:right(被截取字段,截取长度) 
    Locate()                      找出串中的一个子串(第一次出现的位置)          说明:LOCATE(子串, 字段)
    SubString()                 返回子串的字符                                                         说明:substring(被截取字段,从第几位开始截取,截取长度)
    SubString_Index()     按关键字截取字符串                                                 说明:substring_index(被截取字段,关键字,关键字出现的次数)
    Soundex()                   返回串的 SOUNDEX 值

    SOUNDEX 是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。 SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。虽然 SOUNDEX 不是SQL概念,但是MySQL(就像多数DBMS一样)都提供对SOUNDEX的支持。


常用日期和时间处理函数


    AddDate()                    增加一个日期(天、周等)
    AddTime()                   增加一个时间(时、分等)
    CurDate()                    返回当前日期
    CurTime()                   返回当前时间
    Date()                          返回日期时间的日期部分
    DateDiff()                    计算两个日期之差
    Date_Add()                 高度灵活的日期运算函数
    Date_Format()           返回一个格式化的日期或时间串
    Day()                            返回一个日期的天数部分
    DayOfWeek()              对于一个日期,显示对应的星期几
    Hour()                          返回一个时间的小时部分
    Minute()                       返回一个时间的分钟部分
    Month()                        返回一个时间的月份部分
    Now()                           返回当前日期和时间
    Secound()                   返回一个时间的秒部分
    Time()                          返回一个日期时间的时间部分
    Year()                           返回一个日期的年份部分


数值处理函数

    Abs()                           返回一个数的绝对值

    Cos()                          返回一个角度的余弦

    Exp()                           返回一个数的指数值

    Mod()                          返回除操作的余数

    Pi()                              返回圆周率

    Rand()                        返回一个随机数

    Sin()                            返回一个角度的正弦

    Sqrt()                           返回一个数的平方根

    Tan()                           返回一个角度的正切

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值