數(shù)據(jù)庫(kù)select練習(xí)題
-- 1. 精確查詢 學(xué)生姓名為 馬冬梅的學(xué)生
SELECT customer_name FROM t_user_customer
WHERE customer_name = '馬冬梅' ;
-- 2. 查詢學(xué)生編號(hào) 大于60的
SELECT * FROM t_user_customer
WHERE customer_id > 60;
-- 3. 查詢學(xué)生 年齡大于20的
SELECT * FROM t_user_customer
WHERE age > 20;
-- 4. 查詢學(xué)生姓名為 錢璟的
SELECT * FROM t_user_customer
WHERE customer_name = '錢璟';
-- 5. 查詢學(xué)生性別為女的
SELECT * FROM t_user_customer
WHERE sex = '1' ;
-- 6. 查詢編號(hào)小于 110的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_id < 110 ;
-- 7. 年齡不等于23 的學(xué)生信息
SELECT * FROM t_user_customer
WHERE age <> 23 ;
-- 8. 學(xué)生姓名不等于 張子棟 只顯示學(xué)生 編號(hào) 姓名
SELECT customer_id,customer_name FROM t_user_customer
WHERE customer_name != '張子棟' ;
-- 9. 學(xué)生省份為重慶的 只顯示 學(xué)生編號(hào) 姓名 省份
SELECT customer_id,customer_name,province FROMt_user_customer
WHERE province = '重慶';
模糊查詢 where 字段名 like '%nm%'
10 學(xué)生姓名 包含 馬
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%馬%';
11 學(xué)生姓名以吳開頭
SELECT * FROM t_user_customer
WHERE customer_name LIKE '吳%';
12 學(xué)生姓名包含 李
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%李%';
13 姓名包含靜的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%靜%';
14 姓名是兩個(gè)字符的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_name LIKE '';
15 姓名最后一位 是民的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%民';
16 姓名第二位為 春的學(xué)生姓名
SELECT * FROM t_user_customer
WHERE customer_name LIKE '春%';
17 姓名只有三個(gè)字符的學(xué)生
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 '_冬梅';
like 模糊查詢
select * from 表名 where like '%nm%'
- 通配符 % _
- like 只對(duì) char varchar 字符型 進(jìn)行模糊查詢
練習(xí)題
10 學(xué)生姓名 包含 馬
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%馬%';
11 學(xué)生姓名以吳開頭
SELECT * FROM t_user_customer
WHERE customer_name LIKE '吳%';
12 學(xué)生姓名包含 李
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%李%';
13 姓名包含靜的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%靜%';
14 姓名是兩個(gè)字符的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_name LIKE '';
15 姓名最后一位 是民的學(xué)生
SELECT * FROM t_user_customer
WHERE customer_name LIKE '%民';
16 姓名第二位為 春的學(xué)生姓名
SELECT * FROM t_user_customer
WHERE customer_name LIKE '春%';
17 姓名只有三個(gè)字符的學(xué)生
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 '_冬梅';
-
like 后面不跟通配符 相遇于 等號(hào)的作用 =
image.png -
not like 表示不包含
image.png
in 的使用
上圖表示能查出 年齡=29 年齡=20 年齡=23 的數(shù)據(jù)
-
多個(gè)字段名 in 的用法
image.png -
not in
image.png
not ni 和 ni 練習(xí)題
21 查詢學(xué)生id 是77 88 99 111
SELECT * FROM t_user_customer
WHERE customer_id IN (77,88,99,11);
22 查詢學(xué)生年齡 是 23 30
SELECT * FROM t_user_customer
WHERE age IN (23,30);
23 查詢學(xué)生省份 是 安徽 重慶
SELECT * FROM t_user_customer
WHERE province IN ('安徽','重慶');
SELECT * FROM t_user_customer
WHERE province = '安徽' OR province = '安徽';
-- 24 查詢年齡為23省份是重慶或者年齡是29省份是安徽的所有學(xué)生信息
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且身份不是重慶的所有學(xué)生信息;
SELECT * FROM t_user_customer
WHERE age <> 23 AND province != '重慶' ;
SELECT * FROM t_user_customer
WHERE (age,province) NOT IN ((23,'重慶'));
-- 25 查詢年齡不為23且省份不是重慶或者年齡不為29且省份不是安徽的所有學(xué)生信息;
SELECT * FROM t_user_customer
WHERE (age <> 23 AND province <> '重慶') OR (age <> 29 AND province <> '安徽')
;
SELECT * FROM t_user_customer
WHERE (age,province) NOT IN ((23,'重慶'),(29,'安徽'));
-- 26 查詢年齡除了為23的重慶人之外所有學(xué)生的信息
SELECT * FROM t_user_customer
WHERE (age,province) NOT IN ((23,'重慶'));
order by 字段名 asc 升序
order by 字段名 desc 降序
語(yǔ)法: select * from 表名 order by 字段名 ASC/DESC
*多字段升序 降序
select * from 表名 order by 字段名 ASC/DESC
多個(gè)字段排序用,隔開.先排前面然后排后面
- 選取多少行的記錄 limit
格式
select * from 表名 limit n,m;
注意:
limit只適用于MySQL中
oracle數(shù)據(jù)庫(kù)中用 rownum
sqlSever數(shù)據(jù)中用top
解釋
n表示起始位置
m表示展現(xiàn)m條數(shù)據(jù)
數(shù)據(jù)庫(kù)中查詢結(jié)果是以0為起始序號(hào)
order by 練習(xí)題
-- 29 查詢出年齡大于19歲的所有學(xué)生并以序號(hào)進(jìn)行升序排序渴庆;
SELECT * FROM t_user_customer
WHERE AGE > 19 ORDER BY customer_id ASC;
-- 30 查詢出年齡大于19歲的所有學(xué)生并以序號(hào)進(jìn)行降序排序;
SELECT * FROM t_user_customer
WHERE AGE > 19 ORDER BY customer_id DESC;
-- 31查詢出年齡大于19歲的所有學(xué)生并以年齡進(jìn)行降序排序 如果有年齡相同的乖菱,以序號(hào)升序排序
SELECT * FROM t_user_customer
WHERE AGE >19 ORDER BY AGE, customer_id ASC;
-- 32 查詢出性別為男的所有學(xué)生京髓,并按照年齡降序排序丑念,若有年齡相同的則以創(chuàng)建時(shí)間進(jìn)行升序排序
SELECT * FROM t_user_customer
WHERE sex = '0' ORDER BY age DESC,create_time ASC;
-- 33查詢出年齡大于19歲的所有學(xué)生并以序號(hào)進(jìn)行降序排序取前10條記錄;
SELECT * FROM t_user_customer
WHERE AGE > 19 ORDER BY customer_id DESC LIMIT 0,10;
-- 34 查詢出年齡最大的男同學(xué)
SELECT * FROM t_user_customer
WHERE sex = '0' ORDER BY age DESC LIMIT 0,1;
SELECT * FROM t_user_customer
WHERE sex = '0' AND age = (SELECT age FROM t_user_customer
WHERE sex = '0' ORDER BY age DESC LIMIT 0,1);
去重
語(yǔ)法: select distinct 字段名 from 表名
distinct 去重
分組 group bye
-
select 分組名,聚合函數(shù)(字段名) from 表名 group by 分組名 having 聚合函數(shù)(字段名) 條件
image.png
image.png
聚合函數(shù)練習(xí)題
-- 35統(tǒng)計(jì)出男生和女生的總?cè)藬?shù)
SELECT sex,COUNT(*) FROM t_user_customer
GROUP BY sex;
-- 36 統(tǒng)計(jì)出每門課的總成績(jī)
SELECT cno,SUM(degree) FROM scores
GROUP BY cno;
-- 37 統(tǒng)計(jì)出每門課的平均成績(jī)
SELECT cno,AVG(degree) FROM scores
GROUP BY cno;
-- 38 統(tǒng)計(jì)出每門課的最大成績(jī)
SELECT cno,MAX(degree) FROM scores
GROUP BY cno;
-- 39 統(tǒng)計(jì)出每門課的最小成績(jī)
SELECT cno,MIN(degree) FROM scores
GROUP BY cno;
-- 40統(tǒng)計(jì)出每門課程的總?cè)藬?shù)
SELECT cno,COUNT() FROM scores
GROUP BY cno;
-- 41統(tǒng)計(jì)出選修人數(shù)少于2人的課程
SELECT cno,COUNT() FROM scores
GROUP BY cno HAVING COUNT(*) < 2 ;
-- 42 統(tǒng)計(jì)出成績(jī)不及格的學(xué)生
SELECT sno,MIN(degree) FROM scores
GROUP BY sno HAVING MIN(degree) <60;
-- 43 統(tǒng)計(jì)出全部成績(jī)都不及格的學(xué)生
SELECT sno,MAX(degree) FROM scores
GROUP BY sno HAVING MAX(degree) <60;
## slq客服端連接 (用如下連接信息進(jìn)數(shù)據(jù)庫(kù)操作上面的練習(xí)題)