mysql基礎(chǔ)操作

mysql

當(dāng)一臺電腦安裝了數(shù)據(jù)庫婶芭,那么這臺電腦可以稱為一個數(shù)據(jù)庫服務(wù)器东臀,用戶可以連接這臺電腦上的數(shù)據(jù)庫
一個數(shù)據(jù)庫軟件,可以管理多個數(shù)據(jù)倉庫(簡稱數(shù)據(jù)庫)犀农。
一個數(shù)據(jù)倉庫可以管理多個數(shù)據(jù)表惰赋。
每個數(shù)據(jù)表中可以存儲多行數(shù)據(jù)記錄。
每創(chuàng)建一個數(shù)據(jù)倉庫呵哨,會在數(shù)據(jù)庫的數(shù)據(jù)文件目錄中多一個文件夾

大綱

  • sql語句概念
  • mysql基礎(chǔ)操作sql
  • 單表操作sql
  • 表內(nèi)數(shù)據(jù)操作
  • 數(shù)據(jù)庫的備份/恢復(fù)
  • 總結(jié)

sql語句

1.sql語句定義

image.png

2.sql語句分類

DDL (數(shù)據(jù)定義語言)
數(shù)據(jù)定義語言 - Data Definition Language
用來定義數(shù)據(jù)庫的對象赁濒,比如創(chuàng)建數(shù)據(jù)表(對數(shù)據(jù)庫和數(shù)據(jù)表進(jìn)行操作的)
如:create drop alter truncate (table)
DML (數(shù)據(jù)操縱語言)(★★★) 增刪改
數(shù)據(jù)處理語言 - Data Manipulation Language
在數(shù)據(jù)庫表中更新,增加和刪除記錄(對數(shù)據(jù)表中的表數(shù)據(jù)進(jìn)行增刪改)
如:update孟害, insert拒炎, delete
DCL (數(shù)據(jù)控制語言)
數(shù)據(jù)控制語言 – Data Control Language
指用于設(shè)置用戶權(quán)限和控制事務(wù)語句(事務(wù))
如:grant,revoke挨务,if…else击你,while,begin transaction
DQL (數(shù)據(jù)查詢語言)(★★★★★) 查詢
數(shù)據(jù)查詢語言 – Data Query Language
對數(shù)據(jù)表中的表數(shù)據(jù)進(jìn)行查詢
如:select

數(shù)據(jù)庫基礎(chǔ)sql的操作

1.庫的操作sql

創(chuàng)建庫:create database 庫名 character set 編碼表;
刪除庫:drop database 庫名;
查詢庫:show databases;
查看庫的編碼表:show create database 庫名;
更改庫:use 庫名;
查看當(dāng)前正在使用的庫:select database();
修改庫的編碼表:alter database 庫名 character set 編碼表;

2.表本身的操作sql

創(chuàng)建表:create table 表名( 列名 列的類型(長度) 類的約束 ,列名 列的類型(長度) 類的約束...... );
刪除表:drop table 表名;
查詢表:show tables;
查看表的結(jié)構(gòu):desc 表名;
查看表的編碼表:show create table 表名;
修改表:alter table 表名 增/刪/改 列名 列的類型(長度) 約束;
修改表名:rename table 舊表名 to 新表名谎柄;

3.表中數(shù)據(jù)的操作sql

增:insert into 表名(列名) values(值);
刪:delete from 表名 where 條件; truncate
改:update 表名 set 列名=值 丁侄,列名=值 where 條件 ;
查:select 列名 as 別名 ,列名 as 別名… from 表名 where 條件朝巫;
查詢排重:select distinct 列名 from 表名 where 條件;
聚合函數(shù):
count 統(tǒng)計個數(shù)绒障、
sum求和、
avg 平均值捍歪、
max户辱、min
在使用這幾個函數(shù)進(jìn)行數(shù)據(jù)的統(tǒng)計分析時,有時需要對數(shù)據(jù)表中的列進(jìn)行數(shù)據(jù)的分組處理 ---> group by
分組: group by :
排序:order by 列名 asc | desc糙臼;

單表操作

1.單表創(chuàng)建約束

  • 主鍵約束:primary key ---> 唯一不為空: 真正意義上唯一標(biāo)識一條數(shù)據(jù)
  • 唯一約束 unique 內(nèi)容不允許重復(fù)庐镐,可以為null(null不算重復(fù))--> 一個表里可以添加多個唯一約束。
  • 非空約束 not null 变逃。不允許為空必逆。 表示該列的內(nèi)容不允許為空。如圖:
    image.png

2.數(shù)據(jù)表結(jié)構(gòu)修改

修改數(shù)據(jù)表
可以對表名、表中的列名名眉、列的類型粟矿、列的約束進(jìn)行增刪改。
語法:alter table 表名 增/刪/改 列名 類型(長度) 約束损拢;

1.增加列
alter table 表名 add 列名 類型(長度) 約束;
2.修改現(xiàn)有列類型陌粹、長度和約束 語法:
alter table 表名 modify 列名 類型(長度) 約束;**
3、修改現(xiàn)有列名稱 語法:
alter table 表名 change 舊列名 新列名 類型(長度) 約束;**
4福压、刪除現(xiàn)有列 語法:
alter table 表名 drop 列名 ;
5掏秩、修改表名 語法:
rename table 舊表名 to 新表名;
6、修改表的字符集 語法:
alter table 表名 character set 編碼集;
7.查詢庫編碼和表編碼:
show create table employee
8.修改表編碼:
alter table employee chaeacter ser utf8;

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

語法:drop table 表名荆姆;
例如:刪除emp表 ---> drop table emp;

表內(nèi)數(shù)據(jù)操作(CRUD )

1.增加:insert 語句

數(shù)據(jù)記錄的增加
方式一:全寫
語法:insert into 表名 (列名蒙幻,列名,列名......) values (值胆筒,值邮破,值......);
方式二:省略部分列
注意:可以省略部分列名。某一列 有默認(rèn)值仆救,或者允許為空抒和,才可以省略。
主鍵是自增長的認(rèn)為是有默認(rèn)值的派桩。也可以省略
常見錯誤如下:
1.姓名重復(fù) ---> 唯一約束字段不能重復(fù)
2.age字段不能為空 --->非空約束字段不能不寫
方式三:省略所有的列
語法 : insert into 表名 values(值,值蚌斩,值铆惑,值);
1.表中有多少列送膳,就有多個值员魏。
2.按照表的結(jié)構(gòu),列和值去對應(yīng)
整理:
1.主鍵:若是自增長,不需要人工賦值(可以給值null)數(shù)據(jù)庫會按照自己的算法叠聋,為主鍵填充值撕阎。
2.通常遇到主鍵自增長,人工賦值的時候碌补,賦值null虏束。mysql會自己把null替換成新的值

2.修改:update 語句

修改表記錄:update 表名 set 列名=值,列名=值... [ where條件語句 ];
示例:將姓名為李四的人的年齡改為30,地址改為上海
sql:update emp set age = 30,address = '上海' where name = '李四' ;

3.刪除:delete語句

刪除表中數(shù)據(jù):delete from 表名 [where條件語句]
加上where條件即刪除滿足條件的行的數(shù)據(jù)
注意:
1.如果沒有where厦章,刪除表中的所有的記錄镇匀。
2.delete刪除的是行,delete是刪除行的數(shù)據(jù)。

數(shù)據(jù)庫備份

  • mysqldump工具備份
  • 將某個數(shù)據(jù)庫備份到指定的路徑進(jìn)行保存
  • mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 磁盤SQL文件路徑
  • 可以指定IP >> mysqldump -u 用戶名 -h host -p 數(shù)據(jù)庫名 > 磁盤SQL文件路徑
  • 注意:由于mysqldump命令不是sql命令袜啃,需要在dos窗口下使用

備份整個數(shù)據(jù)庫:
--> mysqldump -u root -p dbname > backdb.sql
--> mysqldump -u root -h host -p dbname > backdb.sql
備份數(shù)據(jù)庫中的某個表
--> mysqldump -u root -p dbname tbname1, tbname2 > backdb.sql
備份多個數(shù)據(jù)庫
--> mysqldump -u root -p --databases dbname1, dbname2 > backdb.sql
備份系統(tǒng)中所有數(shù)據(jù)庫
--> mysqldump -u root -p --all-databases > backdb.sql

示例:備份test數(shù)據(jù)庫到D盤test.sql文件
mysqldump -u root -p test > d:\test.sql
//指定ip汗侵,指定庫中具體的表

mysqldump -u root -h 127.0.0.1 -p test exam > D:\exam.sql

數(shù)據(jù)庫恢復(fù)

  • 方式一 (source 備份文件)

1.創(chuàng)建數(shù)據(jù)庫并切換到該數(shù)據(jù)庫:
創(chuàng)建數(shù)據(jù)庫db_name1:create database db_name1;
切換到db_name1:use db_name1;
2.導(dǎo)入數(shù)據(jù)(將備份的數(shù)據(jù)庫導(dǎo)入進(jìn)來)
source d:\test.ql

  • 方式二(mysql ... < ...)

1.創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫db_name2:create database db_name2;
2.不登錄mysql直接導(dǎo)入(類似備份操作)
mysql -u root -p db_name2 < d:\test.sql

數(shù)據(jù)庫基礎(chǔ)總結(jié)

  • 常規(guī)面試問題:delete和truncate以及drop的區(qū)別

delete from 表名:(DML)
原理:逐行刪除;
特點(diǎn):效率低,有可能恢復(fù)
truncate table 表名:(DDL)
原理:先刪除原表晰韵,在建立新的相同事物表发乔;
特點(diǎn):效率高,不可恢復(fù)
drop table 表名:
原理:是直接刪除表雪猪,也不會再創(chuàng)建新表
特點(diǎn):徹底刪除栏尚,不可恢復(fù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浪蹂,隨后出現(xiàn)的幾起案子抵栈,更是在濱河造成了極大的恐慌,老刑警劉巖坤次,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件古劲,死亡現(xiàn)場離奇詭異,居然都是意外死亡缰猴,警方通過查閱死者的電腦和手機(jī)产艾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滑绒,“玉大人闷堡,你說我怎么就攤上這事∫晒剩” “怎么了杠览?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纵势。 經(jīng)常有香客問我踱阿,道長,這世上最難降的妖魔是什么钦铁? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任软舌,我火速辦了婚禮,結(jié)果婚禮上牛曹,老公的妹妹穿的比我還像新娘佛点。我一直安慰自己,他們只是感情好黎比,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布超营。 她就那樣靜靜地躺著,像睡著了一般阅虫。 火紅的嫁衣襯著肌膚如雪糟描。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天书妻,我揣著相機(jī)與錄音船响,去河邊找鬼躬拢。 笑死,一個胖子當(dāng)著我的面吹牛见间,可吹牛的內(nèi)容都是我干的聊闯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼米诉,長吁一口氣:“原來是場噩夢啊……” “哼菱蔬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起史侣,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤拴泌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后惊橱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚪腐,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年税朴,在試婚紗的時候發(fā)現(xiàn)自己被綠了回季。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡正林,死狀恐怖泡一,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情觅廓,我是刑警寧澤鼻忠,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站杈绸,受9級特大地震影響帖蔓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝇棉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一讨阻、第九天 我趴在偏房一處隱蔽的房頂上張望芥永。 院中可真熱鬧篡殷,春花似錦、人聲如沸埋涧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棘催。三九已至劲弦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間醇坝,已是汗流浹背邑跪。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人画畅。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓砸琅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親轴踱。 傳聞我的和親對象是個殘疾皇子症脂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348