mysql学习之旅----基础学习笔记

数据持久化就是要保存数据到文件可以是数据库,可以是文本等
推荐下载msi的安装包,可以做许多环境配置的事
查询select username,age,gender from users;
增加insert into users(username,age,gender) values ('我',28,'男');
表中设置了主键就是设置了唯一值,同时要勾选上自动递增和无符号
添加成功后,要渲染后台发回来的完整的数据,不要自己造数据,可能会不一致,
还有一种是后端只返回变化的数据,而前端要拼接数据,这种,后端压力小
select * from todos where title like 'koa%'; 以koa开头的
select * from todos where title like '%koa'; 以koa结尾的
select * from todos where title not like '%koa'; 不以koa结尾的
select * from todos where title like '%koa%'; 带koa的--可以做搜索
select DISTINCT gender,username from user; 去重 DISTINCT不重复

SELECT gender from user GROUP BY gender; 分组
SELECT gender, count(gender) as count from user GROUP BY gender; 分组查询,显示男几条,女几条  as count 是别名 将count(gender) 显示为count
条件
select * from user where gender='男'; 查询所有男的
select * from user where gender='男' and age<20; 小于20的男子
select * from user where age BETWEEN 1 and 30; 年龄在1到30之间的
like 一般需要通配符配合
select * from user where username like '_v';  v前面任意一个字符的用户名
select * from user where username like '_v%'; 
select * from user where username in ('nv','w'); like in between 都有之间的意思
正则
select * from user where username REGEXP '\\w' 包含w的用户名
select * from user where username REGEXP '^w' 以w开头的
select * from user where username REGEXP 'w$' 以w结尾的
select * from user where username REGEXP '^w$' 只有w的
排序
select * from user order by age desc,id ASC; 年龄从大到小,年龄相同的话id从小到大
限制偏移
select * from user limit 2 offset 1;  选两条数据,偏移一条,从第二条开始
select * from user limit 1,2; 同上,只不过先偏移,再选2条
SELECT * from user where username="W"; 查找用户名为大写W的,选的编码不一样,结果不一样
select * from user where ucase(username)=ucase('w'); 查找用户名,不管是大写还是小写,都转成大写
大小写是有坑的
多表查询
select * from user,message;  将两张表的数据相乘
select * from user,message where user.id=message.uid; 查找两张表中用户id相同的
select * from user join message on user.id=message.uid; 内链接,结果和上面那条一样
select * from user left join message on user.id=message.uid; 左连接 左侧的表数据都显示,右侧的表只显示匹配到uid值的
select * from user right join message on user.id=message.uid; 右连接 ,右侧全显示
SELECT USER.id as uid, user.username, USER.age, USER.gender, message.id as message_id, message.content FROM user LEFT JOIN message ON user.id=message.uid;
别名的使用
UPDATE todos set done=0 WHERE id in (6,7); 批量更新 ,将原先6,7done为1的改为0

猜你喜欢

转载自blog.csdn.net/qfxlw/article/details/83892219