2018-09-20數(shù)據(jù)庫學(xué)習(xí)

數(shù)據(jù)庫模糊查詢學(xué)習(xí)

1. 模糊查詢(like)值用于字符串

字符串包括:varchar、char


image.png

2.對于模糊查詢就需要用到通配符

通配符包括:%(百分號)—代表任意多個(gè)字符
_(英文的下滑線)—代表任意一個(gè)字符


圖文介紹

3.實(shí)例:

3.1 學(xué)生姓名以吳開頭
SELECT * FROM t_user_customer WHERE customer_name LIKE '吳%';
3.2 姓名是兩個(gè)字符的學(xué)生
SELECT * FROM t_user_customer WHERE customer_name LIKE '_';
3.3學(xué)生姓名包含 李
SELECT * FROM t_user_customer WHERE customer_name LIKE '%李%';
3.4 姓名最后一位 是民的學(xué)生
SELECT * FROM t_user_customer WHERE customer_name LIKE '%民';
3.5 姓名是 馬東什么
SELECT * FROM t_user_customer WHERE customer_name LIKE '馬冬
';
3.6 精確查詢 學(xué)生姓名為 馬冬梅的學(xué)生
SELECT * FROM t_user_customer WHERE customer__name = '馬冬梅';

3.7. 學(xué)生姓名不等于 張子棟 只顯示學(xué)生 編號 姓名
SELECT customer_name,customer_id FROM t_user_customer WHERE customer_name <> '張子棟 ';
3.8. 學(xué)生省份為重慶的 只顯示 學(xué)生編號 姓名 省份
SELECT customer_name,customer_id, province FROM t_user_customer WHERE province = '重慶';

4.IN (用于多個(gè)過濾條件且條件沒有并列關(guān)系)

image.png

5.實(shí)例

image.png

5.1 查詢學(xué)生年齡 是 23 30
SELECT * FROM t_user_customer WHERE age IN (23,30);
5.2 查詢學(xué)生省份 是 安徽 重慶
SELECT * FROM t_user_customer WHERE province IN ('安徽','重慶');

image.png

6.組合型的實(shí)例

6.1 查詢年齡為23省份是重慶的或者年齡是29的省份是安徽的所有同學(xué)信息
SELECT * FROM t_user_customer WHERE (age,province) IN ((23,'重慶'),(29,'安徽'));
SELECT * FROM t_user_customer WHERE (age,province) IN ((23,''));
6.2 查詢年齡23的重慶的之外所有學(xué)生信息;
SELECT * FROM t_user_customer WHERE (age ,province) NOT IN ((23,'重慶'));
6.3 查詢年齡不為23且省份不是重慶或者年齡不為29且省份不是安徽的所有學(xué)生信息;
SELECT * FROM t_user_customer WHERE (age ,province) NOT IN ((23,'重慶'),(29,'安徽'));

7orderby (排序)- 升序(asc)-降序(desc)

  • 30 查詢出年齡大于19歲的所有學(xué)生并以序號進(jìn)行降序排序;
    SELECT * FROM t_user_customer WHERE age >19 ORDER BY customer_id DESC;
    -- 查詢出年齡大于19歲的所有學(xué)生并以年齡進(jìn)行降序排序 如果有年齡相同的,以序號升序排序
    SELECT * FROM t_user_customer WHERE age>19 ORDER BY age DESC, customer_id ASC;
    32 查詢出性別為男的所有學(xué)生,并按照年齡降序排序,若有年齡相同的則以創(chuàng)建時(shí)間進(jìn)行升序排序scores
    SELECT * FROM t_user_customer WHERE sex ='0' ORDER BY age DESC ,create_time ASC;
    -- 33查詢出年齡大于19歲的所有學(xué)生并以序號進(jìn)行降序排序取前10條記錄;
    SELECT * FROM t_user_customer WHERE age>19 ORDER BY customer_id LIMIT 0,10;
    -- 34查詢出年齡最大的男同學(xué)
    SELECT * FROM t_user_customer WHERE sex ='0'ORDER BY age DESC LIMIT 1 ;
    SELECT * FROM t_user_customer WHERE age =(SELECT age FROM t_user_customer WHERE sex ='0' ORDER BY age DESC LIMIT 1);

8.limit :

  • 只能用于mysql 使用
  • 查詢結(jié)果以0位起始序號
  • limit -n,m-n代表起始位置-m代表展現(xiàn)m條數(shù)據(jù)
    -- 33查詢出年齡大于19歲的所有學(xué)生并以序號進(jìn)行降序排序取前10條記錄;
    SELECT * FROM t_user_customer WHERE age>19 ORDER BY customer_id LIMIT 0,10;

7.distinct去重

image.png

8.group by 分組

聚合函數(shù): 統(tǒng)計(jì)(count)、求和(sum)、平均值(avg)、最大(max)最小(min)
8.1查詢出年齡大于19歲的所有學(xué)生并以序號進(jìn)行升序排序;
SELECT * FROM t_user_customer WHERE age >19 ORDER BY customer_id ASC;
8.2 查詢出年齡大于19歲的所有學(xué)生并以序號進(jìn)行降序排序;
SELECT * FROM t_user_customer WHERE age >19 ORDER BY customer_id DESC;

9.having 對聚合函數(shù)過濾只能用having

image.png

9.1 統(tǒng)計(jì)出每門課的平均成績
SELECT cno ,AVG (degree)FROM scores GROUP BY cno ;
9.2統(tǒng)計(jì)出每門課的最大成績
SELECT cno ,MAX(degree) FROM scores GROUP BY cno ;
-- 40統(tǒng)計(jì)出每門課程的總?cè)藬?shù)
SELECT cno ,COUNT(sno)FROM scores GROUP BY cno;

-- 41統(tǒng)計(jì)出選修人數(shù)少于2人的課程
SELECT cno,COUNT(cno) FROM scores GROUP BY cno HAVING COUNT(cno) < 2;

-- 42.統(tǒng)計(jì)出成績不及格的學(xué)生
SELECT sno ,MIN(degree) FROM scoresGROUP BY sno HAVING MIN(degree) < 60;

-- 43 統(tǒng)計(jì)出全部成績都不及格的學(xué)生
SELECT sno ,MAX(degree) FROM scoresGROUP BY sno HAVING MAX(degree) < 60;

9.20數(shù)據(jù)庫基礎(chǔ).jpg

  • 查詢出年齡大于19歲的所有學(xué)生并以序號進(jìn)行降序排序取前10條記錄;
    SELECT * FROM t_user_customer WHERE age > 19 ORDER BY customer_id LIMIT 0,10;

-- 查詢出年齡最大的男同學(xué)
SELECT * FROM t_user_customer WHERE s

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容