-- 查询所有数据库
show databases

-- 删除数据库
drop database a
-- use `数据库名称`; 表示使用此数据库
use mybatis
-- 查看表结构
show create table a1

-- 删除表
drop table a
-- 查询表总共有多少条数据
select count(1) from user

select count(id) from user

-- 添加一条数据
insert into user (name,age) values ('蓝凤凰',19)
-- 添加多条数据
insert into user (name,age) values ('蓝凤凰',19),('蓝孔雀',20)
-- 这两个一起运行
insert into user (name,age) values ('曼联',21);
insert into user (name,age) values ('张倩',19);
-- 更新一条数据
update user set name = '阿紫',age =18 where id = 8
-- 更新多条数据
-- 这两个一起运行
update user set name = '小张',age = 19 where id = 9;
update user set name = '张三',age = 20 where id = 10;
-- 删除一条数据
delete from user where id = 1
-- 删除多条数据
delete from user where id in (2,3)
-- 这两个一起运行
delete from user where id = 5;
delete from user where id = 6;
-- 查询年龄在18到20之间
select * from user where age between 18 and 20

-- 查询年龄>= 18并且年龄<=20数据
select * from user where age >=18 and age <=20

-- 从id=10开始算总条数
select count(8) from user where id > 9

-- 查询age的总数
select sum(age) from user

-- 这里查询名字没有总数就返回0
select ifnull(sum(name),0) from user

-- 这里是按照name分组去重,名字相同的就把age的值加起来
select name, sum(age) from user group by name;

-- 查询tx_delete判断是否删除
-- 第一种写法
select id,tx_delete,
case
when tx_delete = 0 then '未删除'
else '已删除'
end as delete_sc
from user

select id,tx_delete,
case
when tx_delete = 0 then '未删除'
when tx_delete = 1 then '已删除'
end as delete_sc
from user

select id,tx_delete,
case
when tx_delete = 0 then '未删除'
when tx_delete = 1 then '已删除'
else '' end as delete_sc
from user

-- 第二种写法
-- 这个随便怎么样都是已删除
select id,tx_delete,
case
when 0 then '未删除'
when 1 then '已删除'
end as delete_sc
from user

-- 这个添加过数据的就是未删除
select id,tx_delete,
case tx_delete
when 0 then '未删除'
else '已删除'
end as delete_sc
from user

-- 第三种写法
select tx_delete, if(tx_delete = 0, '未删除', '已删除') as delete_sc from user

-- 左连接
select * from employee e left join dept d on e.dept_id = d.id

-- 右连接
select * from employee e right join dept d on e.dept_id = d.id

-- 内连接
select * from employee e join dept d on e.dept_id = d.id

select * from employee e inner join dept d on e.dept_id = d.id

-- where连接
select * from employee e, dept d where e.dept_id = d.id

-- 日期格式化

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位
-- 拼接字符串
-- concat_ws用法
-- 这个拼接的 '-' 都是在中间
select name,age, concat_ws ('-',name,age) from user

select name,age, concat_ws ('-',name,age,'%','=') from user

-- concat用法
-- 这个拼接的 '-' 这个符号放在哪个位置就在哪里
select name,age, concat(name,'-',age) from user

select name,age, concat(name,'-',age,'%','=') from user

-- 查询name相同的合并成一个name,id也查询出来
select name,group_concat(id) from user group by name

select name,group_concat(id order by id desc) from user group by name

-- 分割
select name,group_concat(id separator '-') from user group by name

-- 查询name,id,age,id和age用 '-' 分割
select name,group_concat(concat_ws('-',id,age)) as id_age from user group by name

-- 保留两位小数
select name,price,round(price,2) from user

select round(111.245,2)

select round(123.1243/0,2)

select round(0/1235.1545,2) 

-- 去重
select distinct name,id from user

-- 去重来查询总数
select count(distinct name) from user

-- 模糊查询
select id,name from user where name like '蓝%'

select id,name from user where name like '%孔%'

select id,name from user where name like '%雀'

-- 不查询id为7和8的信息
select id,name from user where not id in (7,8)

-- 只查询id为7和8的信息
select id,name from user where id in (7,8)

--这几个的优先级: where > group by > having > order by > limit
select e.dept_id,d.name from employee e left join dept d on e.dept_id = d.id

select count(1) c,d.name from employee e left join dept d on e.dept_id = d.id group by dept_id

select count(1) c,d.name from employee e left join
dept d on e.dept_id = d.id
group by dept_id having c > 1 order by c desc

select count(1) c,d.name from employee e left join
dept d on e.dept_id = d.id where e.name!='天宇'
group by dept_id having c > 1 order by c desc limit 1

-- 根据status和age来统计 成年人已删除,成年人未删除,未成年人已删除,未成年人未删除的总数
select
ifNull(sum(case when status = 0 and age >= 18 then 1 else 0 end), 0) as '成年人未删除总数'
, ifNull(sum(case when status = 0 and age < 18 then 1 else 0 end), 0) as '未成年人未删除总数'
, ifNull(sum(case when status = 1 and age >= 18 then 1 else 0 end), 0) as '成年人已删除总数'
, ifNull(sum(case when status = 1 and age < 18 then 1 else 0 end), 0) as '未成年人已删除总数'
from user

-- 查询科目前二的分数
select u1.* from user1 u1 where
(select count(1) from user1 u2 where u1.course = u2.course and u1.score < u2.score) < 2
order by u1.course, u1.score desc;

-- 这句代码的意思是不会去重
select * from user where age > 18 union all
select * from user where status = 0;

-- 这句代码的意思是会去重
select * from user where age > 19 union
select * from user where status = 0;

-- 这句代码的意思是可以把u1表中的数据拷贝多次去u2表中
insert into u2(name,age) select name,age from u1
-- 这句代码的意思是不可以把t1表中的数据拷贝多次去t2表中,拷贝多次会报错,只能拷贝一次
insert into t2 select * from t1
-- 这句代码的意思是把t1表的结构复制一份再创建一个表数据会过去,但是id自动递增不会设置
create table tt3 select * from t1;
-- 查询a1表设置进b1表中的数据
select * from a1
where exists (select 1 from b1 where a1.id = b1.aid)

-- 查询a1表没有设置进b1表中的数据
select * from a1
where not exists (select 1 from b1 where a1.id = b1.aid)

-- 查询a1表id为2的数据
select * from a1
where exists (select 1 from b1 where a1.id = 2)

-- 查询b1表连接a1表中的数据
select * from a1
where exists (select 1 from b1 where b1.aid = 1)

MySQLDemo2的更多相关文章

随机推荐

  1. CTO职场解惑指南系列(一)

    基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯.程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” .(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠双手吃饭就会特别不容 ...

  2. mysql TO_DAYS()

    mysql TO_DAYS(date) 函数 TO_DAYS(date) 给定一个日期date, 返回一个天数 (从年份0开始的天数 ). mysql> SELECT TO_DAYS(95050 ...

  3. CPU的load和使用率傻傻分不清(转)

    转自: https://www.cnblogs.com/yunxizhujing/p/9382396.html 1. 什么是Cpu的Load 使用uptime.top或者查看/proc/loadavg ...

  4. python 排序算法总结及实例详解

    python 排序算法总结及实例详解 这篇文章主要介绍了python排序算法总结及实例详解的相关资料,需要的朋友可以参考下 总结了一下常见集中排序的算法 排序算法总结及实例详解"> 归 ...

  5. JeecgBoot 2.1.1 代码生成器AI版本发布,基于SpringBoot+AntDesign的JAVA快速开发平台

    此版本重点升级了 Online 代码生成器,支持更多的控件生成,所见即所得,极大的提高开发效率:同时做了数据库兼容专项工作,让 Online 开发兼容更多数据库:Mysql.SqlServer.Ora ...

  6. 版本控制git之三-多人协作 变基 推送 拉取 删除远程分支

      版本控制git之三-多人协作 wangfeng7399已关注0人评论350人阅读2019-02-20 21:33:08   如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想为某个开源 ...

  7. PostgreSQL的基础数据类型分析记录-转

    src:http://www.codeweblog.com/postgresql%E7%9A%84%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E ...

  8. Vue配置多个跨域目标链接

    参考: https://segmentfault.com/a/1190000016199721 1.通过使用的http-proxy-middleware来实现跨域代理 devServer: { dis ...

  9. mysql设置密码登录

    参考: https://blog.csdn.net/Light_Breeze/article/details/82070222 https://www.jianshu.com/p/d979df2791 ...

  10. 使用ResponseEntity进行返回json数据

    在最近的项目中,与上位机进行数据传输时,上位机需要服务器的响应得知服务器是否正常运行,数据是否正常发送 在最近的调试中我使用ResponseEntity<Map<String,Object ...