美文网首页
2018-09-20数据库基础

2018-09-20数据库基础

作者: 心若无情 | 来源:发表于2018-09-29 06:36 被阅读9次

    数据库

    一、模糊查询

    1. 只针对字符串类型
    • varchar
    • char


      image.png
    1. 模糊查询关键字(like)
    2. 通配符
    • % 代表任意多个字符(0,n)
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%静%';
    
    • _ 代表一个任意字符(1)
    -- 16 姓名第二位为 春的学生姓名
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '_春%';
    

    二、非 not

    SELECT * FROM `t_user_customer` WHERE customer_name NOT LIKE '%冬%';
    

    三、in

    1. 同一个字段有多个筛选条件,每个条件都需要用英文的逗号分隔
    2. 对多个字段的多个筛选条件,每个条件都需要用英文的逗号分隔
    3. 不能对null进行筛选
    -- 21 查询学生id 是77 88 99 111 
    SELECT * FROM `t_user_customer` WHERE customer_id IN (77,88,99,111);
    -- 22 查询学生年龄 是  23  30 
    SELECT * FROM `t_user_customer` WHERE age IN (23,30);
    -- 23 查询学生省份 是  安徽 重庆
    SELECT * FROM `t_user_customer` WHERE province IN ('安徽','重庆');
    

    四、排序

    1. 关键字 order by
    • 升序 asc
    • 降序 desc
    -- 27 查询出所有学生的信息并对年龄字段进行升序排序
    SELECT * FROM `t_user_customer` ORDER BY age ASC;
    -- 28 查询出所有学生的信息并对年龄字段进行降序排序
    SELECT * FROM `t_user_customer` ORDER BY age DESC;
    

    五、limit

    1. 只能mysql使用
    2. 查询结果是以0为起始序号
    3. limit n,m(取需要展现的数据)
    • n表示起始位置
    • m表示展现m条数据
    -- 33查询出年龄大于19岁的所有学生并以序号进行降序排序取前10条记录;
    SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY customer_id DESC LIMIT 0,10;
    -- 34 查询出所有年龄最大的男同学
    SELECT * FROM `t_user_customer` WHERE age = (SELECT age FROM `t_user_customer` WHERE sex = '0' ORDER BY age DESC LIMIT 1);
    

    六、去重

    • 关键字 distinct
    -- 35 查询出所有学生的年龄并去重
    SELECT DISTINCT age FROM`t_user_customer`;
    

    七、分组

    1. 关键字 group by
    2. 只能展示分组字段和聚合函数
    3. 聚合函数
    • 统计 count
    -- 36统计出男生和女生人数
    SELECT sex,COUNT(sex) FROM `t_user_customer` GROUP BY SEX;
    
    • 求和 sum
    -- 36 统计出每门课的总成绩
    SELECT cno,SUM(degree) FROM `scores` GROUP BY cno;
    
    • 平均 avg
    -- 37 统计出每门课的平均成绩
    SELECT cno,AVG(degree) FROM `scores` GROUP BY cno;
    
    • 最大 max
    -- 38 统计出每门课的最大成绩
    SELECT cno,MAX(degree) FROM `scores` GROUP BY cno;
    
    • 最小 min
    -- 39 统计出每门课的最小成绩
    SELECT cno,MIN(degree) FROM `scores` GROUP BY cno;
    
    1. having
    • 对聚合函数过滤只能用having
    -- 41 统计出选修人数少于两人的课程
    SELECT cno,COUNT(cno) FROM `scores` GROUP BY cno HAVING COUNT(cno) <2;
    
    -- 1.  精确查询 学生姓名为 马冬梅的学生
    SELECT customer_name FROM `t_user_customer` WHERE customer_name = 马冬梅;
    -- 2. 查询学生编号 大于60的
    SELECT * FROM `t_user_customer` WHERE customer_id > 60;
    -- 3. 查询学生 年龄大于20的
    SELECT * FROM `t_user_customer` WHERE age > 20;
    -- 4. 查询学生姓名为 钱璟的
    SELECT * FROM `t_user_customer` WHERE customer_name = 钱璟;
    -- 5. 查询学生性别为女的
    SELECT * FROM `t_user_customer` WHERE sex = '1';
    -- 6. 查询编号小于 110的学生
    SELECT * FROM `t_user_customer` WHERE customer_id < '110';
    -- 7. 年龄不等于23 的学生信息
    SELECT * FROM `t_user_customer` WHERE  age != '23';
    -- 8. 学生姓名不等于 张子栋  只显示学生 编号 姓名
    SELECT customer_id,customer_name FROM `t_user_customer` WHERE customer_name <> '张子栋';
    -- 9. 学生省份为重庆的  只显示 学生编号 姓名 省份
    SELECT customer_id,customer_name,province FROM `t_user_customer` WHERE province = '重庆';
    -- 查询姓名中不包含冬的学生信息
    SELECT * FROM `t_user_customer` WHERE customer_name NOT LIKE '%冬%'
    -- 10 学生姓名 包含 马
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%马%';
    -- 11 学生姓名以吴开头
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '吴%';
    -- 12 学生姓名包含  李
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%李%';
    -- 13  姓名包含静的学生
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%静%';
    -- 14  姓名是两个字符的学生
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '__';
    -- 15  姓名最后一位 是民的学生
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '%民';
    -- 16 姓名第二位为 春的学生姓名
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '_春%';
    -- 17 姓名只有三个字符的学生
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '___';
    -- 18 姓名是 马什么梅的
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '马_梅';
    -- 19 姓名是 马东什么
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '马冬_';
    -- 20 姓名是 什么冬梅
    SELECT * FROM `t_user_customer` WHERE customer_name LIKE '_冬梅';
    
    -- 查询姓名中不包含冬的学生信息
    SELECT * FROM `t_user_customer` WHERE customer_name NOT LIKE '%冬%';
    -- 21 查询学生id 是77 88 99 111 
    SELECT * FROM `t_user_customer` WHERE customer_id IN (77,88,99,111);
    -- 22 查询学生年龄 是  23  30 
    SELECT * FROM `t_user_customer` WHERE age IN (23,30);
    -- 23 查询学生省份 是  安徽 重庆
    SELECT * FROM `t_user_customer` WHERE province IN ('安徽','重庆');
    
    -- 查询年龄是23省份是重庆或者年龄是29省份是安徽的所有学生信息
    SELECT * FROM `t_user_customer` WHERE ( age = 23 AND province = '重庆')  OR ( age = 29 AND province = '安徽');
    SELECT * FROM `t_user_customer` WHERE (age,province) IN ((23,'重庆'),(29,'安徽'));
    
    -- 25 查询年龄不为23且省份不是重庆的所有学生信息;
    SELECT * FROM `t_user_customer` WHERE age <> 23 AND province != '重庆';
    -- 26 查询年龄不为23且省份不是重庆或者年龄不为29且省份不是安徽的所有学生信息;
    SELECT * FROM `t_user_customer` WHERE (age,province) NOT IN ((23,'重庆'),(29,'安徽'));
    
    -- 28 查询23岁重庆人之外的所有学生
    SELECT * FROM `t_user_customer` WHERE (age,province) NOT IN ((23,'重庆'));
    -- 27 查询出所有学生的信息并对年龄字段进行升序排序
    SELECT * FROM `t_user_customer` ORDER BY age ASC;
    -- 28 查询出所有学生的信息并对年龄字段进行降序排序
    SELECT * FROM `t_user_customer` ORDER BY age DESC;
    -- 29 查询出年龄大于19岁的所有学生并以序号进行升序排序;
    SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY age ASC;
    -- 30 查询出年龄大于19岁的所有学生并以序号进行降序排序;
    SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY age DESC;
    -- 31 查询出年龄大于19岁的所有学生并以年龄进行降序排序 如果有年龄相同的,以序号升序排序
    SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY age DESC,customer_id ASC;
    -- 32 查询出性别为男的所有学生,并按照年龄降序排序,若有年龄相同的则以创建时间进行升序排序
    SELECT * FROM `t_user_customer` WHERE sex = '0' ORDER BY age DESC, create_time ASC;
    -- 33查询出年龄大于19岁的所有学生并以序号进行降序排序取前10条记录;
    SELECT * FROM `t_user_customer` WHERE age >19 ORDER BY customer_id DESC LIMIT 0,10;
    -- 34 查询出所有年龄最大的男同学
    SELECT * FROM `t_user_customer` WHERE age = (SELECT age FROM `t_user_customer` WHERE sex = '0' ORDER BY age DESC LIMIT 1);
    -- 35 查询出所有学生的年龄并去重
    SELECT DISTINCT age FROM`t_user_customer`;
    -- 36统计出男生和女生人数
    SELECT sex,COUNT(sex) FROM `t_user_customer` GROUP BY SEX;
    
    -- 36 统计出每门课的总成绩
    SELECT cno,SUM(degree) FROM `scores` GROUP BY cno;
    -- 37 统计出每门课的平均成绩
    SELECT cno,AVG(degree) FROM `scores` GROUP BY cno;
    -- 38 统计出每门课的最大成绩
    SELECT cno,MAX(degree) FROM `scores` GROUP BY cno;
    -- 39 统计出每门课的最小成绩
    SELECT cno,MIN(degree) FROM `scores` GROUP BY cno;
    -- 40 统计出每门课程的总人数
    SELECT cno,COUNT(sno) FROM `scores` GROUP BY cno;
    -- 41 统计出选修人数少于两人的课程
    SELECT cno,COUNT(cno) FROM `scores` GROUP BY cno HAVING COUNT(cno) <2;
    -- 42 统计出成绩不及格的学生
    SELECT sno,MIN(degree) FROM `scores` GROUP BY sno HAVING MIN(degree) <60;
    -- 43 统计出全部成绩都不及格的学生c 
    SELECT sno,MAX(degree) FROM `scores` GROUP BY sno HAVING MAX(degree) <60;
    
    数据库基础.jpg

    相关文章

      网友评论

          本文标题:2018-09-20数据库基础

          本文链接:https://www.haomeiwen.com/subject/hwvnnftx.html