mysql基础知识
引言
主要是自己在使用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;