mysql 高级查询

20180109
-- 高级查询

select * from my_student;

select * from my_int;
select * from my_student,my_int;

select * from (select * from my_student) as s;

alter table my_student add hight tinyint unsigned;
alter table my_student add weight int unsighed;
alter table my_student add place varchar(30);
desc my_student;

insert into my_student (id,name,gender,age) value ('java01009','kite','female',22);
insert into my_student (hight,weight,palace) value (172,60,'河南') where Name='kite';--报错
update my_student set hight=172,weight=60,place='河南' where name='kite';
insert into my_student (hight,place,weight) value (165,'北京',90) where Name='Lucy'; -- 报错
insert into my_student values ('Java010008','Jom','female',18,165,'上海',70);
insert into my_student values ('Java01003','jim','male',22,)

insert into my_student values('java01004','Lucy','female',18,165,'北京',90),
('java01001','Anthony','male',20,170,'湖南',92),
('java01003','Tom','male',22,175,'湖北',150),
('java01002','Lily','female',21,162,'上海',100);

select * from my_student where ID='java01001' || ID='java010008';
select * from my_student where id='java01001' or id='java01008';
select * from my_student where hight between 165 and 175;
select * from my_student where place like '湖%';


--分组查询
select * from my_student;
select * from my_student group by gender;

select gender,count(*),max(hight),min(hight),avg(age),sum(age) from my_student group by gender;
update my_student set age=null where id='java01002';
select gender,count(*) from my_student group by gender;
select gender,count(age) from my_student group by gender;

select gender,count(*) from my_student group by gender asc;
select gender,count(*) from my_student group by gender desc;

alter table my_student add c_id varchar(10);
update my_student set c_id='java01' limit 2;
update my_student set c_id='java02' limit 2,2;--更新无法这样操作
update my_student set c_id='java02' where name in ('Tom','Lily');

select c_id,gender,count(*) from my_student group by c_id,gender;
select c_id,gender,count(*),group_concat(name) from my_student group by c_id,gender;-- 与上面效果一样

insert into my_student (id,name,gender,age,hight,weight,place,c_id) value ('java02005','张三','男',22,173,145,'北京','java02');
insert into my_student (id,name,gender,age,hight,weight,place,c_id) value ('java03001','李四','男',19,176,135,'上海','java03');

--having
select c_id,count(*) from my_student group by c_id having count(*) >=2;
select c_id ,count(*) as total from my_student group by c_id having total >=2;

select * from my_student group by c_id;
select * from my_student order by c_id;
select * from my_student order by c_id,hight desc;

select * from my_student order by hight desc limit 3; -- 身高最高的前三名;
select * from my_student order by hight limit 3;
select * from my_student limit 2,3;
select * from my_student limit 2;

原文地址:https://www.cnblogs.com/51testing/p/8275244.html