sql 实例 查询

 

如果需要对应数据库文件 请联系我QQ:157372883

USE Xk
GO
--消除Kind列值都相同的那些重复行    查询分析器中的注释
SELECT DISTINCT Kind FROM Course GO
--消除Kind列和Credit列值都相同的那些重复行。
SELECT DISTINCT Kind,Credit FROM Course
GO

选6条
USE Xk      
GO
SELECT TOP 6 *
FROM Student
GO

选6%的条数
USE Xk
GO
SELECT TOP 6  PERCENT *
FROM Student
GO

别名
USE Xk
GO
SELECT '课程编码'=CouNo,'课程名称'=CouName,'教师'=Teacher,'上课时间'=SchoolTime,'限制选课人数'=LimitNum,'报名人数'=WIllNum
FROM  Course
GO


USE Xk
GO
SELECT CouNo '课程编码',CouName '课程名称',Teacher '教师',
SchoolTime '上课时间',LimitNum '限制选课人数', WIllNum '报名人数'
FROM  Course
GO

USE Xk
GO
SELECT CouNo AS '课程编码',CouName AS '课程名称',
Teacher AS '教师',SchoolTime AS '上课时间',
LimitNum AS '限制选课人数', WIllNum AS '报名人数'
FROM  Course
GO


USE Xk
GO
SELECT '课程名称'=CouName,'课程编码为:','课程编码'=CouNo
FROM  Course
GO

 

 

USE Xk
GO
SELECT *,WillNum/LimitNum '报名人数与限选人数之比' FROM Course
ORDER BY WillNum
GO

 


【例2.13】
USE Xk
GO
SELECT CouName AS '课程名称'
FROM Course
WHERE CouNo='004' OR CouNo='007' OR CouNo='013'
GO
使用IN关键字的SQL语句如下:
USE Xk
GO
SELECT CouName AS '课程名称'
FROM Course
WHERE CouNo IN('004','007','013')
GO


USE Xk
GO
SELECT CouNo AS '课程号',CouName AS '课程名称'
FROM Course
WHERE CouNo NOT IN('004','007','013')
GO
或者:
USE Xk
GO
SELECT CouNo AS '课程号',CouName AS '课程名称'
FROM Course
WHERE CouNo<>'004' AND CouNo<>'007' AND CouNo<>'013'
GO


USE Xk
GO
SELECT * FROM Course
WHERE CouName LIKE 'D%'
GO

 

 

【例2.18】
USE Xk
GO
SELECT * FROM Student
WHERE StuName LIKE '[^刘]%'
GO
使用NOT LIKE的检索语句为:
USE Xk
GO
SELECT * FROM Student
WHERE StuName NOT LIKE '刘%'
GO

【例2.19】
USE Xk
GO
SELECT '课程名称'=CouName,'教师'=Teacher FROM Course
WHERE Teacher IS NULL
GO

【例2.20】
USE Xk
GO
SELECT * FROM Course
WHERE WillNum<15
GO

【例2.21】
USE Xk
GO
SELECT * FROM Course
WHERE WillNum>15 AND WillNum<25
GO

【例2.22】
USE Xk
GO
SELECT '课程名'=CouName,'报名人数'=WillNum FROM Course
WHERE WillNum BETWEEN 15 AND 25
ORDER BY 报名人数 DESC
GO

【例2.23】
USE Xk
GO
SELECT '课程名'=CouName,'报名人数'=WillNum FROM Course
WHERE WillNum NOT BETWEEN 15 AND 25
ORDER BY 报名人数 DESC
GO

【例2.24】
USE Xk
GO
SELECT CouNo AS '课程编码',CouName  AS '课程名称',
Kind AS '课程分类',WillNum AS '报名人数'
FROM Course
WHERE Kind='信息技术'
COMPUTE AVG(WillNum)
GO

【例2.25】
USE Xk
GO
SELECT CouNo AS '课程编码',CouName  AS '课程名称',
Kind AS '课程分类',WillNum AS '报名人数'
FROM Course
ORDER BY Kind
COMPUTE AVG(WillNum) BY Kind
GO

【例2.26】
USE Xk
GO
SELECT Kind AS '课程分类',AVG(WillNum) AS '每类平均报名人数'
FROM Course
GROUP BY Kind
GO

【例2.27】
USE Xk
GO
SELECT Kind AS '课程分类',AVG(WillNum) AS '每类平均报名人数'
FROM Course
GROUP BY Kind
HAVING Kind='信息技术'
GO
使用WHERE子句的SELECT语句:
USE Xk
GO
SELECT Kind AS '课程分类',AVG(WillNum) AS '每类平均报名人数'
FROM Course
WHERE Kind='信息技术'
GROUP BY Kind
GO

【例2.28】
USE Xk
GO
SELECT Kind AS '课程分类',AVG(WillNum) AS '每类平均报名人数'
FROM Course
WHERE AVG(WillNum)>25
GROUP BY Kind
GO
使用HAVING子句的SELECT语句:
USE Xk
GO
SELECT Kind AS '课程分类',AVG(WillNum) AS '每类平均报名人数'
FROM Course
GROUP BY Kind
HAVING AVG(WillNum)>25
GO

【例2.29】
USE Xk
GO
SELECT  '课程编码'=CouNo,'课程名称'=CouName,'报名人数'=WillNum
FROM   Course
WHERE  WillNum>(SELECT AVG(WillNum) FROM  Course)
GO

例2.30】
USE Xk
GO
SELECT ClassName FROM Class
UNION
SELECT DepartName FROM Department
GO
如果希望改变列标题
USE Xk
GO
SELECT ClassName AS '所有班名和所有系名' FROM Class
UNION
SELECT DepartName FROM Department
GO

【例2.31】
USE Xk
GO
SELECT ClassName AS '所有班名和所有系名' FROM Class
UNION
SELECT DepartName FROM Department
ORDER BY 所有班名和所有系名 DESC
GO

【例2.32】
USE Xk
GO
SELECT ClassName AS '班级',StuNo AS '学号',StuName AS '姓名',
CouName AS '课程名',Kind AS '课程分类',Credit AS '学分',
Teacher AS '教师',SchoolTime AS '上课时间',WillNum AS '报名人数'
FROM Class,Student,Course,StuCou
WHERE Class.ClassNo=Student.ClassNo AND
      Course.CouNo=StuCou.CouNo  AND
      Student.StuNo=StuCou.StuNo AND
      ClassName='01电子商务'
GO
在StuNo列前增加表前缀Student.后的SELECT语句为:
USE Xk
GO
SELECT ClassName AS '班级',Student.StuNo AS '学号',StuName AS '姓名',
CouName AS '课程名',Kind AS '课程分类',Credit AS '学分',
Teacher AS '教师',SchoolTime AS '上课时间',WillNum AS '报名人数'
FROM Class,Student,Course,StuCou
WHERE Class.ClassNo=Student.ClassNo AND
      Course.CouNo=StuCou.CouNo  AND
      Student.StuNo=StuCou.StuNo AND
      ClassName='01电子商务'
GO

【例2.33】
USE Xk
GO
SELECT * FROM Class,Student
WHERE Class.ClassNo=Student.ClassNo
GO
使用ANSI连接语法的SELECT语句:
USE Xk
GO
SELECT * FROM Class Inner Join Student
ON Class.ClassNo=Student.ClassNo
GO

【例2.34】
USE Xk
GO
SELECT Class.*,StuNo,StuName,Pwd
FROM Class,Student
WHERE Class.ClassNo=Student.ClassNo
GO
使用ANSI连接语法的SELECT语句:
USE Xk
GO
SELECT Class.*,StuNo,StuName,Pwd
FROM Class Inner Join Student
ON Class.ClassNo=Student.ClassNo
GO

【例2.35】
USE Xk
GO
SELECT StuName,CouName,Teacher
FROM StuCou,Student,Course,Department
WHERE StuCou.StuNo=Student.StuNo AND StuCou.CouNo=Course.CouNo
AND Course.DepartNo=Department.DepartNo
AND  DepartName LIKE '计算机应用工程系'
GO

【例2.36】
USE Xk
GO
SELECT ClassName AS '班级',CouName AS '课程名',Kind AS '课程分类',
Credit AS '学分',Teacher AS '教师',
SchoolTime AS '上课时间',WillNum AS '报名人数'
FROM Class,Course
WHERE Course.DepartNo<>Class.DepartNo
GO

【例2.37】
USE Xk
GO
SELECT DISTINCT t1.CouNo,t1.CouName,
t1.Kind AS '课程分类',t1.DepartNo AS '系部编码'
FROM Course t1,Course t2
WHERE t1.Kind=t2.Kind AND t1.DepartNo<>t2.DepartNO
GO

【例2.38】
(1)
USE Xk
GO
SELECT Course.CouNo,CouName,StuNo FROM Course,StuCou
WHERE Course.CouNo=StuCou.CouNo
GO
(2)
USE Xk
GO
SELECT Course.CouNo,CouName,StuNo FROM Course LEFT JOIN StuCou
ON Course.CouNo=StuCou.CouNo
GO

【例2.39】
USE Xk
GO
SELECT Course.CouNo,CouName,StuNo FROM Course RIGHT JOIN StuCou
ON Course.CouNo=StuCou.CouNo
GO

【例2.40】
USE Xk
GO
SELECT Course.CouNo,CouName,StuNo FROM Course FULL JOIN StuCou
ON Course.CouNo=StuCou.CouNo
GO

【例2.41】
使用SQL Server连接的SELECT语句为:
USE Xk
GO
SELECT * FROM Course,Class
GO
使用ANSI连接的SELECT语句:
USE Xk
GO
SELECT * FROM Course CROSS JOIN Class
GO

【例2.42】
USE Xk
GO
SELECT CouNo AS '课程号',CouName AS '课程名',Kind AS '课程分类',
Credit AS '学分',Teacher AS '任课教师',
SchoolTime AS '上课时间'
FROM Course Co,Department d
WHERE Co.DepartNo=d.DepartNo AND
      DepartName LIKE '计算机应用工程系'
ORDER BY 课程号
GO

【例2.43】
USE Xk
GO
SELECT StuNo,StuName
FROM Student
WHERE EXISTS (SELECT StuNo FROM StuCou)
GO

【例2.44】
USE Xk
GO
INSERT Department
VALUES ('11','数学系')
INSERT Department(DepartName,DepartNo)
VALUES ('物理系','12')
INSERT Department(DepartNo,DepartName)
VALUES ('13','化学系')
GO
SELECT * FROM Department
GO
(3)
INSERT Department(DepartNo,DepartName)
VALUES ('15','哲学系')
GO

【例2.45】
(1)
USE Xk
GO
Create Table NewDepartment
(No char(2) not null,
 Name char(30) not null)
GO
(2)
INSERT NewDepartment
VALUES('16','历史系')
INSERT NewDepartment
VALUES('17','生物系')
GO
(3)
USE Xk
GO
INSERT Department
 SELECT No,Name
 FROM NewDepartment
GO

【例2.46】
USE Xk
GO
INSERT Department  --DepartNo和DepartName的列长度分别为2和30*/
 SELECT SUBSTRING(ClassNo,7,2),ClassName
  /*ClassNo和ClassName的列长度分别为8和20*/
 FROM Class
GO

【例2.47】
USE Xk
GO
SELECT CouNo,CouName,Teacher,SchoolTime
  INTO NewCourse
  FROM Course
  WHERE WillNum>20
GO

【例2.48】
USE Xk
GO
UPDATE Course
SET SchoolTime='周二晚'
WHERE CouName='电子出版概论'
GO

【例2.49】
USE Xk
GO
UPDATE Student
SET StuName='陈晓梅'
FROM Student,Class
WHERE Student.StuNo='01000025' AND
      ClassName='01数据库' AND
      Class.ClassNo=Student.ClassNo
GO

【例2.50】
USE Xk
Go
UPDATE Student
SET Pwd='7F5E5D3D'
WHERE StuNo='00000005' AND  
      StuNO IN (SELECT StuNo FROM StuCou)
GO

【例2.51】
USE Xk
GO
DELETE StuCou
WHERE StuNo='00000005' AND CouNo='017'
GO

【例2.52】
USE Xk
GO
DELETE StuCou
FROM StuCou,Course
WHERE StuCou.StuNo='00000005' AND
      CouName like '中餐菜肴制作%' AND
      StuCou.CouNo=Course.CouNo
GO

你可能感兴趣的:(JOIN,sql,sql,server,Class,insert,Go)