数据库小技巧

 

持续更新........

mysql linux常见操作语句

./mysql -u root -p 进入MySQL bin 文件夹登录
select * from mysql.user 查看MySQL数据库用户信息,主要是账户信息和host 权限信息
update mysql.user set host='%' where user = 'root' 修改 已经创建好的账户host信息
flush privileges 修改之后刷新
CREATE USER 'qhjj'@'%' IDENTIFIED BY 'Qdwie87@ue68'; 创建用户
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'qhbmSf@2023'; 修改账户密码
grant select,insert,update,delete on smartcity_rsdir.* to 'qhxk'@'%'; 赋予指定账户 指定数据库 、指定数据表 、指定权限
grant all privileges on *.* to 'qhjj'@'%';赋予指定账户 所有的数据库、数据表所有的权限

 

通过Xshell连接Linux并跳转访问另一台Linux

ssh root@IP

 

数据库迁移

数据库迁移,MySQL数据库迁移,可以在服务器中导入SQL文件迁移

 //数据库导出
./mysqldump -u 数据库账户-p数据库密码 数据库名>/usr/导出地址/XXXXX.sql  //导出指定数据库
./mysqldump -u 数据库账户-p数据库密码 --all-databases >/tmp/all.sql  //导出所有的数据库
./mysqldump -u 数据库账户-p数据库密码 数据库名A.数据表名 >/tmp/all.sql //导出数据库A的某张表

//数据库导入 导入的前提是 必须先创建数据库才可以导入,且先进入服务器数据库
source /path/to/file.sql;

 

SQL语句特殊字符查询

如果在数据库中的字段含有 ‘’ 、% 、@ 等特殊字符时,可以使用 转义字符 \  加 like 查询进行匹配,假设字段中含有 ‘’ 类型的数据

select * from  tableA where name like '%\''

 

in语法排序

在where  in 条件中,查询出来的结果根据 in 中的顺序排序

select * from tableA where id in ('1111','333','222') order by field (id,'111','222','333')

 

一张数据表查询出两个字段相同的数据

select * from table_name where file1 = file2

 

mysql 拼接语句

CONCAT拼接是没有空格的拼接
select CONCAT('AAAA','BBBB') from table_name

 

MySQL数据拆分

将一个字段的数据拆分成多个列,比如  :  

 拆分成:

 

select
       SUBSTRING_INDEX(字段,',',1) as value1,
       SUBSTRING_INDEX(SUBSTRING_INDEX(字段, ',', 2), ',', -1) AS value2,
       SUBSTRING_INDEX(SUBSTRING_INDEX(字段, ',', 3), ',', -1) AS value3,
       SUBSTRING_INDEX(字段,',',-1) AS value4
from table_name 

 

update数据更新

根据一张表的数据更新另一张表

update  tableA t1 set XX= (select t2.XX from tableB t2  where t1.id = t2.id)
posted @ 2023-06-20 11:36  凌晨与风  阅读(6)  评论(0编辑  收藏  举报