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í)間
- 查看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)
);
- 查看語句執(zhí)行時(shí)間
show profiles;
可以看到query_id為1
image.png - 查看詳細(xì)運(yùn)行時(shí)間
show profile for query 1;
image.png