MySQL 操作手册

修改用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

查看数据库编码格式

  1. 查看数据库编码格式: show variables like 'character_set_database';
  2. 查看数据表的编码格式:show create table <表名>;
  3. 查看 MySQL 数据列(column)的字符集:show full columns from <表名>;
  4. 创建数据库时指定数据库的字符集:create database <数据库名> character set utf8;
  5. alter database mydb DEFAULT CHARACTER SET utf8;
  6. 修改数据库的编码格式:alter database <数据库名> character set utf8;
  7. 修改数据表格编码格式:alter table <表名> character set utf8;
  8. 修改表的默认字符集和所有列的字符集: ALTER TABLE table_name CONVERT TO CHARACTER SET character_name
  9. 修改字段编码格式:alter table <表名> change <字段名> <字段名> <类型> character set utf8;
  10. 查看当前安装的 MySQL 所支持的字符集:show charset;
  11. 在 my.cnf 修改默认的服务器字符集:character-set-server=utf8

改表结构

  1)添加字段:alter table table_name add column column_name varchar(64) AFTER `uid` ; (在哪个字段后面添加)

  2)删除字段:alter table table_name drop column column_name;

  3)修改字段类型:

    alter table 表名 modify column 字段名 类型;           【修改列类型】

    alter table 表名 change 旧字段名 新字段名 类型;   【修改列名和列类型】

  4)添加外键:

    alter table users add constraint users_ibfk_1 FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`);

  5)修改表的默认字符集和所有列的字符集:

    ALTER TABLE table_name CONVERT TO CHARACTER SET character_name

查看索引

mysql> show index from tblname; 
mysql> show keys from tblname;

添加索引

# 主键索引
mysql> ALTER  TABLE  `table_name`  ADD  PRIMARY  KEY ('column');

# 新增列,并设为主键,first 放在首列
mysql> ALTER TABLE table_name add column id int unsigned NOT NULL AUTO_INCREMENT primary key COMMENT '主键' FIRST; #
唯一索引 mysql> ALTER TABLE `table_name` ADD UNIQUE index_name (`column`) # 普通索引 mysql> ALTER TABLE `table_name` ADD INDEX index_name ( `column`) # 全文索引 mysql> ALTER TABLE `table_name` ADD FULLTEXT (`column`) # 多列索引 mysql> ALTER TABLE `table_name` ADD INDEX index_name (`column1`, `column2`, `column3`)

也可以使用 create index 语句创建索引:

CREATE INDEX index_name ON table_name (column_list);
CREATE UNIQUE INDEX index_name ON table_name (column_list);

table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

删除索引

DROP INDEX index_name ON talbe_name;
ALTER TABLE table_name DROP INDEX index_name;
ALTER TABLE table_name DROP PRIMARY KEY;

其中,前两条语句是等价的,删除掉table_name中的索引index_name。

第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。

修改索引

在MySQL中并没有提供修改索引的直接指令,一般情况下,我们需要先删除掉原索引,再根据需要创建一个同名的索引,从而变相地实现修改索引操作。

撤回 with grant option 权限

mysql> revoke grant option on *.* from 'user'@'localhost';

重命名表: rename table old_name to new_name;

获取当前日期时间

> select current_date();
+----------------+
| current_date() |
+----------------+
| 2017-11-06     |
+----------------+

> select current_time();
+----------------+
| current_time() |
+----------------+
| 14:32:46       |
+----------------+

> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2017-11-06 14:32:53 |
+---------------------+

安装插件,如:

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
mysql> INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';

卸载插件

mysql> UNINSTALL PLUGIN plugin_name;

 查看表锁

mysql> show open tables where in_use > 0;
mysql> show table status;

 insert ignore into

当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。

replace into

如果存在primary or unique相同的记录,则先删除掉,再插入新记录(影响的行数为2)。如果没有冲突,同 insert into 语句。

REPLACE INTO test(title,uid) VALUES ('1234657','1001');

修改字段顺序

ALTER TABLE `tb_position` CHANGE `area` `area` VARCHAR(50) AFTER `city`;
原文地址:https://www.cnblogs.com/waynechou/p/7656474.html