Mysql常用sql语句汇总

时间:2022-10-17 13:54:18

1、mysql 导出文件:

 

?
1
SELECT `pe2e_user_to_company`.company_name, `pe2e_user_to_company`.company_code, `users`.name, `users`.uid, `users`.mail, `pe2e_email_notification_email`.`email_cc` FROM `users` , `pe2e_user_to_company` LEFT JOIN `pe2e_email_notification_email` ON `pe2e_user_to_company`.`uid` = `pe2e_email_notification_email`.`uid` WHERE `users`.`uid` = `pe2e_user_to_company`.`uid` into outfile '/tmp/users.csv' fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

2、关联查询

sql中多个left join,为了保证返回数量和主表一样,要加个group by 主表id

3、if,ifnull,concat_ws等常见方法

1)concat_ws('',country, province, city) region  三字段按照''之间的内容合拼;

concat_ws('',CASE p.gameType1 WHEN 1 THEN '朗诵讲故事' WHEN 2 THEN '朗诵情景演讲' END,CASE p.gameType2 WHEN 3 THEN '主题写作' END) as gameType;

2)if(gender=1,'男','女') as gender;

3)ifnull(age,0) as age;

4)(CASE ageGroup WHEN 1 THEN '儿童A组' WHEN 2 THEN '儿童B组' WHEN 3 THEN '少年A组' WHEN 4 THEN '少年B组' END) as ageGroup;

4、mysql5.7 找回root密码

?
1
2
3
[root@166087 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/data/mysql --skip-grant-tables
 
mysql> update user set authentication_string=password('123456') where user='root';

5、阿里云使用笔记-MySQL远程连接-centos7

首先登录:

mysql -u root -h localhost -p

use mysql                #打开mysql数据库

2)将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip

?
1
2
3
update user set host='%' where user='root' and host='localhost';
 
flush privileges;    #刷新权限表,使配置生效

然后我们就能远程连接我们的mysql了。

3)如果您想关闭远程连接,恢复mysql的默认设置(只能本地连接),您可以通过以下步骤操作:

?
1
2
3
4
5
6
7
8
9
use mysql        #打开mysql数据库
 
update user set host='localhost' where user='root';    #将host设置为localhost表示只能本地连接mysql
 
flush privileges;    #刷新权限表,使配置生效
 
update user set password=password('123456') where User='root';#修改密码
 
flush privileges ; #刷新权限表,使配置生效

备注:您也可以添加一个用户名为yuancheng,密码为123456,权限为%(表示任意ip都能连接)的远程连接用户。命令参考如下:

?
1
2
3
grant all on *.* to 'yuancheng'@'%' identified by '123456';
 
flush privileges;

4)mysql排序时如果该字段是varchar怎么办?

2种办法:

1. order by 字段+0

2. order by cast(字段 as int)

6、批量修改字段数据

?
1
2
3
update t_comment SET avatar = replace(avatar, 'http', 'https');//替换
 
update t_log set message=concat("https",message);//前面追加

原文链接:https://yq.aliyun.com/articles/215966