MySQL筆記

1. 數(shù)據(jù)庫

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

mysql> create database tt character set utf8 [collate 校對集]

解釋:
tt=>數(shù)據(jù)庫名稱
character=>字符集
utf8=>字符集編碼厂榛,字符編碼是utf8的話校對集默認(rèn)是utf8_general_ci不區(qū)分大小寫

1.2 顯示所有數(shù)據(jù)庫

mysql> show databases;

1.3 選擇進(jìn)入到某個(gè)數(shù)據(jù)庫下面

mysql> use tt;

1.4 查看當(dāng)前數(shù)據(jù)庫狀態(tài)信息

mysql> status;

結(jié)果?
--------------
mysql  Ver 14.14 Distrib 5.7.24, for Win64 (x86_64)

Connection id:          3
Current database:       tt
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.7.24 MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3306
Uptime:                 17 min 59 sec

Threads: 1  Questions: 22  Slow queries: 0  Opens: 109  Flush tables: 1  Open tables: 18  Queries per second avg: 0.020
--------------

1.5 修改數(shù)據(jù)庫編碼

如果你在創(chuàng)建數(shù)據(jù)庫時(shí)數(shù)據(jù)庫字符集沒有設(shè)置成你想要的

alter database `tt` character set utf8;

注意:
tt=>這不是單引號(hào),而是鍵盤tab鍵上面那個(gè)鍵的符號(hào)历涝,在遇到數(shù)據(jù)庫名稱或者數(shù)據(jù)表名稱和字段有一個(gè)mysql無法識(shí)別這是一個(gè)名稱的時(shí)候可以帶上`

2. 數(shù)據(jù)表

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

2.1.1 創(chuàng)建表一

mysql> create table tt_t1 (
    -> id int(11) auto_increment primary key,
    -> name varchar(20),
    -> age int default 0,
    -> headimg varchar(100) comment '頭像',
    -> created_date int comment '存放時(shí)間戳'
    -> ) engine=innodb default charset=utf8;

解釋:
auto_increment=>自動(dòng)增長(可以自定義自動(dòng)增長間隔)
primary key =>主鍵
comment '頭像'=>字段注釋(當(dāng)然表也可以設(shè)置注釋)
engine=innodb=>數(shù)據(jù)表存儲(chǔ)引擎
charset=utf8=>字符集(最好在創(chuàng)建數(shù)據(jù)庫就進(jìn)行設(shè)置扭倾,這樣創(chuàng)建表就可以不寫了淀零,主要還是mysql默認(rèn)使用的字符集不是utf8)
id int(11)與created_date => int類型是有默認(rèn)長度的可以不設(shè)置

2.1.2 創(chuàng)建表二(不同于上一種所有都在設(shè)置字段的時(shí)候確定,而是現(xiàn)有字段再確定索引)

mysql> create table tt_t2(
    -> id int,
    -> name char(20),
    -> age tinyint,
    -> primary key(id),
    -> unique(name),
    -> index age_key(age)
    -> );

解釋:
unique(name)=>name字段為唯一索引
index age_key(age)=>age建立普通索引膛壹、索引名稱為age_key,每個(gè)索引都有默認(rèn)名稱為字段名驾中,不過也可以像這樣自定義
注意:index age_key(age) 當(dāng)中的index也可以寫成key,二者皆標(biāo)識(shí)索引

2.2 查看所有數(shù)據(jù)表

mysql> show tables;

2.3 數(shù)據(jù)表簡單結(jié)構(gòu)

mysql> desc tt_t1;

結(jié)果?
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| name         | varchar(20)  | YES  |     | NULL    |                |
| age          | int(11)      | YES  |     | 0       |                |
| headimg      | varchar(100) | YES  |     | NULL    |                |
| created_date | int(11)      | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+

2.4 查看當(dāng)時(shí)創(chuàng)建數(shù)據(jù)表是如何創(chuàng)建的

mysql>show create table 數(shù)據(jù)表名 \G

結(jié)果↓
*************************** 1. row ***************************
       Table: testfour
Create Table: CREATE TABLE `testfour` (
  `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  `text` char(10) CHARACTER SET latin1 DEFAULT NULL,
  `text2` varchar(10) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

2.5 更改數(shù)據(jù)表的編碼格式

alter table <表名> default character set utf8;

2.6 查看表中所有字段的具體信息恢筝,可以理解為desc的升級(jí)版

mysql> show full columns from testfour;
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| id    | tinyint(4)  | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| text  | char(10)    | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |
| text2 | varchar(10) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+

2.7 修改整個(gè)表所有字段的編碼格式哀卫,注意是整個(gè)表的字段而不是表

有的時(shí)候沒有注意到字符編碼設(shè)置錯(cuò)誤的問題,表已經(jīng)創(chuàng)建成功了撬槽,這個(gè)時(shí)候通過2.6看到校對集壓根不對

 alter table article  convert to character set utf8;

2.8 修改數(shù)據(jù)庫字段

mysql>ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段類型> CHARACTER SET <編碼格式>;

mysql> alter table testfour change text text char(10) character set utf8;

2.9 添加單個(gè)字段

alter table <表名> add <字段名> <字段類型>;

2.10 查看這個(gè)表里面所有的索引

SHOW INDEX FROM  <表名>

2.11 字段添加索引

主鍵
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

唯一
ALTER TABLE `table_name` ADD UNIQUE (`column`) 

普通
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )  

全文
ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

2.12 刪除索引

ALTER TABLE <表名> DROP INDEX <索引名>
或者
DROP INDEX <索引名> ON <表名>

2.13 添加多列索引

ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

其它

查看命令具體執(zhí)行時(shí)間

  1. 查看profile是否開啟此改,數(shù)據(jù)庫默認(rèn)不開啟。show variables like "%pro%"侄柔,variable總共有512個(gè)包括mysql服務(wù)端信息共啃,配置信息,所以需要like幫助我們篩選暂题。
    image.png

profiling | OFF

2.開啟profileset profiling = 1;
3.執(zhí)行語句

CREATE TABLE article ( 
              id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 
              title VARCHAR(200), 
              body TEXT, 
              FULLTEXT(title, body)
 ); 
  1. 查看語句執(zhí)行時(shí)間show profiles;可以看到query_id為1
    image.png
  2. 查看詳細(xì)運(yùn)行時(shí)間show profile for query 1;
    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末移剪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子薪者,更是在濱河造成了極大的恐慌纵苛,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件言津,死亡現(xiàn)場離奇詭異攻人,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)悬槽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門怀吻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人初婆,你說我怎么就攤上這事蓬坡。” “怎么了磅叛?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵屑咳,是天一觀的道長。 經(jīng)常有香客問我弊琴,道長乔宿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任访雪,我火速辦了婚禮详瑞,結(jié)果婚禮上掂林,老公的妹妹穿的比我還像新娘。我一直安慰自己坝橡,他們只是感情好泻帮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著计寇,像睡著了一般锣杂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上番宁,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天元莫,我揣著相機(jī)與錄音,去河邊找鬼蝶押。 笑死踱蠢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棋电。 我是一名探鬼主播茎截,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赶盔!你這毒婦竟也來了企锌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤于未,失蹤者是張志新(化名)和其女友劉穎撕攒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烘浦,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抖坪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谎倔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柳击。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猿推,死狀恐怖片习,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蹬叭,我是刑警寧澤藕咏,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站秽五,受9級(jí)特大地震影響孽查,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坦喘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一盲再、第九天 我趴在偏房一處隱蔽的房頂上張望西设。 院中可真熱鬧,春花似錦答朋、人聲如沸贷揽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽禽绪。三九已至,卻和暖如春洪规,著一層夾襖步出監(jiān)牢的瞬間印屁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工斩例, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雄人,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓樱拴,卻偏偏與公主長得像柠衍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子晶乔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354