给自己看的,所以以举例子为主了

检索数据

  SELECT  检索单列    SELECT name FROM student

         检索多列    SELECT no, name FROM student

         检索所有列   SELECT * FROM student

         检索不同行   SELECT DISTINCT name, sex FROM student    distinct修饰的select下的所有列,也就是说两条数据,name和sex中只要有一列不同,就算不同行了。

         限制结果    SELECT no FROM student LIMIT 5        如果搜出来的行不足限制数,那么全输出

         全限定表名   SELECT student.no FROM student

排序数据

  ORDER BY   按单列排序  SELECT name FROM student ORDER BY no      未被检索的列(no字段)也是可以以其排序的

           按多列排序  SELECT * FROM student ORDER BY birthday, sex   只有结果集中存在birthday相同的数据时,这些数据才会再按照sex排序

           排序方向   SELECT * FROM student ORDER BY birthday DESC   从大到小排序,常见的情形是价格最贵的,日期最新的。

过滤数据

  WHERE   单条件    SELECT name FROM student WHERE no=10

          不匹配    SELECT name FROM student WHERE no!=10

          范围     SELECT name FROM student WHERE no BETWEEN 1 AND 3  头尾都包含,即1、2、3

          空值     SELECT name FROM student WHERE sex IS NULL

数据过滤

  AND    多条件      SELECT name FROM student WHERE name='Deolin' AND sex=1

  OR      多条件      SELECT name FROM student WHERE name='Deolin' OR name='Bld'  一般AND和OR共存的情况,直接有小括号保证计算次序,而不是通过记忆去依赖优先级

  IN     范围       SELECT name FROM student WHERE name IN ('Deolin', 'Bld')     in和or, 优先选用in,因为速度更快,易管理,更直观

  NOT      否定单个条件     SELECT name FROM student WHERE NOT name IN ('Deolin1', 'Bld1')

通配符      为了效率,不过度使用;尽量不把通配符放在开始处

   LIKE %  通配符匹配  SELECT name FROM student WHERE name LIKE 'D%n'    任何字符任何次数, name是'Dn' 'Deolin'…的数据都在范围内;LIKE '%'匹配不到null

   LIKE _   通配符匹配  SELECT name FROM student WHERE name LIKE 'Deol_n'   任何字符一次,只能1次,不能多也不能少

正则表达式

  REGEXP

    OR匹配   REGEXP '1000|2000'   匹配1000或2000

    字符匹配    REGEXP '[ab12]ton'  匹配aton或bton或1ton或2ton

    范围匹配  REGEXP '[0-9]'     相当于[0123456789]

          REGEXP '[3-6]'     相当于[3456]

          REGEXP '[b-d]'     相当于[bcd]

    转义匹配  REGEXP '\\%'     匹配字符 %

    元字符匹配 REGEXP '\\f'       换页    \\f换页   \\n换行   \\r回车   \\t制表   \\v纵向制表

    字符类匹配 REGEXP '[:alnum:]'  相当于[a-zA-Z0-9],而且三者都得有

          REGEXP '[:alpha:]'   相当于[a-zA-Z],而且两者都得有

          REGEXP '[:digit:]'    相当于[0-9]

    多匹配   {n}          指定匹配次数

          {n,}          指定匹配次数不小于n

          {n,M}         指定匹配次数为n至M

          *             0次或多次匹配

          +           相当于{1,}

          ?            相当于{0,1}

    定位匹配  ^ $          文本开始至文本结束    举例:REGEXP '1000|2000' 会匹配到 h1000或sd2000之类的,但是REGEXP ^'1000|2000'$只会匹配到1000和2000两个

    否定匹配  [^ ]          ^出现在集合(指中括号)中时,用于否定集合里的表达式

计算字段

    CONCAT()  字段拼接      SELECT CONCAT('The name is '+name+'.') FROM student  

    RTRIM()   去除右边空格    SELECT RTRIM(name) FROM student      LTRIM()左边空格,TRIM()两边空格

    AS      别名        SELECT (RTRIM(name)+sex)  AS name FROM student  结合函数和列与列之间的算数运算使用

函数

    文本处理

      LEFT() / RIGHT()      文本的左/右边字符

      LENGTH()           文本长度

      LOWER() / UPPER()     转换为小/大写

    日期      日期比较时,尽量用DATE()包裹字段;目标值的链接符号虽然/和-都可以,但尽量和字段一致,使用-

      DATE() / TIME()          取出字段的年月日/时分秒

      YEAR() / MONTH() / DAY()      取出字段的年/月/日

      HOUR() / MINUTE() / SECOND()  取出字段的时/分/秒

      NOW()               现在的日期和时间

      DAYOFWEEK()           周几

汇总数据

    聚集函数        如果是select count(no) as cnt, name from student,那么虽然cnt的值是一致的,但是还是会被复制到每个行中,因为结果集被name字段“撑开”了

      AVG()    聚集结果集中某列的平均值,参数是非数字也可行,但是会返回奇怪的结果,avg()忽略null值

      COUNT()    用的太多了,“聚集”的作用都可以参考count    count()参数是列名时,会忽略列中的null值,null值不计入总数

      MAX()    聚集结果集中某列的最大值

      MIN()     聚集结果集中某列的最小值      min()会忽略null值

      SUM()    聚集结果集中某列的和,参数是非数字也可行,但是会返回奇怪的结果

分组数据

    GROUP BY    创建分组

    HAVING      过滤分组

子查询

    IN (SELECT…)      子查询作为检索条件的值(的集合)

    SELECT (SELECT…)    子查询作为检索项目的计算值      注意这里要全限定表名

理解分组

  创建分组(GROUP BY)

  简单说就是把结果集按列隐式地分组成了很多个结果集,分组是个结果集;

  既然分组是个“结果集”,那么select中的聚集函数会对每个分组分别计算,

  可以认为,分组的目的就是为了使用聚集函数

  group by可以跟任意数量的列名,代表结合多个列进行分组;

  group by后面不能跟聚集函数;

  列中的null值是一个特殊值,区别与其他的非null值;

  过滤分组(HAVING)

  跟where非常相似,where的语法having几乎全适用;

  where过滤的是整个结果集中不符合条件的每个数据,

  having过滤的是整个结果集中符合条件的每个分组

MySQL备忘点(上)的更多相关文章

  1. MySQL备忘

    Access denied for user 'root'@'localhost' >> 执行以下语句 GRANT ALL ON dbname.* TO 'root'@'localhost ...

  2. mysql -- 备忘

    select distinct(authorid),author from forum_post where tid=1;

  3. MySQL备忘点(下)

    联结表 创建联结 FROM 表1,表2 与内连接作用相同类似:如果失去WHERE子句,会出现笛卡尔积现象 内联结 INNER JOIN 高级联结 自联结 例子:SELECT 字段b FROM 表 WH ...

  4. centos 6.4 mysql rpm 离线安装【备忘】

    离线状态下使用rpm的安装包进行mysql的安装,仅作备忘 准备工作: 官网下载mysql离线rpm安装包(这里就不演示了,拿现成的做演示) =================更新线 2018-01- ...

  5. Mysql又一次整理笔记--woods备忘

    ==============================SQL备忘 CRUD 查询 多表 事件等=============================== ------------------ ...

  6. Mysql CPU使用率长期100%的解决思路备忘

    最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...

  7. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

  8. ExtJs4常用配置方法备忘

    viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...

  9. MFC通过txt查找文件并进行复制-备忘

    MFC基于对话框的Demo txt中每行一个23位的卡号. 文件夹中包含以卡号命名的图像文件.(fpt或者bmp文件) 要求遍历文件夹,找到txt中卡号所对应的图像文件,并复制出来. VC6.0写的. ...

随机推荐

  1. Spring Boot 默认首页

    //继承 WebMvcConfigurerAdapter @Override public void addViewControllers(ViewControllerRegistry registr ...

  2. Python 遍历文件夹清理磁盘案例

    import os suffix_name_list = [".pdb", ".ilk"] def find_file(path): # 遍历文件夹 for i ...

  3. Go 信道Channel

    信道(Channel) 信道(Channel)可以被认为是协程之间通信的管道.数据可以从信道的一端发送并在另一端接收. 默认为同步模式,需要发送和接收配对.否则会被阻塞,直到另外的信道准备好后被唤醒. ...

  4. UIApplicationDelegate里面最常用的几个函数执行顺序小结

    (1)点击桌面图标正常启动App或者杀死进程后点击推送消息启动App 1.application:willFinishLaunchingWithOptions 2.application:applic ...

  5. 在浏览器输入 URL 回车之后发生了什么

    注意:本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS.HTTP2.最简单的 DNS.没有代理.并且服务器没有任何问题的基础上. 大致流程 URL 解析 DNS 查询 TCP ...

  6. CA、证书及openssl用法

    CA和证书 摘要:涉及到网络安全这一块,想必大家都听过CA吧.像百度.淘宝.京东等这些知名网站,每年都要花费一笔money来买CA证书.但其实简单的企业内的CA认证,我们自己就可以实现,今天我就讲解一 ...

  7. Nginx 的关键组件的介绍

    本文章主要介绍Nginx本身功能,不依赖第三方的任何模块.介绍常用的组件功能:反向代理.负载均衡.Http服务器.正向代理 反向代理(Reverse Proxy): 什么是反向代理呢?本人最直接的理解 ...

  8. 【转】PS1应用-修改linux终端命令行字体颜色

    原文链接:https://www.jianshu.com/p/4239d3ea72fe cd ls -la vim .bashrc 在.bashrc中加入这一行: PS1="\[\e[37; ...

  9. 数据库连接池,DBUtil的模板,dbcp,c3p0

    数据库连接池,DBUtil的模板,Druid使用(重点) 一.DBUtil模板 public class DBUtilTest { public static Connection connectio ...

  10. Controllers返回View的一个完整流程

    详细说明一个MVC框架下,返回一个view的原理.如下图: 上图粗略的说明了一个返回View的流程,细节如下: 1.定义Model类: 2.定义接口添加接口约束为class: 3.定义接口实现类,即对 ...