资讯专栏INFORMATION COLUMN

MySQL/MariaDB 语句速查笔记

GitChat / 1668人阅读

摘要:字符串固定长度字符串,长度为,最大为。原文标题速查笔记发布日期原文链接。

平时实际开发的时候,其实并不太依赖 MySQL 作为 关系型数据库 中的 “关系” 这一属性,更多地只是把 MySQL 作为数据存储的介质。因此 MySQL 语句其实很少写,所以本文用于记录一些 MySQL 在常规数据操作中的常用语法,备查。少用或者不用的知识就不列了。

本文地址:https://segmentfault.com/a/1190000019659700

基础 CURD Create,添加数据
INSERT INTO 表名 (列名, 列名, ...)
VALUES (值, 值)
Update,更新数据
UPDATE 表名 SET 列名=值, 列名=值, ...
WHERE 条件 ...
Read,读取 基本操作
SELECT 列名, 列名, ... WHERE 条件 ...
获取数据并去掉重复项
SELECT DISTINCT 列名, 列名, ... WHERE 条件 ...
Delete,删除
DELETE FROM 表名 WHERE 条件 ...
Find or Create 逻辑

这是一个很实际的需求,业务需要依据条件获取一个条目,如果不存在,则创建该条目。如果用 select + insert 组合,那么这个操作并不原子。理想情况下是使用 UNIQUE,但很多时候并不行。那么可以采用以下的语句:

INSERT INTO 表名 (列名1, 列名2, 列名3, ...)
SELECT * FROM (SELECT 值1 AS 列名1, 值2 AS 列名2, 值3 AS 列名3, ...) AS tmp
WHERE NOT EXISTS (
    SELECT id FROM 表名
    WHERE 条件 ...
) LIMIT 1
数据表操作、调整 获取表信息
desc 表名
获取表创建语句
show create table 表名
添加字段
# 非空、带默认值:
ALTER TABLE 表名 ADD 列名 数据类型 NOT NULL DEFAULT 默认值 COMMENT 注释
# 不带默认值:
ALTER TABLE 表名 ADD 列名 数据类型 COMMENT 注释
# 指定添加字段的位置
ALTER TABLE 表名 ADD 列名 数据类型 COMMENT 注释 AFTER 前一列名
修改字段
# 修改字段类型
ALTER TABLE 表名 MODIFY 列名 数据类型 ...        # 后面的 ... 需要和前面添加字段的 “数据类型” 后面的那些项一致
# 修改字段名
ALTER TABLE 表名 CHANGE 列名 新列名 数据类型 ...
MySQL 常用数据类型 整型数值

tinyint:相当于 int8_t

smallint:相当于 int16_t

int:相当于 int32_t

bigint:相当于 int64_t,建议用 bigint 存 timestamp 类型

上述四种数据,可以加上 unsigned 表示无符号数,比如 tinyint unsigned 相当于 uint8_t

定义整型数值时,可以在后面加上括号,写一个数字,如 int(11),这个数字仅仅表示显示长度(十进制),不影响实际数据位宽。

字符串

char(n) :固定长度字符串,长度为 n,最大为 255。

varchar(n):变长字符串,最长长度为 n,最大为 65535。

日期和时间

date:日期,格式为 "2008-12-2"

time:仅时间,格式为 "13:15:55" 或 "13:15:55:123"

datetime(m):日期和时间,m 表示秒小数点后的位数

timestamp:不建议用,该值相当于 int32_t,有 2038 年问题

参考资料

MySQL: Insert record if not exists in table


本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

原作者: amc,欢迎转载,但请注明出处。

原文标题:MySQL 速查笔记

发布日期:2019-07-02


原文链接:https://cloud.tencent.com/developer/article/1455009。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49258.html

相关文章

  • mysql - 收藏集 - 掘金

    摘要:步优化以及其它数据库后端掘金原文链接在发表了一篇简洁有效有趣和令人信服的分钟教程描述了如何进行优化。关于的七种后端掘金对于的,在学习起来可能是比较乱的。 5 步优化 MongoDB 以及其它数据库 - 后端 - 掘金原文链接 Jared Rosoff 在 Scale Out Camp 发表了一篇简洁、有效、有趣和令人信服的《8 分钟 MongoDB 教程》描述了如何进行 MongoDB...

    roadtogeek 评论0 收藏0
  • mysql - 收藏集 - 掘金

    摘要:步优化以及其它数据库后端掘金原文链接在发表了一篇简洁有效有趣和令人信服的分钟教程描述了如何进行优化。关于的七种后端掘金对于的,在学习起来可能是比较乱的。 5 步优化 MongoDB 以及其它数据库 - 后端 - 掘金原文链接 Jared Rosoff 在 Scale Out Camp 发表了一篇简洁、有效、有趣和令人信服的《8 分钟 MongoDB 教程》描述了如何进行 MongoDB...

    Donald 评论0 收藏0
  • Makefile 速查笔记

    摘要:如果将放在命令前面,则表示无视这条命令的返回值是否为成功如果上一条命令的结果需要用于下一条命令时,需要将这些命令写在一行中。返回值则是的最终执行值。函数执行命令,并且将作为返回值返回,如控制输出这也同时是调试和定位的好方法。 做 Linux C++,一个稳定的工程,Makefile 是很少改动的。但是如果需要修改的时候,Makefile 的语法和用法一时半会就回忆不出来(原谅我记忆力差...

    AJie 评论0 收藏0
  • MariaDB 开启「慢查询」 Log,找出到底慢在哪个 Query 语句上 (Slow query

    摘要:本教学使用环境介绍伺服器端资料库语言版本本机端网路上写的设定档是但我实际去找是在底下的才是可能是跟的差别使用开启进入后会看到,直接在下面加上变成开启慢日志功能查询时间超过秒则定义为慢查询可自行改秒数将产生的放到你指定的地方保存后别忘了重 本教学使用环境介绍伺服器端:Ubuntu 18.04 LTS资料库:Mariadb 10.1.34(Mysql)语言版本:php 7.3本机端:Mac...

    SegmentFault 评论0 收藏0
  • ubuntu安装 mariaDB

    摘要:闲来无事打算装个玩玩。网上找了个教程设置仓库获取添加的更新本地的仓库安装从命令行中进入开始和停止服务不过过程哪里有那么一帆风顺,这不果然出现问题了找不到这个文件夹。 闲来无事打算装个mariaDB玩玩。网上找了个教程 1设置 MariaDB 仓库 sudo apt-get install software-properties-common 2获取key: sudo apt-key ...

    stormjun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<