MySQL 学习笔记 | 基本语法

类型

较少文本:

  • CHAR 不可变长度,声明的长度n代表最大可以存储n个长度的字符串,实际开辟内存空间不会改变。
    缺点:不省空间;优点:存储速度快
  • VARCHAR 可变长度,声明的长度n代表最大可以存储n个长度的字符串,实际开辟的内存空间会根据实际数据去收缩空间。
    缺点:速度比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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值