mysql小知识

char(10): 换行符
char(13): 回车符
UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ”), CHAR(13), ”);

#按字母排序

select * from tablename order by convert(columnname USING gbk) COLLATE gbk_chinese_ci asc

mysqldump 备份数据

mysqldump -uroot -p1 baobanyouhui t_dept > E: _dept_bak.sql

不指定目录则在当前目录备份

mysqldump -uroot[mysql账户名] -p1[mysql账户密码] baobanyouhui[数据库] t_dept[数据表] > E: _dept_bak.sql [备份后的文件]

导入sql

进入mysql数据库

use 数据库  //选择数据库

source e:a.sql 导入sql文件

 

#修改字段
ALTER TABLE t_employee_detail MODIFY COLUMN qq VARCHAR(50);
#新加字段
alter table tableName add newColumn varchar(8) comment '新添加的字段'

查看表结构 字段类型

desc tabl_name;

--------------------------------------------------------------替换------------------

UPDATE t_chandao_bug SET url=REPLACE(url, '&sid=nusbmqr1evioim2trdp8fbu983&t=json', ''); 

#导出Excel  when case替换
select '表名',school_address,t_area.area_name,is_enroll,
CASE is_enroll
WHEN '0' THEN '可以'
WHEN '1' THEN '不可以'
WHEN '-1' THEN '不显示'
END '可否报名'
into outfile 'F:\s\school1.xls'
from '表名','表名1' WHERE t_area.area_id=t_school.area_id and is_publish=1;

添加索引:

ALTER TABLE `t_ceshi_table`[表名] ADD INDEX taskId[索引名](taskId)[列] ;

SELECT jinxudong.* FROM jinxudong WHERE name in (SELECT name FROM st);
#where exists 返回boolean值

exists子句返回的结果并不是从数据库中取出的结果集,而是一个布尔值,如果子句查询到数据,那么返回true,反之返回false。

所以子句中选择的列根本就不重要,而重要的是where 后的条件。如果返回了true,那么相当于直接执行了子句 where 后的部分


SELECT jinxudong.* FROM jinxudong WHERE EXISTS (SELECT name FROM st WHERE st.name=jinxudong.name);

mysql:索引

#复合索引 MySQL组合索引“最左前缀”的结果
ALTER TABLE jinxudong ADD INDEX name_remark (name(10),remark(255));

desc jinxudong;
#索引有效
EXPLAIN SELECT * FROM jinxudong WHERE `name`='a' AND remark ='a';
#索引有效
EXPLAIN SELECT * FROM jinxudong WHERE `name`='a';
#索引失效
EXPLAIN SELECT * FROM jinxudong WHERE `remark`='a';
#有索引 因为有a 最左边原则
EXPLAIN SELECT * FROM jinxudong WHERE `remark`='a' AND name='a';

# 举例:给 a b c 建立组合索引 则 a有效 abc有效 ab有效 bc无效 b c 都无效

原文地址:https://www.cnblogs.com/coderdxj/p/6894091.html