#1、创建users数据库
create database users;
#2、查看数据库
show databases;
#3、使用数据库
use student;
#4、删除users数据库
drop database users;
#5、查看表
show tables;
#6、删除info表
drop table info;
#7、插入一条数据(info)
insert into info(name,password) values('za','123');
#8、更新张三的密码为888
update info set password = '888' where name = '张三';
#9、删除李四的数据
delete from info where name='李四';
#10、查询全部数据
select * from info;
#11、查询id和name
select id,name from xinxi;
#12、查询编号为1的人的id和name
select id,name from xinxi where id=1;
# []:包含 ^:去除(不是) %:任意长度的任意字符 _:任意一个字符
#13、查询姓李的人的id和name
select id,name from xinxi where name like '李%';
#14、查询姓张、姓李的id和name
select id,name from xinxi where name like '张%' or name like '李%';
#15、查询密码为空的id和name
select id,name from xinxi where password is null;
#16、查询密码不为空的id和name
select id,name from xinxi where password is not null;
#17、查询编号在1--4之间的id和name
select id,name from xinxi where id between 1 and 4;
select id,name from xinxi where id>=1 and id<=4;
#18、查询去掉重复的张三的name
select distinct name from xinxi where name='张三';
#19、按id升序查询id和name
select id,name from xinxi order by id;
select id,name from xinxi order by id asc;
#20、按id降序查询id和name
select id,name from xinxi order by id desc;
#按name降序,id降序查询id和name(汉字按拼音首字母)
#21、多列排序:当第一个排序值相同的时候再按第二个排序
select id,name from xinxi order by convert(name using gbk) desc ,id desc;
#22、查询前3条id和name(从0开始,数多少条)
select id,name from xinxi limit 0,3;
select id,name from xinxi limit 3;
#23、查询2--5条id和name
select id,name from xinxi limit 1,4;
#24、查询学生的id,name和grade(内连接:只查询有成绩的)
select x.id,x.name,s.grade from xinxi x inner join score s on x.id=s.xid;
#25、笛卡尔积(内连接:只查询有成绩的)
select x.id,x.name,s.grade from xinxi x,score s where x.id=s.xid;
#26、查询学生的id,name和grade(左外连接:能查出空值,必须先查主表)
select x.id,x.name,s.grade from xinxi x left join score s on x.id=s.xid;
#27、查询平均分
select avg(grade) from score;
#28、查询总分
select sum(grade) from score;
#29、统计总人数
select count(*) from xinxi;
select count(id) from xinxi;
select count(1) from xinxi;
#30、查询最高分和最低分
select max(grade),min(grade) from score;
#31、分组查询课程编号和平均分(聚合函数必须跟分组一起查询)
select cid,avg(grade) from score group by cid;
#32、多列分组(当第一个分组相同时会按第二列进行分组)
select cid,xid,avg(grade) from score group by cid,xid;
#33、查询平均分大于80分的人学号和平均分(having是在分组基础之上继续查询)
select xid,avg(grade) from score group by xid having avg(grade)>80;
#34、查询补考的学生学号和平均分(当查询出现重复值时用多列分组)
select xid,avg(grade) from score group by xid,cid having count(*)>1;
#35、查询密码比李江涛小的人的姓名和密码
select name,password from xinxi where password<(select password from xinxi where name='李江涛');
#36、查询分数小于60分的人的姓名(结果大于1)
select name from xinxi where id in(select xid from score where grade<60);
#37、查询分数不小于60分的人的姓名(结果大于1)
select name from xinxi where id not in(select xid from score where grade<60);
#38、查询是否有李江涛这个人,如果有,显示查询结果,没有不显示
select id,name from xinxi where exists (select name from xinxi where name='李江涛');
#39、如果平均分大于70,就查询班级前三名成绩
select grade from score where exists(select xid from score group by xid having avg(grade)>70)
order by grade desc limit 3;
#40、求最高分
select max(grade) from score;
#不用max求最高分
select grade from score order by grade desc limit 1;
Mysql基本语法
最新推荐文章于 2024-05-28 17:10:36 发布