2018-10-25数据库基础

模糊查询 like

    • select * from 表名 where like '%n%';
  • select * from 表名 where like '_';
  • like 只对 char varchar 字符型 进行模糊查询
  • 通配符
  • % 代表任意多个字符(0,n)
  • 代表任意一个字符 (1)

10 学生姓名 包含 马
10 SELECT * FROM gy_user WHERE realname LIKE '%马%';
11 学生姓名以吴开头
11 SELECT * FROM gy_user WHERE realname LIKE '吴%';
12 学生姓名包含 李
12 SELECT * FROM gy_user WHERE realname LIKE '%李%';
13 姓名包含静的学生
13 SELECT * FROM gy_user WHERE realname LIKE '%静%';
14 姓名是两个字符的学生
14 SELECT * FROM gy_user WHERE realname LIKE '';
15 姓名最后一位 是民的学生
15 SELECT * FROM gy_user WHERE realname LIKE '%民';
16 姓名第二位为 春的学生姓名
16 SELECT * FROM gy_user WHERE realname LIKE '
春%';
17 姓名只有三个字符的学生
17 SELECT * FROM gy_user WHERE realname LIKE '
__';
18 姓名是 马什么梅的
18 SELECT * FROM gy_user WHERE realname LIKE '马%梅';
19 姓名是 马东什么
19 SELECT * FROM gy_user WHERE realname LIKE '马东%';
20 姓名是 什么冬梅
20 SELECT * FROM gy_user WHERE realname LIKE '%冬梅';
24 姓名 不包含 什么康健
24 SELECT * FROM gy_user WHERE sname NOT LIKE ('%康健');
26 导师不包含 李什么
26 SELECT * FROM gy_user WHERE teacher NOT LIKE ('李%');
28 查询 公司名称 包含上海 或者地址在上海的
28 SELECT * FROM gy_user WHERE NAME LIKE'%上海%' OR address LIKE '%上海%';
29 查询 公司名称 包含阿里 地址在 上海金融中心的
29 SELECT * FROM gy_user WHERE NAME LIKE '%阿里%' AND address LIKE '%上海金融中心%';

14245353-c39d1ef625f7711e.png
  • not like 表示不包含


    14245353-e29f7b4431008d8f.png

null的使用

SELECT * FROM gy_user WHERE sname IS NULL ; -- 为空
SELECT * FROM gy_user WHERE sname IS NOT NULL; -- 不为空

in的使用

同一个字段有多个筛选条件,每个条件都需要用英文的逗号分隔开
SELECT * FROM 表名 WHERE 条件 IN (值1,值2,值3);


14245353-1c45a9dee7a6861c.png

14245353-ac412421a722111a.png
  • 对多个字段的多个筛选条件,每个条件都需要用英文的逗号进行分隔


    14245353-edd10d00e2ed60c9.png
  • 不能对null进行筛选
    21 查询学生id 是77 88 99 111
    21 SELECT * FROM gy_user WHERE id = 77 OR id=88 OR id=99 OR id =111;
    SELECT * FROM gy_user WHERE id IN (77,88,99,111);
    22 查询学生年龄 是 23 30
    22 SELECT * FROM gy_user WHERE age = 23 OR age =30;
    SELECT * FROM gy_user WHERE age IN (23,30);
    23 查询学生省份 是 安徽 重庆
    23 SELECT * FROM gy_user WHERE address = '安徽' AND address ='重庆';
    SELECT * FROM gy_user WHERE address IN ('安徽','重庆');
    25 编号 不在 05 10 15 20
    25 SELECT * FROM gy_user WHERE sno NOT IN (05,10,15,20);
    27 导师不在 李素云 马超 刘程旭
    27 SELECT * FROM gy_user WHERE teacher NOT IN ('李素云','马超','刘程旭');
    30 查询 公司地址 包含 重庆或者包含 成都 或者上海的
    30 SELECT * FROM gy_user WHERE address IN ('重庆','成都','上海');

排序 order by

  • order by 后面跟字段名 +升序/降序
    select * from 表名 order by (sno /age.....)asc/desc

  • 多个排序用 , 来进行分隔,优先运行前面的排序条件

    14245353-ef6ea3e3ffb3f0c7.png

    SELECT * FROM gy_user ORDER BY age ASC; -- 排序升序
    SELECT * FROM gy_user ORDER BY age DESC ; -- 排序降序
    SELECT * FROM gy_user WHERE age>18 ORDER BY age ASC;
    -- 以编号查询降序排序
    SELECT * FROM gy_user ORDER BY sno ASC;
    SELECT * FROM gy_user ORDER BY sno DESC;
    -- 带判断条件升序排序
    SELECT * FROM gy_user WHERE realname LIKE '%吴%' ORDER BY age ASC ;
    -- 30.查询真真实姓名的姓氏为张王李杨的学生,按照年龄倒序排序,只显示真实姓名,年龄
    SELECT realname,age FROM gy_user WHERE realname LIKE '张%'OR '王%'OR realname LIKE'李%'OR realname LIKE'杨%' ORDER BY age DESC;
    -- 35.查询用户表 姓名为单字的,对真实姓名去重,根据年龄倒序排序
    SELECT DISTINCT realname FROM gy_user WHERE realname LIKE '_' ORDER BY age DESC;
    -- 38.查询用户表年龄大于20,班级类型为1,以id倒叙排序,以年龄正序排序
    SELECT * FROM gy_user WHERE age>20 AND class_type = '1' ORDER BY sno DESC ,age ASC;

limit的使用

只能在mysql里面使用,oracle数据库中用 rownum,sqlSever数据中用top
限制限制条目数量
查询结果是以 0 为起始序号
格式 select * from 表名 limit n,m; (n表示起始位置,m表示展现m条数据)

14245353-092fdcb05b7b703b.png

-- 限制条目数
SELECT sno FROM gy_user WHERE sno>50 LIMIT 10,100;

去重 distinct

  • 语法: select distinct 字段名 from 表名
    -- 去重
    SELECT DISTINCT realname FROM gy_user;
    -- 31. 查询用户名包含guoya的用户,并且根据真实姓名去重
    SELECT DISTINCT realname FROM gy_user WHERE sname LIKE '%guoya%';
    -- 35.查询用户表 姓名为单字的,对真实姓名去重,根据年龄倒序排序
    SELECT DISTINCT realname FROM gy_user WHERE realname LIKE '_' ORDER BY age DESC;
    -- 40.查询用户编号100-500区间,微信号不为空,以年龄倒叙,用户名去重显示。
    SELECT DISTINCT sname FROM gy_user WHERE (sno BETWEEN 100 AND 500) AND weichat IS NOT NULL ORDER BY age DESC;

分组 group by

  • select 分组名,聚合函数(字段名) from 表名 group by 分组名 having 聚合函数(字段名) 条件
  • 对聚合函数过滤只能用having
  • 只能对展示分组字段和聚合函数
  • 聚合函数 count,sum,avg,max,min。
    14245353-a2cc76cd76b93cef.png

    14245353-b77b5715914500f5.png

    -- 统计条目数 count ()
    SELECT COUNT(sno) FROM gy_user;
    -- 统计最大 max ()
    SELECT MAX(sno) FROM gy_user;
    -- 统计最小 min ()
    SELECT MIN(sno) FROM gy_user;
    -- 统计平均值 avg ()
    SELECT AVG(sno) FROM gy_user;
    -- 求和 sum ()
    SELECT SUM(sno) FROM gy_user;

-- 求每一个班级的总年龄
SELECT SUM(age),class_type FROM gy_user GROUP BY class_type;
-- 求每一个班级的平均年龄
SELECT AVG(age),class_type FROM gy_user GROUP BY class_type;
-- 求每一个学历的最大年龄
SELECT MAX(age),education FROM gy_user GROUP BY education;
-- 求每一个学历的平均年龄
SELECT AVG(age),education FROM gy_user GROUP BY education;
-- 查询班级最大年龄大于32的班级
SELECT class_type,MAX(age) FROMgy_user GROUP BY class_type HAVING MAX(age)>32;
-- 查询各班级中平均年龄大于25的班级
SELECT class_type,AVG(age)FROM gy_user GROUP BY class_type HAVING AVG(age)>20;
-- 查询不同学历的各自人数
SELECT education ,COUNT(sno) FROM gy_user GROUP BY education;
-- 查询不同学历 最小年龄 小于30的学历
SELECT education ,MIN(age) FROM gy_user GROUP BY education HAVING MIN(age)<30;
-- 查询班级中平均年龄大于20的班级
SELECT class_type,AVG(age) FROM gy_user GROUP BY class_type HAVING AVG(age)>20;
-- 查询各班级中最小年龄大于2的班级
SELECT class_type,MIN(age) FROM gy_user GROUP BY class_type HAVING MIN(age)>2;
-- 查询各班级中平均年龄小于23的班级
SELECT class_type,AVG(age) FROM gy_user GROUP BY class_type HAVING AVG(age)<23;
-- 查询各班级中 年龄总和小于500的班级
SELECT class_type,SUM(age) FROM gy_user GROUP BY class_type HAVING SUM(age)<500;

14245353-a79684f8fca4719a.png

14245353-7ed08adbda42a9b0.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容

  • 今天,又发现自己拥有很有意思的一件事,是,很不喜欢很不专业的自己。 不专业针对的不是自己的专业——美术,或室内设计...
    狩望轮回阅读 250评论 0 0
  • linux系统学习的心得 之前用电脑都是可视化出来的图标,除了打字和一些快捷键,所有操作都是鼠标点点点点点。。。。...
    寂静之巅阅读 407评论 0 1
  • 1月13日精进,今日体验:干活的时候,试用精心保,慢慢融入平常的干活习惯,也就不那么难了!
    京心达田佳阅读 164评论 0 0
  • 工作 1:本月销售目标-- 6万 本月完成--51635 达成百分率--85% 2:产品陈列及卫生状...
    曾经_d6b8阅读 152评论 0 0