MySQL基本操作

MySQL的結(jié)構(gòu)

一共分四層,分別是:

1. 連接層:主要是一些客戶端和鏈接服務(wù),包含本地sock通信和大多數(shù)基于客戶端/服務(wù)端工具實(shí)現(xiàn)的類似于tcp/ip的通信. 主要完成一些類似于鏈接處理.授權(quán)認(rèn)證.及相關(guān)的安全方案.

2. 服務(wù)層(可優(yōu)化):第二層架構(gòu)主要完成大的核心服務(wù)功能,如SQL緩存的查詢,SQL的分析和優(yōu)化和內(nèi)置函數(shù)的執(zhí)行.

3. 引擎層(可優(yōu)化):它真正的負(fù)責(zé)了Mysql中數(shù)據(jù)的存儲(chǔ)和提取,服務(wù)器通過API與存儲(chǔ)引擎進(jìn)行通信,不同的存儲(chǔ)引擎具有的功能不同,這樣我們可以根據(jù)自己的實(shí)際需要進(jìn)行選取.

4. 存儲(chǔ)層:它主要是將數(shù)據(jù)存儲(chǔ)再運(yùn)行于設(shè)備的文件系統(tǒng)之上,并完成于存儲(chǔ)引擎的交互.


MySQL的常用數(shù)據(jù)庫引擎

共有十多個(gè),但常用的有兩個(gè): MyISAM和InnoDB

MyISAM: 偏讀,側(cè)重點(diǎn)是性能

InnoDB: 偏事務(wù)?????? 下面這張圖是兩者的

兩者的對(duì)比

兩者的對(duì)比

MySQL的特點(diǎn)

1. MySQL把數(shù)據(jù)存儲(chǔ)在表格中,使用標(biāo)準(zhǔn)的結(jié)構(gòu)化查詢語言-SQL訪問數(shù)據(jù)庫

2. MySQL是完全免費(fèi)的,在網(wǎng)上可以任意下載,并且可以查看到它的源文件,進(jìn)行必要的修改

3. MySQL服務(wù)器的功能齊全,運(yùn)行速度很快,十分可靠,有很好的安全感

4. MySQL服務(wù)器在客戶機(jī),服務(wù)器嵌入系統(tǒng)中使用,是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng),能夠支持多線程,支持多個(gè)不同的客戶程序和管理工具


MySQL的對(duì)象

表(table)? /? 視圖(view)? /? 索引(index)? /? 序列(squence)? /? 存儲(chǔ)函數(shù)(function)? /? 存儲(chǔ)過程(procedure)? /? 觸發(fā)器(trigger)


#{} 與 ${}的區(qū)別

在MyBatis中:

#{}:#{}使用的是,會(huì)有類型轉(zhuǎn)換,比較安全,也是官網(wǎng)推薦使用的

${}:使用字符串拼接,會(huì)有sql注入,不安全,不推薦使用


MySQL對(duì)庫表的操作

linux中進(jìn)入到MySQL的安裝目錄下,? mysql -uroot -p?? 再輸入密碼? OK,已經(jīng)進(jìn)入

select database(): 查看當(dāng)前使用的數(shù)據(jù)庫? ??? show databases:查看所有的數(shù)據(jù)庫

use database_name:切換數(shù)據(jù)庫? ? ? ? create database 數(shù)據(jù)庫名:創(chuàng)建數(shù)據(jù)庫

drop database database-name:刪除數(shù)據(jù)庫?????? show tables:查看數(shù)據(jù)庫中所有的表???

drop table table_name:刪除表? ? ? create table 表名: 創(chuàng)建表

MySQL的增(insert)

insert into user values (NULL,'x','h');? ? //不能省略可空字段

inser into user values (NULL,'x','h'),(NULL,'x','h');? ? //多插入,逗號(hào)隔開

MySQL的刪(delete)

delete from user where id=1;??? 記得價(jià)格過濾條件,不然會(huì)刪除所有..

MySQL的改(update)

updata employees set 要更改的列

MySQL的查(select)

MySQL的查詢大致可以分為5個(gè)部分: 基本的select語句? /? 過濾和排序數(shù)據(jù)? /? 多表查詢? /? 單行函數(shù)? /? 分組函數(shù)

基本的selcet語句: select id , name from employees?

過濾和排序數(shù)據(jù): select id , name from employees where id != 2 ?? =(等于)? >(大于)? >=(大于/等于)? <(小于)? <=(小于等于)? !=(不等于) ?

select id from employees where id > 5 and id < 7??? and為并且? 為字符串的話,就是字典順序來查詢

select id from employees where id in (5,6,7)????? ...?

like為模糊查詢: "%a%"? "_a%" ?? and為并且 ?? in(集合)??? \為轉(zhuǎn)義字符?? or或者?? not否?

order by排序 數(shù)值型/字符型/日期型都可以排序 ,asc為升序,desc為降序,可以多級(jí)嵌套排序

select * from employees order by id asc;?????? //升序排序? 一定要寫在where后面!!!

多表查詢

多表查詢,第一步,你得多各張表的字段及聯(lián)系足夠熟悉,本質(zhì)就是一張表放不下這么多字段.把原本同一張表的字段放到其他的表里面,兩張表之間一定又相同的唯一字段作為橋接,聯(lián)系

select id , name from employees departments where? employees.'id' = departments.'id' ?? //就是from的時(shí)候?qū)懚鄰埍砭蚈K了,然后過濾條件,也就是連接的條件, 可以優(yōu)化, 在select那里,直接寫上每一個(gè)字段是來自哪里? 如employees.name

等值連接和非等值連接: 前者就是上面演示的那種,兩者的關(guān)系是相等的,后者就是在一個(gè)區(qū)間,通常用and來表示

自連接和非自連接: 前者連接的是本身的這張表,比如查自己的上司是誰,后者連接的是其他的表

內(nèi)鏈接和外連接:前者是只查詢兩者相匹配的行,比如之上的例子就是查詢相等的

外連接:使用join和on,意思就是除了兩表中向同的數(shù)據(jù)外,還把左表中或右表中的數(shù)據(jù)也查詢出來,于是就有了左外連接,右外連接.,不支持滿連接. 使用的outer join和on函數(shù)

select e.id,d.name from emp e left outer join dep d on e.'id' = d.'id';?? 這是左外連接,因?yàn)槭莑eft outer join on ,改成右外連接就是right outer join on

單行函數(shù)

單行函數(shù)就是一個(gè)個(gè)的函數(shù),具體的函數(shù)有:? concat("11","22")? //它將兩個(gè)字符串連接起來??? sunstr("hello",1,2) //截取1到2的字符串,得到he??? length("111111") //得到這個(gè)字符串的長度?? instr("hello","e") //返回這個(gè)字符的索引?? trim("h" from "hello") //返回除去h之外的所有字符串???? replace("abcd","b","m") 將字符串中的b轉(zhuǎn)換成m,再輸出字符串

分組函數(shù)

avg(salary) //表示平均??????? sum(salary) //表示總共???????? max(salary) //最高的 ? ? ? min(salary) //最低的?? count(salary) //計(jì)數(shù)

子查詢

子查詢的本質(zhì)就是查詢的嵌套,可以嵌套很多層,也是屬于查詢也因?yàn)樽硬樵兌兊们ё內(nèi)f化


MySQL的運(yùn)行順序

運(yùn)行順序基本如下:

1. from???? 2. on???? 3. join???? 4. where???? 5. group by

6. avg,sum???? 7. select???? 8. distinct???? 9. order by???? 10. limit


MySQL中的join查詢

上圖中分別是: 左外鏈接,右外鏈接,內(nèi)連接

1. 左外連接: select * from tablea a left join table b on a.key = b.key

2. 右外連接: select * from tablea a right join table b on a.key = b.key

3. 內(nèi)連接: select * from tablea a inner join tableb b on a.key = b.key

上圖中分別是: 左鏈接,右鏈接,全連接,外連接

左連接: select * from tablea a left join tableb b on a.key = b.key where b.key is null

右連接: select * from tablea a right join tableb b on a.key = b.key where a.key is? null

全鏈接:

select * from tablea a left join tableb b on a.key = b.key union select

* from tablea a right join tableb b on a.key = b.key

外連接: select * from tablea a full outeb join tableb b on a.key = b.key where a.key is null or b.key is nul

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末料睛,一起剝皮案震驚了整個(gè)濱河市菜秦,隨后出現(xiàn)的幾起案子漫雕,更是在濱河造成了極大的恐慌首妖,老刑警劉巖检碗,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奔害,死亡現(xiàn)場離奇詭異吓肋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)异雁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門捶障,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纲刀,你說我怎么就攤上這事项炼。” “怎么了示绊?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵锭部,是天一觀的道長。 經(jīng)常有香客問我面褐,道長拌禾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任展哭,我火速辦了婚禮湃窍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匪傍。我一直安慰自己您市,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布役衡。 她就那樣靜靜地躺著墨坚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪映挂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天盗尸,我揣著相機(jī)與錄音柑船,去河邊找鬼。 笑死泼各,一個(gè)胖子當(dāng)著我的面吹牛鞍时,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼逆巍,長吁一口氣:“原來是場噩夢啊……” “哼及塘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锐极,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤笙僚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后灵再,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肋层,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年翎迁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栋猖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汪榔,死狀恐怖蒲拉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痴腌,我是刑警寧澤雌团,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站衷掷,受9級(jí)特大地震影響辱姨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜戚嗅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一雨涛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懦胞,春花似錦替久、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胀糜,卻和暖如春颅拦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背教藻。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工距帅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人括堤。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓碌秸,卻偏偏與公主長得像绍移,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讥电,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法蹂窖,類相關(guān)的語法,內(nèi)部類的語法恩敌,繼承相關(guān)的語法瞬测,異常的語法,線程的語...
    子非魚_t_閱讀 31,602評(píng)論 18 399
  • 什么是SQL數(shù)據(jù)庫: SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫潮剪。SQL是...
    西貝巴巴閱讀 1,805評(píng)論 0 10
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,807評(píng)論 0 11
  • 《從你的全世界路過》上映后抗碰,我第一時(shí)間不是跑去電影院狮斗,而是拿起枕邊的書,又準(zhǔn)備被虐一遍弧蝇。 固執(zhí)地喜歡紙頁存在的真實(shí)...
    木子魚兒閱讀 829評(píng)論 5 2
  • 嘿碳褒,你還在擔(dān)憂未來嗎?我只想告訴你看疗,未來一切都好沙峻。你所擔(dān)憂的,大部分都沒有發(fā)生两芳∷ふ活在未來,反而給自己帶來了不少的煩...
    豆藏閱讀 345評(píng)論 2 0