/* 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 部门名='财务处'