搜索
您的当前位置:首页正文

数据库练习之SELECT

来源:欧得旅游网


/* 1.查询全部课程的详细信息。T-SQL语句:*/

USE student

GO

SELECT *

FROM lesson_info

/* 3.查询学生的学号、姓名、考试成绩的语句:*/

SELECT stud_id,name,mark

FROM stud_info

/* 4.将男生的学号、姓名、性别的查询结果作为新建临时表的语句:*/

SELECT stud_id,name,gender

INTO #new_student

FROM stud_info

DROP TABLE #new_student

/* 5.查询性别为“女”的学生的姓名、电话、地址和邮编的语句:*/

SELECT name,telcode,address,zipcode

FROM stud_info

WHERE gender='女'

/* 6.列出姓“郑”、姓名为两个汉字的学生学号、姓名,性别,入学成绩的语句:*/

SELECT stud_id,name,gender,mark

FROM stud_info

WHERE name LIKE '郑__'

/* 7.查询教师职称为“助教”,或为“讲师”,或为“副教授”的教师编号、姓名、职称及工资的语*/

SELECT teacher_id,name,tech_title,salary

FROM teacher_info

WHERE tech_title IN ('讲师','助教','副教授')

SELECT *

FROM stud_info

WHERE mark IS NULL

SELECT stud_id,name,年龄=DATEDIFF(YEAR,birthday,GETDATE())

FROM stud_info

WHERE gender='女'

SELECT *

FROM stud_grade

SELECT *

FROM lesson_info

SELECT *

FROM stud_info

SELECT *

FROM teacher_info

/*8.求“Java程序设计”课程平均成绩的语句:*/

SELECT AVG(grade) AS 平均成绩

FROM stud_grade

WHERE course_id='0401010102'

/*9. 查询所有男生学号、姓名和年龄,并按出生日期进行排列(升序)的语句:*/

SELECT 学号=stud_id,姓名=name,年龄=DATEDIFF(YEAR,birthday,GETDATE())

FROM stud_info

WHERE gender='男'

ORDER BY birthday ASC

/* 11在教师信息表中,按职称分组统计“讲师”的平均年龄的语句:*/

SELECT 讲师的平均年龄=AVG(age),职称=tech_title

FROM teacher_info

WHERE tech_title=N'讲师'

GROUP BY tech_title

ORDER BY tech_title ASC

/* 10.统计计算机工程系各个专业的学生的平均入学成绩的语句:*/

SELECT 入学平均成绩=AVG(mark),substring(stud_id,5,2) AS 专业代号

FROM stud_info

WHERE substring(stud_id,3,2)='01'

GROUP BY substring(stud_id,5,2)

/* 12.对teacher_info中职称为“讲师”的工资,生成汇总行和明细行的语句:*/

SELECT *

FROM teacher_info

WHERE tech_title='讲师'

ORDER BY salary

COMPUTE AVG(salary) BY salary

/*1、显示所有职工的基本信息。*/

USE student

GO

SELECT *

FROM worker

/*2、查询所有职工所属部门的部门号,不显示重复的部门号。*/

USE student

GO

SELECT 部门号,姓名

FROM worker

/*3、求出所有职工的人数。*/

USE student

GO

SELECT 职工的总人数=COUNT(*)

FROM worker

/*4、列出最高工和最低工资*/

USE student

GO

SELECT 最高工=MAX(工资),最低工资=MIN(工资)

FROM salary

/*5、列出职工的平均工资和总工资。*/

SELECT AVG(工资)AS平均工资,COUNT(*)as 总工资

FROM salary

/*6、创建一个只有职工号、姓名和参加工作时间的新表,

名为工作日期表。*/

USE student

GO

SELECT 职工号,姓名,参加工作时间

FROM worker

/*7、显示所有女职工的年龄*/

USE student

GO

SELECT DATEDIFF(year,出生日期,GETDATE())AS 年龄

FROM worker

WHERE 性别='女'

/*8、列出所有姓刘的职工的职工号、姓名和出生日期。*/

SELECT 职工号,姓名,出生日期

FROM worker

WHERE 姓名 LIKE '刘%'

--9、列出1960年以前出生的职工的姓名、参加工作日期。

SELECT 姓名,参加工作时间

FROM worker

WHERE 出生日期<'1960-1-1 0:00:00'

--10、列出工资在1000-2000之间的所有职工姓名。

SELECT 姓名

FROM salary

WHERE 工资 BETWEEN 1000 AND 2000

--11、列出所有陈姓和李姓的职工姓名。

SELECT 姓名

FROM worker

WHERE 姓名 LIKE '陈%' OR 姓名 LIKE '李%'

--12、列出所有部门号为2和3的职工号、姓名、党员否。

SELECT 职工号,姓名,部门号,党员否

FROM worker

WHERE 部门号 IN('2','3')

--13、将职工表worker中的职工按出生的先后顺序排序。

SELECT *

FROM worker

ORDER BY 出生日期

--14、显示工资最高的前3名职工的职工号和姓名。

SELECT TOP 3 职工号,姓名,max(工资) 工资

FROM salary

GROUP BY 职工号,姓名

--15、求出各部门党员的人数。(党员否值为‘1’代表党员,值为‘0’代表非党员)

SELECT 部门号 部门号,COUNT(党员否) 党员人数

FROM worker

WHERE 党员否='1'

GROUP BY 部门号

--16、查询员工工资并统计平均工资

SELECT 姓名,工资

FROM salary

COMPUTE avg(工资)

--17、列出总人数大于4的部门号和总人数。

SELECT 部门号,COUNT(部门号) 总人数

FROM worker

GROUP BY 部门号

HAVING COUNT(部门号)>4

--二、多表查询

--1、列出每名职工的职工号、姓名和部门名。

SELECT 职工号,姓名,部门号

FROM worker

--2、列出市场部的所有女职工的姓名和党员否。

SELECT A.姓名,A.党员否

FROM worker A,depart B

WHERE A.性别='女' AND B.部门名='市场部'

--3、显示所有职工的姓名、部门名和工资数。

SELECT A.姓名,B.部门名,C.工资

FROM worker A,depart B,salary C

WHERE A.部门号=B.部门号 and A.职工号=C.职工号

--4、*显示所有职工的职工号、姓名、部门名和工资,并按部门名顺序排列。

SELECT A.职工号,A.姓名,B.部门名,C.工资

FROM worker A,depart B,salary C

WHERE A.部门号=B.部门号 and A.职工号=C.职工号

ORDER BY B.部门名

--5、*显示各部门名和该部门的所有职工平均工资。

SELECT B.部门名,avg(工资) 平均工资

FROM worker A,depart B,salary C

WHERE A.部门号=B.部门号 and A.职工号=C.职工号

GROUP BY B.部门名

--6、*显示所有平均工资高于1200的部门名和对应的平均工资。

SELECT B.部门名,avg(工资) 平均工资

FROM worker A,depart B,salary C

WHERE A.部门号=B.部门号 and A.职工号=C.职工号

GROUP BY B.部门名

HAVING avg(工资)>1200

--*7、查询刘欣所在的部门。

SELECT 部门名

FROM worker,depart

WHERE worker.部门号=depart.部门号 and 姓名='刘欣'

--*8、查询部门名为财务处的职工的情况。

SELECT worker.*

FROM worker,depart

WHERE worker.部门号=depart.部门号 and 部门名='财务处'

因篇幅问题不能全部显示,请点此查看更多更全内容

Top