MySQL常用命令

  • DQL 數(shù)據(jù)查詢語(yǔ)言 select

  • DML 數(shù)據(jù)操作語(yǔ)言 insert delete update

  • DDL 數(shù)據(jù)定義語(yǔ)言 create drop alter

  • DCL 數(shù)據(jù)控制語(yǔ)言 grant revoke

net start mysql80 win開啟mysql進(jìn)程

net stop mysql80 win關(guān)閉mysql進(jìn)程

MySQL -uroot -p<password> 登錄MySQL

create database <dbname> 創(chuàng)建名字為dbname的數(shù)據(jù)庫(kù)

show databases; 查看MySQL里面有幾個(gè)數(shù)據(jù)庫(kù)饮醇,默認(rèn)自帶四個(gè)

use <dbname> 使用dbname數(shù)據(jù)庫(kù)

show tables 查看當(dāng)前庫(kù)所有表名

desc <tableName> 查看表結(jié)構(gòu)

  • DQL

select * form <tableName> 對(duì)tableName進(jìn)行全表查詢

select <field1>, <field2>... from <tableName> 從tableName表查詢field1,filed2...

使用as取別名酸役,但是不改變表filed名。(as可以省略勒庄,別名不能有空格顶吮,有空格可以用單引號(hào))

select <field> as <myfield> for <tableName> 講查詢結(jié)果field->myfield

查詢計(jì)算

select <field>*<n> as <myfiled> form <tableName> 將filed查詢結(jié)果乘n并且改為myfiled

條件查詢 where

**= 等于

<> 或者 !+ 不等于

<= 大于等于 >= 小于等于 > 大于 < 小于

between ... and ... 等價(jià)于 >= and <= (左小右大)

and 并且邏輯(優(yōu)先級(jí)高于or, 可以()來(lái)提高or優(yōu)先級(jí))

or 或者邏輯

in (<v1>, <v2>,<v3>...) 在里面就為true

not in (<v1>,<v2>...)

模糊查詢%(任意多個(gè)) _(任意一個(gè))可以用\轉(zhuǎn)義

排序 order by (默認(rèn)升序) order by <field1>,<field2> desc 按field1降序,如果相等再比f(wàn)ield2

order by <n> 按查詢結(jié)果的第n列排序

語(yǔ)句執(zhí)行順序:select ... from ... where ... order by ... : from->where->select->order by

分組查詢(group by可以多個(gè)字段聯(lián)合分組):select <field> from <table> where <condition> group by <field> order by <field>執(zhí)行順序from-where-group by-select-order by

having:可以對(duì)分組之后的數(shù)據(jù)進(jìn)一步過(guò)濾,效率比較低,盡量使用where過(guò)濾

注意:在分組查詢里面select<field>里面的field只能是分組字段和分組函數(shù),不然沒(méi)有意義克锣。

注意:null的判斷要用is 或者is not

連接查詢

  • 內(nèi)連接 select <>,<> from <> inner join <> on <> where <>
    • 等值連接 on條件為等值
    • 非等值連接 on條件為非等值
    • 自聯(lián)接 一張表取多次別名(看成多張表)
  • 外連接 select <>,<> from
    • 左外連接 左邊的數(shù)據(jù)全部查詢出來(lái)
    • 右外連接 右邊的數(shù)據(jù)全部查詢出來(lái)
  • 全連接

子查詢:就是select或where或from語(yǔ)句里面嵌套select語(yǔ)句嵌套

  • DDL

建表:create table <tableName> (<field1> <type> <opt>,<field2> <type> <opt>, ...);

刪表:drop table <tableName>(刪除的表不存在會(huì)報(bào)錯(cuò)), drop table if exists <tableName>(避免報(bào)錯(cuò))

增加數(shù)據(jù)insert into:insert into <tableName> (<field1>,<field2> ...) values <v1>,<v2> ...

更新數(shù)據(jù):update <tableName> set <field1>=<v1>,<field2>=<v2> ... where <condition> 注意:沒(méi)有條件會(huì)全部更新

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

delete delete from<tableName> where <condition> 注意:沒(méi)有條件會(huì)刪除所有的數(shù)據(jù),可以回滾腔长,效率低

truncate(DDL) truncate table <tableName> 刪除不可以回滾, 效率高

  • 對(duì)表結(jié)構(gòu)的修改(alter)(DDL)(幾乎不用验残,成本高):
  • 約束:建表時(shí)可以對(duì)字段進(jìn)行約束
    • 非空約束 not null
    • 主鍵約束 primary key捞附,auto_incremen自增
    • 唯一約束 unique
    • 外鍵約束 foreign key foreign key <fkName> references <tbName>(<field>) 外鍵fkName引用表tbName的field字段
  • 存儲(chǔ)引擎(engine):不同的存儲(chǔ)引擎,MySQL的存儲(chǔ)數(shù)據(jù)的方式不一樣
    • InnoDB(默認(rèn)):數(shù)據(jù)有兩個(gè)文件(*.frm;*.DB)支持事務(wù)您没,行鎖鸟召,MVCC
    • MyISAM:數(shù)據(jù)有三個(gè)文件(.frm;.MYD;*.MYI);可壓縮氨鹏,
    • memory:數(shù)據(jù)存儲(chǔ)在內(nèi)存欧募,反應(yīng)速度快,但易丟失
  • 事務(wù):MySQL的最小執(zhí)行單元仆抵,要么全部成功跟继,要么全部失敗种冬。(默認(rèn)提交,即沒(méi)執(zhí)行一條就提交事務(wù))

開啟事務(wù):start transaction

提交事務(wù):commit

回滾事務(wù):rollback

事務(wù)的特性(ACID):

  1. 原子性(A):最小執(zhí)行單元不可再分.
  2. 一致性(C):一個(gè)事務(wù)里面的操作同時(shí)成功或失敗舔糖。
  3. 隔離性(I):事務(wù)之間互不影響娱两。
  4. 持久性(D):事務(wù)提交之后會(huì)落盤。
  • 事務(wù)隔離級(jí)別:
    • 讀未提交(read uncommitted):隔離級(jí)別最低金吗,存在臟讀十兢。
    • 讀已提交(read committed):解決了臟讀現(xiàn)象油坝,但是不滿足重復(fù)讀取要求的業(yè)務(wù)前硫。
    • 可重復(fù)讀(repeat able):MySQL默認(rèn)級(jí)別钱雷,只要事務(wù)不提交隆箩,讀取的數(shù)據(jù)都不變坤学,但是存在幻讀(其他事務(wù)insert導(dǎo)致)扣唱。
    • 串行化(serializable):事務(wù)順序執(zhí)行茄厘,隔離級(jí)別最高冤灾,效率太低了玛臂。

設(shè)置MySQL隔離級(jí)別:set global transaction isolation level <isolationLevel>

查看當(dāng)前的隔離級(jí)別:select @@tx_isolation

  • 索引(index):為了提高效率烤蜕,避免全表掃描的一種機(jī)制,有哈希索引迹冤,B樹讽营,B+tree等

創(chuàng)建索引: create index <indexName> on <tableName>(<field>) 給表tableName的field字段加索引。

刪除索引drop index <indexName> on <tableName>(<field>) 刪除表tableName的field字段的索引泡徙。

索引失效幾種情況:

  1. 模糊查詢以%開頭橱鹏。
  2. where語(yǔ)句中使用or,并且or兩端有一端字段沒(méi)有索引堪藐。
  3. 復(fù)合索引不滿足最左前綴原則莉兰。
  4. 索引字段在where子句里面參與了運(yùn)算或者函數(shù)運(yùn)算等。
  • 視圖(view):對(duì)創(chuàng)建的視圖進(jìn)行操作(增刪改)會(huì)影響原數(shù)據(jù)(簡(jiǎn)化開發(fā))礁竞。

創(chuàng)建視圖:create view <viewName> as <opt> 用opt(DQL)操作的查詢結(jié)果創(chuàng)建視圖

刪除視圖:drop view <viewName>

  • DCL

創(chuàng)建用戶:create user <userName> indentified by <password>

  • 數(shù)據(jù)庫(kù)三范式:表的設(shè)計(jì)規(guī)則糖荒,可以減少數(shù)據(jù)冗余。
    • 第一范式:有主鍵模捂,字段原子不可再分捶朵。
    • 第二范式:滿足第一范式,并且不存在部分依賴狂男。
    • 第三范式:滿足第二范式综看,并且不存在傳遞依賴。
  • MySQL常見數(shù)據(jù)類型:

    varchar 會(huì)根據(jù)實(shí)際的長(zhǎng)度動(dòng)態(tài)分配內(nèi)存 省空間但是速度慢

    char 定長(zhǎng) 不靈活可能浪費(fèi)空間但是分配速度快

    int 最長(zhǎng)11位

    bigint 長(zhǎng)整型long

    float

    double

    date 短日期 包括 年 月 日 默認(rèn)格式 %Y-%m-%d

    datetime 長(zhǎng)日期 包括 年 月 日 時(shí) 分 秒 默認(rèn)格式 %Y-%m%d %h:%i:%s

    clob 字符大對(duì)象岖食,可以存儲(chǔ)最大4G的字符串红碑,超過(guò)255字符的都用clob存儲(chǔ)

    blob 二進(jìn)制大對(duì)象,存儲(chǔ)圖片泡垃,聲音析珊,視頻等

  • 數(shù)據(jù)處理函數(shù)(單行:一個(gè)輸入一個(gè)輸出; 多行:多個(gè)輸入一個(gè)輸出):

    單行處理函數(shù):

lower 轉(zhuǎn)小寫

upper 轉(zhuǎn)大寫

substr 取子串 substr(<strName>,<start>,<len>) 截取strName從start(1開始)開始長(zhǎng)度為len

concat 字符串拼接 concat(<str1>,<str2>) 結(jié)果為str1+str2

length 取長(zhǎng)度

trim 去除前后的空白

str_to_date 將varchar字符串轉(zhuǎn)換成日期date

date_format 將日期date轉(zhuǎn)化為varchar字符串

format 數(shù)字格式化

round 四舍五入 round(<num>,<n>) 將num四舍五入保留小數(shù)點(diǎn)后n(可以為負(fù)數(shù))位

rand() 生成隨機(jī)數(shù)

ifnull 可以將null轉(zhuǎn)換為具體值 ifnull(<field>,<value>) 如果field為null則當(dāng)作值value

now() 可以獲取當(dāng)前時(shí)間

多行處理函數(shù)(group by 分組)(默認(rèn)所有為一組):

count 計(jì)數(shù)(忽略null) count(<field>) 統(tǒng)計(jì)field不為null的行數(shù) count(*) 統(tǒng)計(jì)總行數(shù)

sum 求和

avg 求平均

max 求最大值

min 求最小值

注意:分組函數(shù)不能放在where子句里面

  • orther

select version(); 查看當(dāng)前MySQL的版本

\c 可以終止sql的輸入

source path 導(dǎo)入path路徑的數(shù)據(jù)

mysqldump <databaseName> <path> 把庫(kù)databaseName導(dǎo)出為sql腳本文件到path目錄下

執(zhí)行順序 from-where-group by-having-select-order by-limit

case when then 語(yǔ)句 case <field> when <v1> then <opt1> when <v2> then <opt2> else <opt3> end

distinct 查詢結(jié)果去重 select distinct <field1>,<field2> from <tableName> 聯(lián)合去重

distinct 只能在所有查詢字段最前面

union:結(jié)果集合并羡鸥。注意:結(jié)果集合并時(shí)兩個(gè)語(yǔ)句的列要相等

limit:將查詢結(jié)果一部分取出來(lái),分頁(yè)查詢 limit<n> 取查詢結(jié)果的前n個(gè) limit <start>,<len> 取start(0開始)開始的n個(gè)

笛卡兒積:表連接查詢是沒(méi)加條件查詢的結(jié)果條數(shù)是所有表的積唾琼。避免:加條件查詢兄春。

create table <tableName> as <opt> 將opt的查詢結(jié)果新建應(yīng)該tableName表

unique約束字段自動(dòng)添加索引

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锡溯,隨后出現(xiàn)的幾起案子赶舆,更是在濱河造成了極大的恐慌,老刑警劉巖祭饭,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芜茵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡倡蝙,警方通過(guò)查閱死者的電腦和手機(jī)九串,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寺鸥,“玉大人猪钮,你說(shuō)我怎么就攤上這事〉ńǎ” “怎么了烤低?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)笆载。 經(jīng)常有香客問(wèn)我扑馁,道長(zhǎng),這世上最難降的妖魔是什么凉驻? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任腻要,我火速辦了婚禮,結(jié)果婚禮上涝登,老公的妹妹穿的比我還像新娘雄家。我一直安慰自己,他們只是感情好胀滚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布咳短。 她就那樣靜靜地躺著,像睡著了一般蛛淋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上篡腌,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天褐荷,我揣著相機(jī)與錄音,去河邊找鬼嘹悼。 笑死叛甫,一個(gè)胖子當(dāng)著我的面吹牛层宫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播其监,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萌腿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了抖苦?” 一聲冷哼從身側(cè)響起毁菱,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锌历,沒(méi)想到半個(gè)月后贮庞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡究西,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年窗慎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卤材。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遮斥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扇丛,到底是詐尸還是另有隱情术吗,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布晕拆,位于F島的核電站藐翎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏实幕。R本人自食惡果不足惜吝镣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昆庇。 院中可真熱鬧末贾,春花似錦、人聲如沸整吆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)表蝙。三九已至拴测,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間府蛇,已是汗流浹背集索。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人务荆。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓妆距,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親函匕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娱据,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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

  • 寫在前面 最近在學(xué)習(xí)SQL注入,以sqli-labs練習(xí)盅惜,可是自己對(duì)MySQL感到很陌生中剩,故在此學(xué)習(xí)一下。 連接與...
    煊奕閱讀 282評(píng)論 0 2
  • MYSQL常用命令1.導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)mysqldump -u 用戶名 -p --default-character...
    java456閱讀 359評(píng)論 0 1
  • 1.導(dǎo)出整個(gè)數(shù)據(jù)庫(kù) mysqldump -u 用戶名 -p –default-character-set=lati...
    往你頭上敲三下閱讀 603評(píng)論 1 10
  • 1.終端啟動(dòng) MySQL:/etc/init.d/mysql start 2.登錄 MySQL:mysql -ur...
    神經(jīng)騷棟閱讀 1,426評(píng)論 1 3
  • 基本命令: 解壓文件 tar -zxvf 查看當(dāng)前路徑 pwd查看當(dāng)前目錄下的文件/文件夾列表 ll創(chuàng)建文件夾 ...
    小知大知閱讀 167評(píng)論 0 0