自己的家吧 关注:9,629贴子:351,645
  • 2回复贴,共1

你不知道的数据库

只看楼主收藏回复

显示表格所有信息
use Xk
go
select *
from Course
go
--查询课程表中+列标题,要求列标题显示中文
use Xk
go
select '课程编号'=couno,'课程名称'=couname,'教师'=teacher,'上课时间'=schooltime,'限制选课人数'=limitnum,'报名人数'=willnum
from course
go
消除查询重复行
从课程表中查询课程类别信息
use Xk
select '课程类别'=kind
from Course
go
去掉kind列值中的重复行
use Xk
select distinct '课程类别'=kind
from Course
go
消除kind列值和credit列值都相同的重复行
select distinct '课程类别'=kind,'学分'=credit
from Course
kind
查询结果前n(%)行
要求只显示表格查询结果的前行
use Xk
go
select top 6 *
from Student
go
要求只显示查询结果的前%数据行 p47
use Xk
go
select top 10 percent *
from Student
go
在查询结果中 增加要显示的字符串 P48
给出表格 打码得出相应效果
use Xk
go
select '课程名称'=couname,'课程编号:','课程编号'=couno
from Course
go
查询学号为'00000001'同学的姓名和班级编号 p48
use Xk
go
select stuname,classno
from Student
where STUNo='00000001'
go
where kind='信息技术' and credit=2 既要满足kind也要满足credit p49
where kind='信息技术' or credit=2 显示满足kind或者满足credit
where kind='信息技术' or not credit=2 显示满足kind或者满足credit不等于
比较运算符的例子 p50
where willnum<15 willnum(报名人数)少于的课程信息 p50
where willnum>=15 and willnum<=25 willnum(报名人数)少于等于并且多于等于人的课程信息
where willnum>25 or willnum<15 willnum(报名人数)大于人,或者少于人的课程信息
查询课程编号为'004' '007' '013'的课程信息 p51 或+课程编号和课程信息
use Xk
go
select *
from course
where couno in('004','007','013')
go
报名人数 与 限选人数 p52
查询课表中 报名人数与限选人数之比
use Xk
go
select *,'willnum/limitnum'=willnum/limitnum
from Course
go
报名人数与限选人数之比+按照升序排序 p53
use Xk
go
select *,willnum/limitnum '报名人数与限选人数之比'
from Course
order by WillNum
go
order by WillNum 按照报名人数升序排序 p54
order by 报名人数与限选人数之比 按照报名人数与限选人数排序
order by WillNum desc 按照报名人数升序排序
order by teacher desc,couno 按照教师名降序排序,教师名相同时,则按照课程编号升序排序
使用like实现模糊查询
查看周二有哪些选修课,按上课时间排序. p55
use Xk
go
select '课程名称'=couname,'学分'=credit,'上课时间'=schooltime,'教师'=teacher
from Course
where SchoolTime like'周二%'
order by SchoolTime
go
where SchoolTime like'周二%' 周二的课 p55
where SchoolTime not like'周二%' 非周二的课
where randomnum is null 课表中随机数为空的信息 p66
使用聚合函数查询 p56
sum
min
max
count 总行数
avg 平均数
use Xk
go
select COUNT(*) as '课程表中选修课门数'
from Course
go
p57
select COUNT(*) as '课程表中选修课门数' 意思 统计课表中共有多少门选修课
select SUM(limitnum) as '课程表中可提供选修课的总人数' 意思 查看课表中能提供多少人选修
select MIN(willnum)as '最少报名人数',MAX(willnum) as '最多报名人数', AVG(willnum) as '平均报名人数'
以上意思 查看课表中最少报名人数 最多报名人数 平均报名人数
select MIN(willnum)as '最少报名人数',MAX(willnum) as '最多报名人数', AVG(willnum) as '平均报名人数' as decimal(5,2) as '平均报名人数'
以上意思是要求平均报名人数 只保留两位小数
分组查询结果 p58
按照课程类别分组统计各类课程的门数
use Xk
go
select '课程类别'=kind,'该类别的课程门数'=count(kind)
from course
group by kind
go
group by kind 课程类别+各类课程总门数
group by kind with cube 课程类别+各类课程门数,+给出课程总门数
课程类别+最少报名人数+最多报名人数 ,人数>15. p60
use Xk
go
select '课程类别'=kind,'最少报名人数'=MIN(willnum),'最多报名人数'=MAX(willnum)
from Course
where WillNum>15
group by Kind
go
课程类别+平均报名人数 (报名人数>15+平均报名人数>30)
use Xk
go
select '课程类别'=kind,'平均报名人数'=avg(willnum)
from Course
where WillNum>15
group by Kind
having AVG(willnum)>30
go
课程类别 (信息技术 管理 ) de 平均报名人数,并给出其它课程类别 p61
use Xk
go
select '课程类别'=kind,'平均报名人数'=AVG(willnum)
from Course
where Kind in('信息技术','管理')
group by all Kind
go
查看系部编号'01'+平均报名人数 p62
use Xk
go
select *
from Course
where DepartNo='01'
compute avg(willnum)
go
子查询 查询报名人数大于平均报名人数的课程信息
查询学生选课表中报名状态为'报名'的课程信息
查看已经报名的学生信息 显示学号+姓名
交叉连接查询 from class cross join student (p67 两表连接查询)
from class cross join student cross join stucou (p69 三表连接查询)
内连接 P70
查看学生基本信息和所在班级的信息
use Xk
go
select *
from Class join Student
on class.ClassNo=Student.classno
go


来自手机贴吧1楼2019-01-11 07:32回复
    该楼层疑似违规已被系统折叠 查看此楼


    来自手机贴吧2楼2019-01-11 07:59
    回复
      二、创建数据表
      图1 样例数据
      根据图1样例数据及表2要求,完成数据表商品表的创建,表名:商品表
      表2 商品表
      字段名
      数据类型
      要求
      商品编号
      自定义
      主键
      商品名称
      自定义
      非空
      商品单价
      decimal
      保留一位小数
      图片位置
      自定义
      图片命名要求有唯一性约束
      商品分类
      自定义
      非空
      商品产地
      自定义
      CREATE TABLE 商品表
      (商品编号 nvarchar (8) NOT null,
      商品名称 nvarchar (2) NOT NULL,
      商品单价 decimal(2,1),
      商品分类 nvarchar (8) NOT null,
      商品产地 nvarchar (50) NOT null,
      图片位置 nvarchar (50) NOT null)
      go
      drop table 商品表
      go
      CREATE TABLE 商品表
      (商品编号 nvarchar (8) NOT null,
      商品名称 nvarchar (2) NOT NULL,
      商品单价 decimal(2,1),
      商品分类 nvarchar (8) NOT null,
      商品产地 nvarchar (50) NOT null,
      图片位置 nvarchar (50) NOT null,
      CONSTRAINT PK_商品表 PRIMARY KEY (商品编号))
      go
      use DB_StuManage
      go
      ALTER TABLE 商品表
      ADD CONSTRAINT UN_图片位置 UNIQUE(图片位置)
      go
      三、编写查询语句,将桌面上的shark.mdf,shark_log.ldf 移动至E:\shark路径下并附加到数据库中。
      编写查询语句,要求查询tblproduct数据表中单价Price最大的产品的所有信息
      use shark
      GO
      SELECT *
      from tblproduct
      WHERE Price=(SELECT MAX(Price) FROM tblproduct)
      GO
      编写查询语句,要求查询所有tblEmployee表中LastName字段以‘P’开头的客户的LastName和FirstName;
      USE Shark
      GO
      SELECT LastName,FirstName
      FROM tblEmployee
      WHERE LastName LIKE 'P%'
      GO
      编写查询语句,要求查询tblCustomer中所居住的城市客户人数多于3个的客户姓名、居住城市。
      use Shark
      go
      select City,FirstName,LastName
      from tblCustomer
      WHERE City in(select City
      from tblCustomer
      GROUP BY City
      HAVING COUNT(City)>3)
      GO
      编写查询语句,查询tblProduct,tblCategory数据表,目录名Category为Shark Dolls的商品编号,商品名称,单价,目录名 ,查询结果如图2所示
      USE Shark
      go
      select Productid,Product,Price,Category
      from tblProduct,tblCategory
      where Category='Shark Dolls'
      go


      来自手机贴吧3楼2019-01-11 08:03
      回复