sql语句投影全部怎么写

sql语句投影全部怎么写

2023年6月27日发(作者:)

sql语句投影全部怎么写

使用SQL进行投影

1.对单个表进行查询

⑴ 使用SQL进行投影

投影是指取表的某些列的字段值。下面是使用SQL语句进行投影的例子,从ST表中列出需要的学号、姓名和主修:

SELECT 主修 FROM ST

SELECT 学号,姓名,主修 FROM ST

SELECT DISTINCT 主修 FROM ST

⑵ 使用SQL进行选择

选择是指到表的某些行的记录值。请看下面的例子:

SELECT 学号,姓名,主修,年龄 FROM ST WHERE 主修=MATH

SELECT * FROM ST WHERE 主修=MATH

SELECT 姓名,主修,年龄 FROM ST WHERE 主修=MATHAND 年龄>21

SELECT 姓名,主修,年龄 FROM ST WHERE 主修

IN(MATH,ACCOUNTING)

SELECT 姓名,主修,年龄 FROM ST WHERE 主修 NOT

IN(MATH,ACCOUNTING) ⑶ SQL排序 SELECT 姓名,主修,年龄 FROM ST WHERE 主修=ACCOUNTING ORDER BY 姓名

SELECT 姓名,主修,年龄 FROM ST WHERE 主修

IN(MATH,ACCOUNTING) ORDER BY 姓名 DESC,年龄

ASC

⑷ SQL内置函数

SQL主要提供了前面我们提到的五个内置函数:COUNT、SUM、AVG、MAX、MIN。

在上面的查询中,还可以对查询的学生进行条件选择,使用关键字WHERE进行查询,但是这样会产生一定的模糊性,请看下例的结果,分析之:

SELECT COUNT(主修) FROM ST

SELECT COUNT(DISTINCT 主修) FROM ST

⑸ SQL内置函数和分组

为了增强统计内置函数的功能,内置函数可以和分组函数合用,将源表中的数据分组,再对每一分组生成一个汇总行。例如:学生可以按照主修专业进行分组,这意味着每一个专业将形成一个分组,然后可以对每一组进行一定的统计。

SELECT 主修,AVG(年龄) FROM ST WHERE 姓名='JONES'

GROUP BY 主修 HAVING COUNT(*)>1

主修 Avg_年龄 HISTORY22.5

主修 Avg_年龄

ACCOUNTING26.00

HISTORY31.67

学号

100

200 SELECT 姓名 FROM ST WHERE 学号 IN(100,200)

姓名

JONES

BAKER

姓名

JONES

BAKER 我们将第二个查询语句称为子查询(SUBQUERY),它嵌套在主查询的条件中。这种查询方式是很有用的,但要注意子查询的结果与主查询的条件的类型匹配问题。

对于一般的SQL查询语句而言,子查询可以嵌套二层以上甚至更多,但VFP对子查询的深度进行了限制。请看下面的语句:

SELECT CL.班名 FROM CL WHERE 时间=MWF8

班名

B100

C200

学号

200

400

400

姓名

BAKER

RYE

⑵ SQL联接查询

子查询的结果总是来自一个表,如果同时提供来自不同的表的数据(如每一个学生的学号、姓名、所在班名等),则必须将多个表(ST、EN)相联接。

请看下面的语句:

SELECT ST.学号,ST.姓名,EN.班名,EN.注册号 FROM

ST,EN WHERE ST.学号=EN.学号

学号姓名班名 注册号

100 JONES A1001

150 PARKS B2001

200 BAKER A1002

200 BAKER C2001

300 BAKER C1001 400 RYE B2002

400 RYE B1001

400 RYE C2002

450 JONES B2003

学号姓名班名 注册号 400 RYE B2002 400 RYE C2002

如果结果来自于两个以上的表,我们可以使用相仿的方法,如下例:

SELECT ST.学号,ST.姓名,EN.班名,EN.注册号 FROM

ST,EN WHERE ST.学号=EN.学号 AND ST.姓名=RYE AND

EN.注册号=2

学号班名时间 注册号

200 A100MWF32

200 C200MWF81

300 C100MWT31

3. 回顾专用查询

在专用查询中,使用了除SELECT以外的其它几个操作语句:UPDATE、INSERT INTO、DELETE、SELECT INTO等等。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687817243a47716.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信