MySQL笔记

1. 数据库

1.1 创建数据库

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

解释:
tt=>数据库名称
character=>字符集
utf8=>字符集编码,字符编码是utf8的话校对集默认是utf8_general_ci不区分大小写

1.2 显示所有数据库

mysql> show databases;

1.3 选择进入到某个数据库下面

mysql> use tt;

1.4 查看当前数据库状态信息

mysql> status;

结果⬇
--------------
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 修改数据库编码

如果你在创建数据库时数据库字符集没有设置成你想要的

alter database `tt` character set utf8;

注意:
tt=>这不是单引号,而是键盘tab键上面那个键的符号,在遇到数据库名称或者数据表名称和字段有一个mysql无法识别这是一个名称的时候可以带上`

2. 数据表

2.1 创建数据表

2.1.1 创建表一

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 '存放时间戳'
    -> ) engine=innodb default charset=utf8;

解释:
auto_increment=>自动增长(可以自定义自动增长间隔)
primary key =>主键
comment '头像'=>字段注释(当然表也可以设置注释)
engine=innodb=>数据表存储引擎
charset=utf8=>字符集(最好在创建数据库就进行设置,这样创建表就可以不写了,主要还是mysql默认使用的字符集不是utf8)
id int(11)与created_date => int类型是有默认长度的可以不设置

2.1.2 创建表二(不同于上一种所有都在设置字段的时候确定,而是现有字段再确定索引)

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,每个索引都有默认名称为字段名,不过也可以像这样自定义
注意:index age_key(age) 当中的index也可以写成key,二者皆标识索引

2.2 查看所有数据表

mysql> show tables;

2.3 数据表简单结构

mysql> desc tt_t1;

结果⬇
+--------------+--------------+------+-----+---------+----------------+
| 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 查看当时创建数据表是如何创建的

mysql>show create table 数据表名 \G

结果↓
*************************** 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 更改数据表的编码格式

alter table <表名> default character set utf8;

2.6 查看表中所有字段的具体信息,可以理解为desc的升级版

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 修改整个表所有字段的编码格式,注意是整个表的字段而不是表

有的时候没有注意到字符编码设置错误的问题,表已经创建成功了,这个时候通过2.6看到校对集压根不对

 alter table article  convert to character set utf8;

2.8 修改数据库字段

mysql>ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段类型> CHARACTER SET <编码格式>;

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

2.9 添加单个字段

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

2.10 查看这个表里面所有的索引

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` )

其它

查看命令具体执行时间

  1. 查看profile是否开启,数据库默认不开启。show variables like "%pro%",variable总共有512个包括mysql服务端信息,配置信息,所以需要like帮助我们筛选。
    image.png

profiling | OFF

2.开启profileset profiling = 1;
3.执行语句

CREATE TABLE article ( 
              id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 
              title VARCHAR(200), 
              body TEXT, 
              FULLTEXT(title, body)
 ); 
  1. 查看语句执行时间show profiles;可以看到query_id为1
    image.png
  2. 查看详细运行时间show profile for query 1;
    image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355