美文网首页
MySQL 学习笔记 | 基本语法

MySQL 学习笔记 | 基本语法

作者: 赏花 | 来源:发表于2019-08-13 22:56 被阅读0次

    类型

    较少文本:

    • CHAR 存储定长数据,需要定义长度
    • VARCHAR 存储变长数据,需要在括号里定义长度,存储效率没char
    • 字母、数字、标点符号 占用一个字节
    • 中文占用三个字节
    • 知道固定长度用char,经常变化用varchar
    • 超过255字节用varchar或者text

    较长文本:

    • TEXT 保存字符串文本
    • BLOB 保存二进制文本

    日期:

    • DATATIME YYYY-MM-DD HH:MM:SS
    • DATASTAMP 时间戳 YYYYMMDD HHMMSS

    常用语句

    1. 插入INSERT

    • 多行用 INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ), ( value1, value2,...valueN );
    • 单行用 value

    2. 查询SELECT

    • SELECT column_name,column_nameFROM table_name
      WHERE condition
      LIMIT N;
    • SELECT * from table_name WHERE column_name = '菜鸟教程';

    3. WHERE

    • WHERE condition1 AND /OR condition2.....
    • WHERE column_name =(SELECT MAX(column_name) FROMtable_name

    4. 更新UPDATE

    UPDATE table_name SET field1=new-value1, field2=new-value2
    WHERE condition;

    5. 删除表中数据

    DELETE FROM table_name WHERE condition;

    6.LIKE

    SELECT * from table_name WHERE column_name LIKE '%COM';
    获取表中column_name字段中以com结尾的记录

    7. UNION - 连接SELECT语句

    SELECT country FROM table_name1
    UNION/ UNION ALL
    SELECT country FROM table_name2
    ORDER BY country;

    SELECT column1, column2 FROM table_name1 WHERE conditions
    UNION/ UNION ALL
    SELECT column1, column2 FROM table_name2 WHERE conditions
    ORDER BY column_name;

    • UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)

    • UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)
      菜鸟教程

    8. 连接JOIN

    • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
    • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录
      left join
      SELECT a.column_name, b.column_name
      FROM table_name1 AS a
      LEFT JOIN
      table_name2 AS b
      ON a.column_x_name = b.column_x_name;

    9. 排序 OEDER BY

    • SELECT * from table_name ORDER BY column_name ASC;
    • SELECT * from table_name ORDER BY column_name DESC;

    10. 分组 GROUP BY

    • GROUP BY语句根据一个或多个列对结果集进行分组。
    • 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
    • 使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:
      SELECT column_name1, COUNT(*) AS column_name2
      FROM table_name
      GROUP BY column_name;
    • WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
      例如我们按名字进行分组,再统计每个人登录的次数:
      SELECT column_name1, SUM(记录登陆次数的列)AS column_singinCount
      FROM table_name
      GROUP BY column_singinCount
      WITH ROLLUP;
      菜鸟教程
    • HAVING 后接条件判断 #条件判断的字段必须是聚合函数返回的结果
      SELECT dept, COUNT(user_name) AS count_tmp FROM table_name GROUP BY dept HAVING count_tmp>1;

    相关文章

      网友评论

          本文标题:MySQL 学习笔记 | 基本语法

          本文链接:https://www.haomeiwen.com/subject/swdijctx.html