MySQL 学习笔记 | 基本语法

类型

较少文本:

  • 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 学习笔记 | 基本语法)