MySQL的详细用法,内容包括:SQL语法,SQL数据类型,常用的SQL语句,复杂查询包括,连接查询,子查询,联合查询;无论在什么框架中使用库,但实际上是原生操作才是根本。

一,常规操作mysql -h 123.123.123.1 -P 端口 -u用户 -p密码

# 连接数据库

show databases;

# 显示所有库

use 库名;

# 进入某个库

show tables;

# 显示所有表

set password for 用户名@localhost = password('新密码');

# 修改用户密码 方式一

mysqladmin -u用户名 -p旧密码 password 新密码

# 修改用户密码 方式二

# 忘记密码?

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 在 [mysqld] 下添加 skip-grant-tables

[mysqld]

skip-grant-tables

免密码登录后 mysql -u root

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';

# 修改用户密码 方式三

update mysql.user set authentication_string=PASSWORD('123456'),plugin='mysql_native_password',host='%' where user='root';

# 最新方式

# 远程工具连不上本地mysql?

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 下面这行注释

bind-address = 127.0.0.1

二,表操作(创建表,删除表,修改表,查看表)

describe 表名;

# 显示表结构(简写 desc 表名)

show create table 表名;

# 显示表结构语句

alter table old rename new;

# 修改表名

CREATE TABLE `test` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '测试表',

`createtime` datetime DEFAULT NULL COMMENT '时间',

`title` varchar(10) CHARACTER SET latin1 DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

# 创建表(字段可自定义);

DROP TABLE IF EXISTS `表名`;

# 删除表

ALTER TABLE 表名 DROP 字段;

# 删除字段

primary key # 定义主键

not null # 非空

unique # 唯一

default # 默认值

auto_increment # 自动

# 函数

rand() # 随机数

concat('AAA','BBB') # 连接字符串

trim(str) # 去除空格

month('2019-09-28')

# 月份

QUARTER('2016-04-28')

# 季度

DAYOFWEEK('2016-04-28')

# 1是星期日

#聚合函数

avg(col) # 平均值

count(*) # 记录数

min(col) max(col) # 最小 最大值

sum(col) # 求和

SET NAMES utf8 # 设置编码

三,增,删,改,查(CURD)

增insert into Table(id,name) values (null,'Li') ;

# 插入数据

insert into Table(id,name) values (null,'Li'),(null,"Wang");

# 插入多行数据

insert into Table values (null,"Li",null,"数据");

# 插入所有列

insert into Table(id,name) select id,name from T2;

# 查询插入

insert ignore into Table(id,name) values (null,'Li') ;

# 唯一索引插入 有效防止重复数删delete from Table where id =1;

# 删除

delete from Table where id in(1,2,3);

# 删除多条

truncate table test;

# 清空表改update Table set name='Li' where id=1;

# 更新

update Table left join T1 on T.id=T1.id set u='1',u1='2' where id=1;

# 多表更新

update Table set user=replace(user,'a','a1')

# 替换表字段查select * from 表名

select * from 表名 where id=1

# 条件

select distinct id from 表名

# 结果字段不重复

select * from 表名 order by id;

select * from 表名 order by id desc ,time asc;

# 排序,默认升序asc,降序desc

select * from 表名 group by sex;

select * from 表名 group by sex having;

# 分组查询,having 限定条件

select * from 表名 limit 4

# 返回4条

select * from 表名 4,3

# 返回3条,从第5条记录开始

select a,b,c from A inner join B on A.id = B.id;

select a,b,c from A,B where A.id=B.id;

# 内连接两个功能相同

select * from A left join B on A.id=B.id;

select * from A right join B on A.id=B.id;

# 左连接,右连接

select id from Table where id2 in(select id3 from Table2);

# 嵌套查询

select * from A union all select * from B;

select * from A union select * from B; 去重复

# 合并结果集

select id as ID from A as a;

# 表或字段起别名

sql文件

mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

# 导出表结构和数据

mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

# 只导出表结构

------------导入数据---------------

1. 方法一

mysql>use abc;

# 选择数据库

mysql>set names utf8;

# 设置数据库编码

mysql>source /home/abc/abc.sql;

导入数据(注意sql文件的路径)

2. 方法二

mysql -u用户名 -p密码 数据库名 < 数据库名.sql

其他常用的查询:

select * from ims_rank where DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= date(createtime);

# 七天之前数据 30天

select * from ims_rank where to_days(createtime) =to_days(now());

# 今天数据

select * from ims_rank where TO_DAYS( NOW( ) ) -TO_DAYS( createtime) <= 1 # 昨天今天数据

select * from ims_rank where DATE_FORMAT( createtime,'%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

# 本月

select * from ims_rank where PERIOD_DIFF( date_format(now( ) , '%Y%m' ) , date_format( createtime, '%Y%m' ) ) =1

# 上月

select * from ims_rank where YEARWEEK(date_format(createtime,'%Y-%m-%d')) =YEARWEEK(now());

# 本周(第一天星期日)

select * from ims_rank where YEARWEEK(date_format(createtime,'%Y-%m-%d')) = YEARWEEK(now())-1;

# 上周数据

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐