mysql查询语句插⼊语句写法
插⼊语句
insert into 表名(字段名)values (‘value1’)
更新
update 表名 set 字段名=‘value1’ where id= ‘value2’
csshover范围太大如何解决查询语句
1. 查询不重复的记录
select distinct 字段 from 表名;
eg: select distinct name from students;//查询名字不相同的学⽣;
select distinct name,age from students;//查询名字和年龄同时不同的学⽣
1.distinct必须放在最开头
2.distinct只能使⽤需要去重的字段进⾏操作。 ----也就是说我sidtinct了name,age两个字段,我后⾯想根据id进⾏排序,是不可以的,因为只能name,age 两个字段进⾏操作.
3.distinct去重多个字段时,含义是:⼏个字段同时重复时才会被过滤。
2. 条件查询
select 字段 from 表名 where 条件;
eg:select * from student where sex='男' and age>20; //查询性别是男,并且年龄⼤于20岁的⼈。
where后⾯的条件可以⽤>、<、>=、<=、!=等多种⽐较运算符,多个条件之间可以⽤or、and等逻辑运算符
3. 排序和限制
排序
select * from 表名 [where 条件] [ order by field1 [desc/asc],field2 [desc/asc]... ];
eg:select *from student order by age desc;//查询学⽣表并按年龄降序排列。
1.desc 降序排列,asc 升序排列
3.如果排序字段的值⼀样,则相同的字段按照第⼆个排序字段进⾏排序。
4.如果只有⼀个排序字段,则字段相同的记录将会⽆序排列。
限制
select ... [limit 起始偏移量,⾏数];
eg:select * from student order by mark desc limit 5;//取出成绩前五名的学⽣(省略了起始偏移量,此时默认为0)
1.默认情况下,起始偏移量为0,只写记录⾏数就可以。
4. 聚合
select 字段 fun_name from 表名 [where 条件] [group by ] [with rollup] [having 条件];
eg:
1.fun_name 表⽰要做的聚合操作,也就是说聚合函数,常⽤的有 : sum(求和)、count(*)(记录数)、max(最⼤值)、min(最⼩值)。
3.with rollup 是可选语法,表明是否对分类聚合后的结果进⾏再汇总
4.having 关键字表⽰对分类后的结果再进⾏条件过滤。
5. Datetime查询(时间筛选)
今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1``
近7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(时间字段名)
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本⽉
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
上⼀⽉
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1
查询本季度数据
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());
查询上季度数据
英语工程select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
查询本年数据
select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());
查询上年数据
select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));
查询当前这周数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());查询上周的数据php万能表单系统
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;mysql语句多表查询
查询当前⽉份的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
小程序原码网站查询距离当前现在6个⽉的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论