MySQL常用語句

語句分類

  • DDL(Data Definition Language) 數(shù)據(jù)定義語言灸拍,用來定義數(shù)據(jù)庫對象:數(shù)據(jù)庫,表育韩,列等
  • DML(Data Manipulation Language) 數(shù)據(jù)操作語言畦攘,用來對數(shù)據(jù)庫中表的數(shù)據(jù)進(jìn)行增刪改
  • DQL(Data Query Language) 數(shù)據(jù)查詢語言集绰,用來查詢數(shù)據(jù)庫中表的記錄(數(shù)據(jù))
  • DCL(Data Control Language) 數(shù)據(jù)控制語言,用來定義數(shù)據(jù)庫的訪問權(quán)限和安全級別绿鸣,及創(chuàng)建用戶

DDL操作數(shù)據(jù)庫

查詢所有數(shù)據(jù)庫

SHOW DATABASES;

創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE 數(shù)據(jù)庫名稱;

創(chuàng)建數(shù)據(jù)庫(判斷疚沐,如果不存在則創(chuàng)建)

CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫名稱;

刪除數(shù)據(jù)庫

DROP DATABASE 數(shù)據(jù)庫名稱;

刪除數(shù)據(jù)庫(判斷,如果存在則刪除)

DROP DATABASE IF EXISTS 數(shù)據(jù)庫名稱;

使用數(shù)據(jù)庫

USE 數(shù)據(jù)庫名稱;

DDL操作表

創(chuàng)建表

  • 語法
CREATE TABLE 表名 (字段名 數(shù)據(jù)類型, 字段名 數(shù)據(jù)類型);
  • 示例
CREATE TABLE 表名 (
    字段名 數(shù)據(jù)類型,
    字段名 數(shù)據(jù)類型,
    ...
    字段名 數(shù)據(jù)類型
);

查看所有表

SHOW TABLES;

查詢表結(jié)構(gòu)

DESC 表名;

刪除表

DROP TABLE 表名;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

單獨(dú)添加一個(gè)字段

ALTER TABLE 表名 ADD 字段名 數(shù)據(jù)類型;

修改某字段的數(shù)據(jù)類型

ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類型;

修改字段名和數(shù)據(jù)類型

ALTER TABLE 表名 CHANGE 字段名 新字段名 新數(shù)據(jù)類型;

刪除某一字段

ALTER TABLE 表名 DROP 字段名;

DML表數(shù)據(jù)的增刪查改

給表新增數(shù)據(jù)

給指定列添加數(shù)據(jù)

  • 語法
INSERT INTO 表名(字段名1, 字段名2, …) VALUES (值1, 值2, …);
  • 示例
INSERT INTO goods (NAME, price, sales_volume, produced_date) VALUES ('華為P40', 5999, 1000, '2020-08-20');

給全部列添加數(shù)據(jù)

  • 語法
INSERT INTO 表名 VALUES (值1, 值2, …);
  • 示例
INSERT INTO goods VALUES ('小米11', 4999, 5000, '2020-12-28');

給表批量添加數(shù)據(jù)

  • 注意
    • 字段名和值的數(shù)量要對應(yīng)
    • 值的類型和字段的類型要對應(yīng)
    • 除了數(shù)值類型潮模,其他數(shù)據(jù)類型的數(shù)據(jù)都需要加引號(hào)(單引雙引都行亮蛔,推薦單引)
INSERT INTO 表名 VALUES (值1, 值2, …), (值1, 值2, …), (值1, 值2, …);

修改表中數(shù)據(jù)

  • 注意:修改語句中必須加條件,如果不加條件擎厢,則會(huì)將所有數(shù)據(jù)都修改
UPDATE 表名 SET 字段名=新的值 [WHERE 條件];

刪除表中的數(shù)據(jù)

  • 注意:刪除語句中必須加條件究流,如果不加條件辣吃,則會(huì)將所有數(shù)據(jù)都刪除
DELETE FROM 表名 [WHERE 條件];

DQL查詢表中數(shù)據(jù)

查詢指定字段的數(shù)據(jù)

SELECT 字段名1, 字段名2 FROM 表名;

查詢所有字段的數(shù)據(jù)

SELECT * FROM 表名;

去除重復(fù)行

SELECT DISTINCT 字段名1 FROM 表名;

計(jì)算列的值(四則運(yùn)算)

SELECT 字段名1 (+ - * /) 字段名2 FROM 表名;

起別名查詢

SELECT 字段名1 AS 別名1, 字段名2 AS 別名2 FROM 表名;

條件查詢

SELECT 字段名 FROM 表名 WHERE 條件;
  • 比較運(yùn)算符
符號(hào) 功能
> 大于
< 小于
>= 大于等于
<= 小于等于
= 等于
<>或!= 不等于
  • 邏輯運(yùn)算符
AND或&& 并且
OR或|| 或者
NOT或! 非、不是
  • 范圍
BETWEEN...AND... 在某個(gè)范圍之內(nèi)(都包含)
IN(...) 多選一
  • NULL的處理
IS NULL 是NULL
IS NOT NULL 不是NULL

模糊查詢

  • MySQL的通配符
    • %: 表示任意多個(gè)字符
    • _: 表示一個(gè)字符
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';

查詢數(shù)據(jù)排序

  • 排序方式
    • ASC: 升序
    • DESC: 降序
SELECT 字段名 FROM 表名 ORDER BY 列名 排序方式;

聚合函數(shù)

  • 注意:

    • 記錄為NULL的不統(tǒng)計(jì)
    • 如果不是數(shù)值類型芬探,那么計(jì)算結(jié)果為0
  • COUNT: 統(tǒng)計(jì)指定列記錄數(shù)

  • SUM: 計(jì)算指定列的數(shù)值和

  • MAX: 計(jì)算指定列的最大值

  • MIN: 計(jì)算指定列的最小值

  • AVG: 計(jì)算指定列的平均值

SELECT 聚合函數(shù)(字段名) FROM 表名;

分組查詢

  • 注意:分組之后神得,查詢的字段為分組字段和聚合函數(shù),查詢其他字段無任何意義
SELECT * FROM 表名 GROUP BY 字段名;

-- 帶分組條件
SELECT * FROM 表名 GROUP HAVING 分組過濾條件;
  • having與where的區(qū)別
    • where是在分組前對數(shù)據(jù)進(jìn)行過濾偷仿,having是在分組后對數(shù)據(jù)進(jìn)行過濾
    • where后面不可以使用聚合函數(shù)哩簿,having后面可以使用聚合函數(shù)

分頁查詢

  • 注意事項(xiàng)

  • 分頁查詢 limit 是MySQL數(shù)據(jù)庫的方言,Oracle 分頁查詢使用 rownumber酝静,SQL Server分頁查詢使用 top

  • offset是指偏移量卡骂,可以認(rèn)為是跳過的記錄數(shù)量,不寫則默認(rèn)為0

  • length是指需要顯示的總記錄數(shù)

SELECT * FROM 表名 LIMIT offset, length;

表約束

  • 約束:對表中的數(shù)據(jù)進(jìn)行限定形入,保證數(shù)據(jù)的正確性全跨、有效性、完整性
約束 說明
PRIMARY KEY 主鍵約束
UNIQUE 唯一約束
NOT NULL 非空約束
DEFAULT 默認(rèn)值約束
FOREIGN KEY 外鍵約束
CHECK 檢查約束
  • 注意
    • MySQL不支持檢查約束
    • 約束通常是在創(chuàng)建表結(jié)構(gòu)的時(shí)候創(chuàng)建

主鍵約束

  • 主鍵的作用:用來區(qū)分表中的數(shù)據(jù)

  • 主鍵的特點(diǎn)

    • 主鍵必須是唯一不重復(fù)的值
    • 主鍵不能包含NULL值
-- 建表
CREATE TABLE 表名 (
    字段名 字段類型 PRIMARY KEY,
    字段名 字段類型
);

-- 建表并設(shè)置外鍵約束
CREATE TABLE 表名(
   列名 數(shù)據(jù)類型,
   [CONSTRAINT] [約束名稱] PRIMARY KEY(列名)
); 

刪除主鍵約束

ALTER TABLE 表名 DROP PRIMARY KEY;

建表后亿遂,單獨(dú)添加主鍵約束

ALTER TABLE 表名 ADD PRIMARY KEY (字段名);

設(shè)置主鍵自增長

  • 主鍵浓若,如果讓我們自己添加很有可能重復(fù),我們通常希望在每次插入新記錄時(shí)蛇数,數(shù)據(jù)庫自動(dòng)生成主鍵字段的值
字段名 字段類型 PRIMARY KEY AUTO_INCREMENT
  • 注意:AUTO_INCREMENT 的字段類型必須是數(shù)值類型

唯一約束

  • 唯一約束的作用:讓字段的值唯一挪钓,不能重復(fù)
CREATE TABLE 表名 (
    字段名 字段類型 UNIQUE,
    字段名 字段類型
);

非空約束

  • 非空約束的作用:讓字段的值不能為NULL
CREATE TABLE 表名 (
    字段名 字段類型 NOT NULL,
    字段名 字段類型
);

默認(rèn)值約束

  • 默認(rèn)值約束的作用:如果這個(gè)字段不設(shè)置值,就使用默認(rèn)值
CREATE TABLE 表名 (
    字段名 字段類型 DEFAULT 值,
    字段名 字段類型
);

外鍵約束

  • 外鍵:一張表中的某個(gè)字段引用其他表的主鍵耳舅,這個(gè)字段稱為外鍵
  • 主表:將數(shù)據(jù)給別人用的表
  • 副表/從表:使用別人數(shù)據(jù)的表

新建表時(shí)碌上,增加外鍵約束

CREATE TABLE 表名 (
    字段名 字段類型,
    字段名 字段類型,
    -- 添加外鍵約束
    [CONSTRAINT 外鍵約束名] FOREIGN KEY(外鍵字段名) REFERENCES 主表(主鍵字段名)
);
  • 關(guān)鍵字解釋
    • CONSTRAINT: 表示約束外鍵約束名: 給外鍵約束取個(gè)名字,將來通過約束名可以刪除這個(gè)約束
    • FOREIGN KEY(外鍵字段名): 指定某個(gè)字段作為外鍵
    • REFERENCES 主表(主鍵字段名) : 引用主表的主鍵的值

刪除外鍵約束

ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名;

已有表增加外鍵約束

ALTER TABLE 從表 ADD [CONSTRAINT 外鍵約束名稱] FOREIGN KEY (外鍵字段名) REFERENCES 主表(主鍵字段名);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市浦徊,隨后出現(xiàn)的幾起案子馏予,更是在濱河造成了極大的恐慌,老刑警劉巖盔性,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霞丧,死亡現(xiàn)場離奇詭異,居然都是意外死亡冕香,警方通過查閱死者的電腦和手機(jī)蛹尝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悉尾,“玉大人突那,你說我怎么就攤上這事」姑校” “怎么了愕难?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我务漩,道長拄衰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任饵骨,我火速辦了婚禮翘悉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘居触。我一直安慰自己妖混,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布轮洋。 她就那樣靜靜地躺著制市,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弊予。 梳的紋絲不亂的頭發(fā)上祥楣,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音汉柒,去河邊找鬼误褪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碾褂,可吹牛的內(nèi)容都是我干的兽间。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼正塌,長吁一口氣:“原來是場噩夢啊……” “哼嘀略!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乓诽,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帜羊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后问裕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逮壁,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年粮宛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卖宠。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巍杈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扛伍,到底是詐尸還是另有隱情筷畦,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鳖宾,受9級特大地震影響吼砂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鼎文,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一渔肩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拇惋,春花似錦周偎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胡嘿,卻和暖如春蛉艾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衷敌。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工伺通, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逢享。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓罐监,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瞒爬。 傳聞我的和親對象是個(gè)殘疾皇子弓柱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.DDL(數(shù)據(jù)庫定義語言) 數(shù)據(jù)庫 查看所有數(shù)據(jù)庫:SHOW DATABASES;選擇要操作的數(shù)據(jù)庫:USE 數(shù)...
    暗香撫動(dòng)閱讀 257評論 0 0
  • 有時(shí)間沒更新簡書了,最近在學(xué)MySQL數(shù)據(jù)庫侧但,前段時(shí)間學(xué)的Python矢空,學(xué)的稀里嘩啦的,人生苦短禀横,為何用Pytho...
    蔚來天空閱讀 2,479評論 0 13
  • --這后邊就是注釋/*這里是注釋這里是第二行注釋*/ --建議關(guān)鍵字大寫 --當(dāng)你決定不想執(zhí)行某條命令時(shí)\c ...
    哇哈哈E閱讀 466評論 0 0
  • 1. 連接數(shù)據(jù)庫 在命令行中輸入:mysql -u root -p 2. 選擇數(shù)據(jù)庫屁药、數(shù)據(jù)表 Use 數(shù)據(jù)庫名/數(shù)...
    王二姐的記事本兒閱讀 1,012評論 0 7
  • mysql 命令是不區(qū)分大小寫的 create database name;創(chuàng)建數(shù)據(jù)庫 use databasen...
    nit小星星閱讀 430評論 0 0