SQL查询语句详解SQL查询语句详解(⼀)
⼀、基本语法
Select select_list
From table_name
Where condition_expression
Group by group_columns
having condition_expression
Order by sort_columns
⼆、查询实例
查询所有字段
查询指定字段
⽤DISTINCT去除结果中的重复⾏
查询指定数据
带有in关键字的查询
带between and的范围查询
带like的字符匹配查询
表1:学⽣
结构
数据
表2:商品表1
结构:
数据:
表3:商品表2
结构:
数据
表4:教师
结构:
数据
数据分析需求
1)查询所有学⽣的详细信息
select * from 学⽣;
2)查询学⽣的学⽣号,姓名与专业
select 学⽣号,姓名,专业 from 学⽣;
3)从商品表1中查询出每⼀种商品的价值
select 商品代号,单价,数量,单价*数量 as 总价 from 商品表1;
4)从商品表1中查询每种商品的分类名 去除重复项
select distinct 分类名 from 商品表1;
5)从商品表1中查询出分类名为"电视机"的所有商品
select * from 商品表1 where 分类名 ='电视机';
6)从商品表1中查询出单价低于2000元的每⼀种商品代号,分类名和单价
select 商品代号,分类名,单价 from `商品表1` where 单价<2000;
7)从商品表2中查询出产地为北京、⼭西、⽆锡的所有商品
select * from 商品表2 where 产地='北京' or 产地='⼭西' or 产地='⽆锡';
select * from 商品表2 where 产地 in('北京','⼭西','⽆锡');
8)从商品表1中查询出商品代号以字符串"dsj"开头的所有商品 (考察模糊查询like以及通配符)select * from 商品表1 where 商品代号 like 'DSJ%';
9)从商品表1中查询单价在1000到2000之间的所有商品
select * from 商品表1 where 单价 between 1000 and 2000;
10)查询所有姓张的学⽣的详细信息
select * from 学⽣ where 姓名 like '张%';
11)从商品表1中查询出单价⼤于1500,同时数量⼤于等于10的商品
select * from 商品表1 where 单价>1500 and 数量>=10;
12)从教师表中查询为空的教师信息
select * from 教师 where is null;
13)从选课表中查询按课程号的升序,同⼀课程按成绩降序排列
select*from 选课 order by 课程号 asc, 课程号 desc;
14)从学⽣表中查询各个专业的⼈数
select 专业,count(*) as ⼈数 from 学⽣ group by 专业
15)从学⽣表中查询出专业的学⽣数多于1⼈的专业名及⼈数
select 专业,count(*) as ⼈数 from 学⽣ group by 专业 having count(*)>1
select 专业,count(*) as ⼈数 from 学⽣ group by 专业 having ⼈数>1
16)从选课表中查询成绩最⾼前三位
select * from 选课 order by 成绩 desc limit 3
17)查询各个专业男⼥⼈数各是多少
select 专业,性别,count(*) as ⼈数 from 学⽣ group by 专业,性别
18)从商品表1中查询出所有商品的最⼤数量、最⼩数量、平均数量及数量总和
select sum(数量) from 商品表1;
select max(数量) from 商品表1;
select min(数量) from 商品表1;
select avg(数量) from 商品表1;
19)从商品表1中查询出分类名为“电视机”的商品的种数、最⾼价、最低价及平均价
Select sum(数量) from 商品表1 where 分类名='电视机';
Select avg(数量) from 商品表1 where 分类名='电视机';
Select min(数量) from 商品表1 where 分类名='电视机';
Select max(数量) from 商品表1 where 分类名='电视机';
20)查询出产地为南京或⽆锡的所有商品的商品代号、分类名、产地和品牌
20)查询出产地为南京或⽆锡的所有商品的商品代号、分类名、产地和品牌
select * from 商品表1 inner join 商品表2 where 产地 in('南京','⽆锡');
或
select * from 商品表1 inner join 商品表2 where 产地='南京' or 产地='⽆锡';
员⼯表中含有佳字的
select * from 员⼯ where 姓名 like '%佳%';
员⼯表中含有佳字的两个⼦长度的员⼯信息
select * from 员⼯ where 姓名 like '_佳' or 姓名 like '佳_';
查询本公司有多少个部门distinct查询
select distinct 部门 from 员⼯;
请列出家住北京市的⽣产制造部的家庭名单住址;
select 姓名,家庭住址 from 员⼯ where 部门='⽣产制造部' and 家庭住址 like '%北京市%';
请查询出⽣成制造部⼥性未婚员⼯的基本信息
select * from 员⼯ where 部门='⽣产制造部' and 性别=-1 and 婚姻状况=-1;
显⽰⽣产制造部员⼯姓名年龄 部门和⽬前薪资
select 姓名,year(now())-year(出⽣⽇期) as 年龄,部门,⽬前薪资 from 员⼯ where 部门='⽣产制造部';
查询出⽣产制造部中员⼯年龄⼤于40岁的员⼯
select 姓名,year(now())-year(出⽣⽇期) as 年龄,部门,⽬前薪资 from 员⼯ where 部门='⽣产制造部' and year(now())-year(出⽣⽇期)>40;
查询⼊职⽇期超过三⼗年的⽼家伙
select 姓名,year(now())-year(雇佣⽇期) as ⼯龄,部门,⽬前薪资 from 员⼯ where
year(now())-year(雇佣⽇期)>=30;
显⽰出订货明细表中每个订单的订单号码产品编号和时间销售额
显⽰出订货明细表中每个订单的订单号码 产品编号和时间销售额
select 订单号码,产品编号,(单价*数量*(1-折扣)) as 实际销售额 from 订货明细;
查询已婚员⼯信息 显⽰ 员⼯编号姓名性别显⽰出男或⼥ 以及员⼯婚姻状况
SELECT
员⼯编号,姓名,
CASE
性别
WHEN - 1 THEN
'⼥'
WHEN 0 THEN
'男' ELSE '不详'
END 性别,
CASE 婚姻状况
WHEN - 1 THEN
'未婚'
WHEN 0 THEN
'已婚' ELSE '不详'
END 婚姻状况
FROM
员⼯;
SELECT
员⼯编号,姓名,
CASE
性别
WHEN - 1 THEN
'⼥'
WHEN 0 THEN
'男' ELSE '不详'
END 性别,
CASE 婚姻状况
WHEN - 1 THEN
'未婚'
WHEN 0 THEN
'已婚' ELSE '不详'
END 婚姻状况
FROM
员⼯ where CASE 婚姻状况 WHEN - 1 THEN
'未婚'
WHEN 0 THEN
'已婚' ELSE '不详'
END='已婚';
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论