mysql常用

mysql

#personal/技术储备/mysql

mysql编码格式

show variables like ‘%char%’
查看该数据库中所有的编码格式,需要修改的话,直接set xxx=utf8

注意 该情况只能临时生效,具体的需要修改my.cnf配置文件中来修改

truncate table table_name

删除连带主键在内的所有表数据
仅仅用delete,新增的数据,主键还会依次增加,这个命令会重新生成新的主键排序

在 mysql的命令行中,敲错命令,利用后面\c取消该条命令

distinct 查询某个表里面不重复的数据

1
2
3
4
5
6
7
8
9
10
mysql> select distinct flags from items;
+-------+
| flags |
+-------+
| 0 |
| 1 |
| 2 |
| 4 |
+-------+
4 rows in set (0.00 sec)

导出数据库表结构或者数据

导出數據库為dbname所有表结构及表數據(不加-d)

  • mysqldump -uroot -pdbpasswd dbname table_name>db.sql;
    导出數據库為dbname某张表(test)结构 (加 -d)
  • mysqldump -uroot -pdbpasswd -d dbname table_name>db.sql;

mysql中的编码问题

编码格式如果没有定义,都是继承关系,mysql设置->database的编码->表结构的编码->表字段的编码

  • 查看数据库的默认编码 show variables like '%char%'
  • 强制设置数据库的默认编码使用set,一般修改的result的编码,直接使用 set names utf8
  • 查看具体某个数据库的编码格式 SHOW CREATE DATABASE nn_publish_platform;
  • 修改数据库的编码 alter database name character set utf8;
  • 查看表里面具体字段的编码 SELECT CHARACTER_SET_NAME, COLLATION_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME="monitor_templates";
  • 修改表里面具体字段的编码 ALTER TABLE test_table ADD COLUMN char_column VARCHAR(25) CHARACTER SET utf8;

要替换表结构中的数据

比如A 表中 C1的数据为’master’, 需要在前面加一个 code, 可以使用CONCAT方法来操作

1
2
update A set C1=CONCAT('code', C1);    //在前面加
update A set C1=CONCAT('test', C1, 'asgasdg'); //前后都加

替换表数据

比如要替换 A 表中的 C1的数据为’master’, 需要改为’ mazasster’, 使用replace 方法

1
update A set C1=replace(C1, 'master', 'mazasster')