前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL/MariaDB 语句速查笔记

MySQL/MariaDB 语句速查笔记

原创
作者头像
amc
修改2019-11-08 12:38:58
1.4K0
修改2019-11-08 12:38:58
举报
文章被收录于专栏:后台全栈之路

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

本文地址:https://cloud.tencent.com/developer/article/1455009

基础 CURD

Create,添加数据

代码语言:txt
复制
INSERT INTO 表名 (列名, 列名, ...)
VALUES (值, 值)

Update,更新数据

代码语言:txt
复制
UPDATE 表名 SET 列名=值, 列名=值, ...
WHERE 条件 ...

Read,读取

基本操作

代码语言:txt
复制
SELECT 列名, 列名, ... WHERE 条件 ...

获取数据并去掉重复项

代码语言:txt
复制
SELECT DISTINCT 列名, 列名, ... WHERE 条件 ...

Delete,删除

代码语言:txt
复制
DELETE FROM 表名 WHERE 条件 ...

Find or Create 逻辑

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

代码语言:txt
复制
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

数据表操作、调整

获取表信息

代码语言:txt
复制
desc 表名

获取表创建语句

代码语言:txt
复制
show create table 表名

添加字段

代码语言:txt
复制
# 非空、带默认值:
ALTER TABLE 表名 ADD 列名 数据类型 NOT NULL DEFAULT 默认值 COMMENT 注释
# 不带默认值:
ALTER TABLE 表名 ADD 列名 数据类型 COMMENT 注释
# 指定添加字段的位置
ALTER TABLE 表名 ADD 列名 数据类型 COMMENT 注释 AFTER 前一列名

修改字段

代码语言:txt
复制
# 修改字段类型
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 年问题

参考资料


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

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

原文标题:MySQL 速查笔记

发布日期:2019-07-02


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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础 CURD
    • Create,添加数据
      • Update,更新数据
        • Read,读取
          • 基本操作
          • 获取数据并去掉重复项
        • Delete,删除
          • Find or Create 逻辑
          • 数据表操作、调整
            • 获取表信息
              • 获取表创建语句
                • 添加字段
                  • 修改字段
                  • MySQL 常用数据类型
                    • 整型数值
                      • 字符串
                        • 日期和时间
                        • 参考资料
                        相关产品与服务
                        云数据库 SQL Server
                        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档