mysql嵌入式语句_MySQL/MariaDB 语句速查笔记
平時(shí)實(shí)際開(kāi)發(fā)的時(shí)候,其實(shí)并不太依賴 MySQL 作為 關(guān)系型數(shù)據(jù)庫(kù) 中的 “關(guān)系” 這一屬性,更多地只是把 MySQL 作為數(shù)據(jù)存儲(chǔ)的介質(zhì)。因此 MySQL 語(yǔ)句其實(shí)很少寫(xiě),所以本文用于記錄一些 MySQL 在常規(guī)數(shù)據(jù)操作中的常用語(yǔ)法,備查。少用或者不用的知識(shí)就不列了。
基礎(chǔ) CURD
Create,添加數(shù)據(jù)
INSERT INTO 表名 (列名, 列名, ...)
VALUES (值, 值)
Update,更新數(shù)據(jù)
UPDATE 表名 SET 列名=值, 列名=值, ...
WHERE 條件 ...
Read,讀取
基本操作
SELECT 列名, 列名, ... WHERE 條件 ...
獲取數(shù)據(jù)并去掉重復(fù)項(xiàng)
SELECT DISTINCT 列名, 列名, ... WHERE 條件 ...
Delete,刪除
DELETE FROM 表名 WHERE 條件 ...
Find or Create 邏輯
這是一個(gè)很實(shí)際的需求,業(yè)務(wù)需要依據(jù)條件獲取一個(gè)條目,如果不存在,則創(chuàng)建該條目。如果用 select + insert 組合,那么這個(gè)操作并不原子。理想情況下是使用 UNIQUE,但很多時(shí)候并不行。那么可以采用以下的語(yǔ)句:
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
數(shù)據(jù)表操作、調(diào)整
獲取表信息
desc 表名
獲取表創(chuàng)建語(yǔ)句
show create table 表名
添加字段
# 非空、帶默認(rèn)值:
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型 NOT NULL DEFAULT 默認(rèn)值 COMMENT 注釋
# 不帶默認(rèn)值:
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型 COMMENT 注釋
# 指定添加字段的位置
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型 COMMENT 注釋 AFTER 前一列名
修改字段
# 修改字段類型
ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型 ... # 后面的 ... 需要和前面添加字段的 “數(shù)據(jù)類型” 后面的那些項(xiàng)一致
# 修改字段名
ALTER TABLE 表名 CHANGE 列名 新列名 數(shù)據(jù)類型 ...
MySQL 常用數(shù)據(jù)類型
整型數(shù)值
tinyint:相當(dāng)于 int8_t
smallint:相當(dāng)于 int16_t
int:相當(dāng)于 int32_t
bigint:相當(dāng)于 int64_t,建議用 bigint 存 timestamp 類型
上述四種數(shù)據(jù),可以加上 unsigned 表示無(wú)符號(hào)數(shù),比如 tinyint unsigned 相當(dāng)于 uint8_t
定義整型數(shù)值時(shí),可以在后面加上括號(hào),寫(xiě)一個(gè)數(shù)字,如 int(11),這個(gè)數(shù)字僅僅表示顯示長(zhǎng)度(十進(jìn)制),不影響實(shí)際數(shù)據(jù)位寬。
字符串
char(n) :固定長(zhǎng)度字符串,長(zhǎng)度為 n,最大為 255。
varchar(n):變長(zhǎng)字符串,最長(zhǎng)長(zhǎng)度為 n,最大為 65535。
日期和時(shí)間
date:日期,格式為 "2008-12-2"
time:僅時(shí)間,格式為 "13:15:55" 或 "13:15:55:123"
datetime(m):日期和時(shí)間,m 表示秒小數(shù)點(diǎn)后的位數(shù)
timestamp:不建議用,該值相當(dāng)于 int32_t,有 2038 年問(wèn)題
參考資料
原作者: amc,歡迎轉(zhuǎn)載,但請(qǐng)注明出處。
發(fā)布日期:2019-07-02
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mysql嵌入式语句_MySQL/MariaDB 语句速查笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql5.1编译安装centos7_
- 下一篇: java调用sql返回list_Hibe