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

基础 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 年问题

参考资料

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

发布日期:2019-07-02

mysql嵌入式语句_MySQL/MariaDB 语句速查笔记相关推荐

  1. mysql set语句_MySQL Prepared语句简介

    之前的MySQL版本4.1,查询以文本格式发送到MySQL服务器. 之后,MySQL服务器使用文本协议将数据返回给客户端.MySQL必须完全解析查询,并将结果集转换为字符串,然后再将其返回给客户端. ...

  2. mysql C where语句_MYSQL WHERE语句优化

    但请注意,下面的优化并不是完全的.MYSQL实施了许多优化,但我没时间全部测试. MySQL的一些优化列在下面: 删除不必要的括号: ((a AND b) AND c OR (((a AND b) A ...

  3. mysql易百_MySQL Replace语句

    在本教程中,您将学习如何使用 MySQL的REPLACE语句来插入或更新数据库表中的数据. MySQL REPLACE语句介绍 MySQL的REPLACE语句是一个MySQL扩展于SQL标准的语句.  ...

  4. mysql update用法_mysql update语句的用法详解

    首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] ...

  5. mysql预处理语句_MYSQL 预处理语句

    一.预处理语句介绍 MySQL支持服务端预处理语句,预处理语句利用高效的客户端/服务端二进制协议.用占位符替换参数值的预处理语句有下列两个好处: 每次执行语句时,解析语句的开销更小.通常,数据库应用程 ...

  6. mysql更新代码_mysql update语句的用法

    1.    单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 .. ...

  7. mysql3表查询语句_MySQL基础语句三(多表查询)

    今天让我们来学习mysql的多表查询,爱学习的你就是我的好朋友哦! 多表设计的两种方式:通过id关联(还可以是其他不重复的字段) 通过外键关联 主键: 能够唯一表示数据表中的每个记录的字段或者字段的组 ...

  8. XML 语法速查笔记

    相比起 Json,XML 是一种相对古老和复杂.但功能更加强大的数据存储/传输格式.也因为其复杂,有一些语法需要记录一下,在使用多种语言进行 XML 操作的时候备查. 范例 下面是一个相对比较完整的 ...

  9. mysql增数据语句_Mysql 数据增删改查语句

    插入数据 insert #1. 插入完整数据(顺序插入)#语法一: insert into 表名(字段1,字段2,字段3-字段n) values (值1,值2,值3-值n);#语法二: insert ...

最新文章

  1. excel趋势线公式导出_Java 添加、读取、删除Excel中的图表趋势线
  2. Android Studio项目整合PullToRefresh的问题记录
  3. MUI 地址选择器 - picker使用
  4. js 计时器无法清除是为什么
  5. 国家铁路调度中心在哪_博慈46寸液晶拼接屏打造上海铁路局南翔站指挥中心显示系统...
  6. 挖矿机十年变迁,你再也不会用1万比特币买一块披萨
  7. 只谈Network,不谈Social,互联网营销
  8. pyinstaller下载_《快速掌握PyQt5》第二十五章 Pyinstaller打包
  9. python预测比赛_分析5万多场英雄联盟比赛,教你如何轻松用python预测胜负
  10. python实现全自动百词斩单词对战,躺着上分轻轻松松
  11. java 倒计时_Java倒计时实现的三种简单方式
  12. web前端学习135-144(盒子模型---网页布局,盒子模型组成,边框,表格细线边框,盒子实际大小,内边距)
  13. Mac—开启键盘F1 - F12功能键以及F1 - F12功能键的作用
  14. 亲子关系-《亲子关系全面技巧》书中的精髓:学会正确处理亲子关系的技巧,与孩子建立良好的关系。
  15. ogg文件怎么转换为mp3格式?
  16. wheeltec移植到ubuntu18.04
  17. 四阶行列式计算python_四阶行列式的计算题?
  18. 《程序员的成长课》:少走5年弯路
  19. 嵌入式linux汽车仪表,基于ARM和嵌入式Linux的汽车仪表盘研制
  20. English Grammer-01

热门文章

  1. mysql年份_【数据库_Mysql】查询当前年份的sql
  2. Python教程:shift函数实现数据偏移的方法
  3. Python提升“技术逼格”的6个方法
  4. Python中classmethod与staticmethod区别
  5. python 中文件输入输出及os模块对文件系统的操作
  6. 一行代码搞定 Scrapy 随机 User-Agent 设置
  7. ftp服务器不显示缩略图,ftp服务器不显示缩略图
  8. hmailserver怎么搭建php,hMailServer邮件服务器安装配置(亲测可用)
  9. bootstrapmodel确认操作框_提醒!2020国考报名确认最后一天!错过无法参加笔试
  10. Nginx 正向代理与反向代理区别