zoukankan      html  css  js  c++  java
  • 单表数据查询

    插入数据

    插入多条记录

    INSERT INTO 表名 VALUES 
    (值1,值2...值n),
    (值1,值2...值n),
    (值1,值2...值n);

    插入查询结果,结果需一一对应

    INSERT INTO 表名(字段1,字段2,字段3...字段n)
    SELECT (字段1,字段2,字段3...字段n)
    FROM 表2
    WHERE 条件;

    更新数据

    UPDATE 表明 SET
    字段1=值1,
    字段2=值2,
    WHERE 条件;

    删除数据

    DELETE FROM 表名
    WHERE 条件;

    查询数据 ,执行顺序FROM,WHERE,GROUP BY,DISTINCT,HAVING,SELECT,ORDER_BY,LIMIT

    distinct:查询结果去重

    SELECT DISTINCT post FROM employee;

    对查询结果做计算:如查年薪

    SELECT name,salary*12 FROM employee;

    AS关键字起别名,也可以不用AS关键字,直接跟后面,默认就是别名

    SELECT name,salary*12 AS annual_salary FROM employee; 

    CONCAT定义显示格式

    SELECT CONCAT('姓名:',name,'性别:',sex) FROM employee;

    CONCAT定义显示格式后,表头格式为concat('姓名:',name,'性别:',sex),用AS定义表头别名

    SELECT CONCAT('姓名:',name,'性别:',sex) AS info FROM employee;

    多字段查询并格式化+计算

    SELECT 
    CONCAT('姓名:',name,'性别:',sex) AS info,
    CONCAT('年薪:',name,'性别:',salary*12) AS annual_salary,
    FROM employee; 

    CONCAT_AS拼接数据

    SELECT CONCAT_WS(':',name,age) FROM employee;

    WHERE条件过滤

    where后面不能用聚合函数

    • 比较运算符:>,<,>=,<=,<>,!=
    • 结果限制范围:between 80 and 100,即大于等于80并小于等于100
    • in(80,90,100),值是80,90或100
    • is Null,is not Null。注,空不是空字符串
    • like 'ya%',%表示任意多字符,_表示一个字符
    • 逻辑运算,多个条件可直接用and,or或not进行拼接

    GROUP BY,对查询的结果数据进行分组,如按性别进行分组

    SELECT * FROM employee GROUP BY post 

    目的:对数据进行分类处理。

    注:分组以后只能取组依据字段

    设置分组为严格模式,设置后分组后就只能查看到分组依据字段

    SET GLOBAL sql_mode="ONLY_FULL_GROUP_BY"

    聚合函数,对分组后进行统计

    • max:最大值
    • min:最小值
    • avg:平均值
    • sum:求和
    • count:统计

    如:

    #统计每组个数
    SELECT COUNT(id) FROM employee GROUP BY post 
    #查找每组最大值
    SELECT MAX(salary) FROM employee GROUP BY post
    #查找每组最小值
    SELECT MIN(salary) FROM employee GROUP BY post
    #查看每组平均值
    SELECT AVG(salary) FROM employee GROUP BY post 

    注:

    • 不能用unique字段进行分组,因为制定了unique熟悉的字段都唯一
    • 不分组则整体为一组,也可用聚合函数

    GROUP_CONCAT,查询分组后每组详细信息

    SELECT post,group_concat(name) FROM employee GROUP BY post; 

    HAVING过滤

    group by在分组之前过滤

    having在分组之后过滤

    #查询各岗位内包含的员工个数小于2的岗位名、岗位内员工姓名、个数
    SELECT post,GROUP_CONCAR(name),COUNT(id) FROM employee GROUP BY post HAVING COUNT(id) < 2

    ORDER BY排序,默认按id升序排列

    升序:ASC

    降序:DESC

    SELECT * FROM employee ORDER BY age ASC 

    先按age升序排,若age相同,则按id降序排

    SELECT * FROM employee ORDER BY age ASC,id DESC;

    LIMIT n,限制返回数

    #返回3条数据
    SELECT * FROM employee LIMIT 3

    使用limit简单做分页功能

    从0开始,取5条记录

    SELECT * FROM employee LIMIT 0,5;

    单表查询总结:查询即SELECT

    语法顺序:

    SELECT
    DISTINCT
    FROM
    WHERE GROUP BY HAVING ORDER BY LIMIT n

    执行顺序:

    FROM
    WHERE
    GROUP BY
    HAVING
    DISTINCT
    ORDER BY
    LIMIT

     REGEXP正则查询

    • ^匹配开头 
    • $匹配结尾
    #查询name字段jin开头的数据
    SELECT * FROM employee WHERE name REGEXP '^jin';
    #查询name字段jin开头,g或n结尾的数据
    SELECT * FROM employee WHERE name REGEXP '^jin.*(g|n)$';

    mysql正则和 re正则大同小异

  • 相关阅读:
    jquery事件之事件委托和事件切换
    jquery事件之事件处理函数
    jquery动画效果
    jquery筛选元素函数
    jquery操作DOM
    jquery对css操作
    jquery属性操作
    Jquery选择器(三)
    Jquery选择器(二)
    Jquery选择器(一)
  • 原文地址:https://www.cnblogs.com/yaya625202/p/9063947.html
Copyright © 2011-2022 走看看