引言

主要是自己在使用mysql中一些使用总结,便于之后学习复查和使用

1 插入、删除、查询、更新操作

主要是一些简单的增删改操作

1.1 插入数据

命令格式:insert into <表名> [(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];

举个例子

insert into my_table (id, name, age) values ('1001', 'Tom', 14) 

1.1.1 插入空值

insert into my_table (name) values (NULL)

1.1.2 复制创建一个新表

复制旧表到新表,结构、数据都和旧表一样,同时可以截取部分旧表中的数据。

CREATE TABLE new_table SELECT * FROM old_table LIMIT 0,6

1.2 删除

删除表

drop table my_table

删除表中全部数据,truncate和delete的区别这里不展开,具体使用的时候可以了解。truncate比delete快,但是删除后不可以回复。delete是将记录一条一条的删除。

truncate (table) my_table
or
delete from my_table

删除数据

delete from my_table where ID = '1001'

1.3 查询数据

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

1.3.1 查询指定数量的数据,用于分页

# 0表示起始位置,10表示查询的数量。如果翻页,比如翻到第二页,修改0为10就可以了,此时查询的就是从第10条数据到第19条共10条数据。
select * from my_table LIMIT 0,10

1.3.2 模糊查询

查询名字中间包含To的相关信息

select age,name from my_table where name like '%To%'

1.4 更新

UPDATE [LOW_PRIORITY] [IGNORE] table_name 
SET 
    column_name1 = expr1,
    column_name2 = expr2,
    ...
WHERE
    condition;

2 关于时间的相关操作

比如查询月份为1的记录数量

select count(*) from my_table where MONTH(publish_time) == 1

3 创建表的sql

CREATE TABLE `weipost`(
	`Wid` varchar(16) NOT NULL auto_increment COMMENT '主键,微博的id',
	`Wlikes` int NOT NULL COMMENT '点赞数',
	`Wtitle` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '微博标题',
	`Uid` varchar(10) NOT NULL COMMENT '用户的ID,外键',
	PRIMARY KEY (`Wid`),
	FOREIGN KEY (`Uid`) REFERENCES userInfo(`Uid`)    # 这个位置不能添加逗号,否者会出错
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

具体的一些编码等问题暂时不是很清楚怎么设置。

4 删除表中重复的数据

https://blog.csdn.net/qq_32345239/article/details/52288013
删除数据库中重复的数据,只保存其中的一条。
首先,查询重复的记录。

select * from my_table group by column1 having count(column1) > 1

一些关键用法

group by

group by可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。

# 查询总共分成了多少组,c是一个别名
select count(*) from (select * from my_table group by place) c;