MySQL基礎(chǔ)語句及常見關(guān)鍵字使用總結(jié)

一象泵、MySQL基礎(chǔ)語句

1. 進(jìn)入MySQL

>> mysql -u root -p (有密碼時(shí))

>> mysql -u root ? ? (無密碼時(shí))

2. 查看當(dāng)前所有數(shù)據(jù)庫

>>?show databases寞秃;

3. 創(chuàng)建一個(gè)新的數(shù)據(jù)庫

>> create database 新數(shù)據(jù)庫名;

4. 進(jìn)行表的增刪改查操作之前偶惠,需要先選擇數(shù)據(jù)庫

>> use 數(shù)據(jù)庫名春寿;

5.?查看當(dāng)前數(shù)據(jù)庫下的所有表

>> show tables;

6.?創(chuàng)建一個(gè)新的表

>> create table 新表名(字段1 屬性1 屬性2 ...,字段2 屬性1 屬性2 ...);

# eg

>> create table Student(Sno varchar(20) primary key, Sname varchar(20) not null, ...);

7. 向表中插入數(shù)據(jù)

# 插入單條數(shù)據(jù)

>>?insert into 表名 values(字段1值忽孽,字段2值绑改,...);

# eg

>>?insert into Student values("001","張三"兄一,...);

# 插入多條數(shù)據(jù)

# eg? ?

>> insert into Student values("001"厘线,"張三",...),("002"出革,"李四"皆的,...),...,("009","王二"蹋盆,...);

8.?向表中導(dǎo)入數(shù)據(jù)

>> load data local infile “絕對路徑” into table 表名 fields terminated by “,” lines terminated by “\r”(or?"\n") ;

注:許多時(shí)候,由于各種因素限制(如office版本問題)硝全,會導(dǎo)致導(dǎo)入數(shù)據(jù)不成功栖雾。可以先把xlsx之類的文件存成 .csv(該文件類型是逗號分隔)伟众,再轉(zhuǎn)換為 .txt析藕,再利用該語句導(dǎo)入,成功率非常高凳厢。

9.?查看表中所有的記錄

>> select * from 表名;

10.?獲取指定行

>> select 選擇的字段 from 表名 條件從句;

# eg

>> select * from Student where Sno >"003";

>> select * from Student where name="李四" or ?Sno >"003";

11.?獲取指定列

>> select 選擇的列名 from 表名 條件從句;

# eg

>> select Sno, Sname from Student where Sbirthday > 2000-09-10;

12. 增加字段

>> alter table 表名 add 字段名(字段屬性);

13. 修改字段

>> alter table 表名 change 原字段名 新字段名 新字段屬性;

14. 刪除字段

>> alter table 表名 drop 字段名;

15. 修改一條數(shù)據(jù)的值

>> update 表名 set 字段名=新值 條件從句;

# eg

>> update Student set Sno="010" where Sname="王二";

16. 刪除數(shù)據(jù)

>> delete from 表名 條件從句;

注意:如果不跟條件從句,則將會刪除該表中的所有數(shù)據(jù),請謹(jǐn)慎操作胰锌。

17. 修改表名

>>?alter table 原表名 rename to 新表名;

二暂幼、常見關(guān)鍵字的使用

1. 排序 order by

? ??desc為降序,asc為升序遮精,order by 的字段后不加約束則默認(rèn)升序居夹。如果要按照多個(gè)條件排序,則字段間用英文逗號隔開即可本冲,每個(gè)字段都需要根據(jù)條件來確定加或不加desc准脂,即每個(gè)字段后的desc只決定它所跟的那個(gè)字段的排序。

>> select 選擇的字段 from 表名 條件從句 order by 字段 desc/asc;

# eg

>> select * from Student where Ssex="女" order by Sno desc, Sbirthday;

2. 分組 group by

>> select 選擇的字段 from 表名 條件從句? group by 分組字段 條件從句;

# eg

>> select Sclass, count(*) from Student group by Sclass;

注意:MySQL5.7以上版本中檬洞,默認(rèn)的sql配置模式是ONLY_FULL_GROUP_BY狸膏,該配置啟用的是“嚴(yán)格ANSIsql”規(guī)則,該規(guī)則要求在group by的時(shí)候添怔,沒有聚合的列必須全部包含在group by的字段中湾戳。也就是說贤旷,在語句執(zhí)行的時(shí)候會先分組,根據(jù)查詢的字段(select的字段)從分組的內(nèi)容中取出院塞,所以查詢的字段理論上應(yīng)全部在group by的分組條件內(nèi)遮晚,一種情況例外:查詢字段中如果含有聚合函數(shù)的字段不用包含在group by中。否則拦止,會報(bào)錯县遣。

同理,order by的字段也都要在group by內(nèi)汹族。

解決辦法1:乖乖的按照規(guī)則寫sql語句萧求,select字段必須都在group by分組條件內(nèi)(含有函數(shù)的字段除外)。

解決辦法2:直接去掉配置中的ONLY_FULL_GROUP_BY約束顶瞒。

? ? ? ? ????????????執(zhí)行以下命令夸政,可以看到sql_mode的內(nèi)容:

>> show session variables;

>> show global variables;

>> select @@sql_mode;

????????????????????執(zhí)行以下命令可以將global和session中的sql_mode中的ONLY_FULL_GROUP_BY去掉:

>> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

>>?set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

3. 去重 destinct

>> select distinct 選擇的字段 from 表名 條件從句;

4. having 和 where

二者都是在條件從句中使用,區(qū)別有以下兩點(diǎn):

(1)位置區(qū)別having用在group by之后榴徐,where用在group by之前守问。having引導(dǎo)的條件從句可以讓我們篩選成組后的各種數(shù)據(jù);where引導(dǎo)的條件從句則在聚合前先篩選記錄坑资,作用在group by 和having 之前耗帕。

(2)用法區(qū)別:在探討它們的用法區(qū)別之前,我們需要先了解一個(gè)名詞——聚合函數(shù)袱贮,即匯總仿便、統(tǒng)計(jì)函數(shù),常見的有avg, count, sum, min, max等攒巍。having后只能跟聚合函數(shù)嗽仪,where后不能跟聚合函數(shù)

5. 聯(lián)合查詢 union

用于連接兩個(gè)查詢語句柒莉,并使結(jié)果一同呈現(xiàn)闻坚。只要兩個(gè)結(jié)果集的列數(shù)相同就可以使用,即使字段類型不同常柄,也可以鲤氢。使用時(shí),直接用union寫在兩個(gè)查詢語句之間即可西潘。

>> select語句1 union select語句2;

6.取指定數(shù)量的數(shù)據(jù)?limit?

limit 用于查詢指定行數(shù)的記錄卷玉,在limit語法中,m指記錄開始的index喷市,從0開始計(jì)數(shù)相种; n指從m條開始,取n條。

>> select 選擇的字段 from 表名 條件從句 limit m, n?

# 取Student表的第一條數(shù)據(jù)

>> select * from Student limit 0, 1;

7. 主鍵primary key

#?創(chuàng)建表時(shí)設(shè)置主鍵

>> create table Student(Sno varchar(20), Sname varchar(20), primary key(Sno))

注意寝并,若需要設(shè)置多個(gè)主鍵箫措,直接在primary key后的括號中增加即可。

#? 為已經(jīng)創(chuàng)建好的表添加主鍵

>> alter table 表名 add primary key (主鍵1,?主鍵2,?主鍵3)衬潦;

8.?外鍵 foreign key

# 創(chuàng)建表時(shí)設(shè)置外鍵

>>? create table Score(Sno varchar(20), Cno varchar(20),Degree varchar(20),?foreign key?(Sno)?references?Student(Sno));

# Score表中的Sno指向Student表中的Sno

# 注意:若要刪除Student和Score這兩個(gè)表斤蔓,則必須先刪除Student表,再刪除Score表

#? 為已經(jīng)創(chuàng)建好的表添加外鍵

>> alter table 表名 add constraint foreign key (外鍵名) references 外表表名(外表的主鍵名)

希望能幫助到你~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末镀岛,一起剝皮案震驚了整個(gè)濱河市弦牡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漂羊,老刑警劉巖驾锰,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異走越,居然都是意外死亡椭豫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門旨指,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赏酥,“玉大人,你說我怎么就攤上這事谆构〗窀浚” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵低淡,是天一觀的道長。 經(jīng)常有香客問我瞬项,道長蔗蹋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任囱淋,我火速辦了婚禮猪杭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妥衣。我一直安慰自己皂吮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布税手。 她就那樣靜靜地躺著蜂筹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芦倒。 梳的紋絲不亂的頭發(fā)上艺挪,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機(jī)與錄音兵扬,去河邊找鬼麻裳。 笑死口蝠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的津坑。 我是一名探鬼主播妙蔗,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疆瑰!你這毒婦竟也來了眉反?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤乃摹,失蹤者是張志新(化名)和其女友劉穎禁漓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孵睬,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡播歼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掰读。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秘狞。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蹈集,靈堂內(nèi)的尸體忽然破棺而出烁试,到底是詐尸還是另有隱情,我是刑警寧澤拢肆,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布减响,位于F島的核電站,受9級特大地震影響郭怪,放射性物質(zhì)發(fā)生泄漏支示。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一鄙才、第九天 我趴在偏房一處隱蔽的房頂上張望颂鸿。 院中可真熱鬧,春花似錦攒庵、人聲如沸嘴纺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栽渴。三九已至,卻和暖如春稳懒,著一層夾襖步出監(jiān)牢的瞬間熔萧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佛致,地道東北人贮缕。 一個(gè)月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像俺榆,于是被迫代替她去往敵國和親感昼。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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