回顾MySQL基础

Mysql


注释

-- 注释
# 仅mysql中也可以用这个

创建数据库

CREATE DATABASE 数据库名;

使用数据库

USE 数据库名;

个人建议 操作数据库前, 先使用USE语句选择要操作的数据库 这样可以防止误操作

数据库里面的命名尽量使用小写字母 用_分隔单词 如 table_1 information_schema 因为sql中的关键字都是用的大写

DDL

Data Definition Language 数据定义语言

定义数据结构和修改数据的语言

创建表

-- 创建一个表 需要指定列
CREATE TABLE 表名 (
    列名 数据类型 完整性约束 COMMENT '列备注',
    ...可以有多条 用逗号分隔 最后一句不带逗号
) COMMENT '表备注';

数据类型

最常用的几种

sql中的数据类型对应java中的数据类型

sql java
INT Integer
DECIMAL Double
VARCHAR(长度) String
DATETIME, DATE Date

完整性约束

主键约束

  • 一张表只有一个主键
  • 主键可以由一个或多个列组成(一般是一个列)
  • 主键的值非空(不能为null)且唯一(不能有重复值)
  • 主键作为这条数据的唯一标识
  • 一般把表中的id列设置为主键

CRUD 增(create)删(delete)改(update)查(read) (重要)


插入数据

-- 插入数据
INSERT INTO 表名(列名,列名 ...) 
VALUES(值,值...);

列和值一一对应

列可以不用全给 个人建议全给 没有值的给NULL值

删除数据

-- 删除数据
DELETE FROM 表名 WHERE 条件;

删除基于条件,满足条件的数据都会被删除. 因此条件不建议省略, 省略条件会导致整张表的数据删除, 条件尽量使用唯一标识.

修改数据

-- 修改数据
UPDATE 表名 SET 列名=值 , 列名=值
WHERE  条件;

修改基于条件,满足条件的数据都会被修改. 因此条件不建议省略

查询数据

-- 查询所有信息
SELECT * FROM 表名;

-- 完整的查询格式
SELECT 列名 AS 别名, -- AS 可以省略
       列名
FROM 表名
WHERE 条件 -- WHERE 对查询后的结果过滤;

复杂查询

聚合函数

SUM(列名) 求和
AVG(列名) 求平均值
MAX(列名) 求最大值
MIN(列名) 求最小值
COUNT(列名) 计数

分组

GROUP BY 列名 对查询后的结果 按某一列的值进行分组

分组可以用来去重

分组可以和聚合函数结合使用 求分组后的每一组的聚合后的结果

HAVING 条件 对分组后的结果进行过滤

排序

ORDER BY 列名 规则, 列名 规则... 对结果按某一列排序

默认正序 倒序需要指定规则为DESC

SELECT 列名 AS 别名
FROM 表名
WHERE 条件
GROUP BY ...
HAVING 条件
ORDER BY ...;

去重

DISTINCT 列名 列中去重重复值

可以在聚合函数中用 也可以在SELECT中使用

posted @ 2021-01-14 12:11  Yao_xi  阅读(86)  评论(0编辑  收藏  举报