创建数据库。
if exists (select name from where name = n'xsgl1')
drop database xsgl1
gocreate database xsgl1 on (name = n'xsgl_data', filename = n'c:\program files\microsoft sql server\mssql\data\xsgl1_'
size = 2, filegrowth = 10%) log on (name = n'xsgl_log', filename = n'c:\program files\microsoft sql server\mssql\data\xsgl1_' size = 1, filegrowth = 10%)
collate chinese_prc_ci_as
创建表。use xsgl1
gouse xsgl1
gocreate table s1
(sno char(5) not null unique,
sname char(20) unique
ssex char(1),birth smalldatetime ,sdept char(15))
go create table c1
cno char(4) not null ,cname char(10),constraint c1 primary key(,cno),go
create table sc1
(sno char(9) not null,cno char(4) not null,
grade smallint
constraint c1 primary key(sno,cno),constraint c2 foreign key(sno) references s(sno),constraint c3 foreign key(cno) references c(cno))
gocreate table [dbo].[班级] (
[班级编号] [nvarchar] (4) not null ,[班级名称] [nvarchar] (20) not null )
gocreate table [dbo].[课程] (
[课程号] [nvarchar] (3) not null ,[课程名] [nvarchar] (24) null )
gocreate table [dbo].[学生] (
[学号] [nvarchar] (7) not null ,[姓名] [nvarchar] (8) null ,[性别] [nvarchar] (2) null ,[出生日期] [smalldatetime] null ,[班级编号] [nvarchar] (4) null ,[zp] [image] null )
gocreate table [dbo].[成绩] (
[学号] [nvarchar] (7) not null ,[课程号] [nvarchar] (3) not null ,[成绩] [smallint] null )
gouse xsgl1
gotab alter le [dbo].[班级] with nocheck add
constraint [pk_班级] primary key clustered
[班级编号]
) on [primary]
goalter table [dbo].[课程] with nocheck add
constraint [pk_课程] primary key clustered
[课程号]) on [primary]
goalter table [dbo].[学生] with nocheck add
constraint [pk_学生] primary key clustered
[学号]) on [primary]
goalter table [dbo].[学生] add
constraint [fk_学生_班级] foreign key
[班级编号]
) references [dbo].[班级] (
[班级编号]
goalter table [dbo].[成绩] add
constraint [fk_成绩_课程] foreign key
[课程号]) references [dbo].[课程] (
[课程号]),constraint [fk_成绩_学生] foreign key
[学号]) references [dbo].[学生] ([学号]
go1 不及格成绩。
select 课程号, 学号, 成绩。
from where (成绩 < 60)
2统计各门课的选课人数:
select count(课程号) as 选课人数, 课程号。
from dbo.成绩。
group by 课程号。
3计算每个人的平均成绩:
select 学号, **g(distinct 成绩) as 平均成绩。
from dbo.成绩。
group by 学号。
4统计各门课的选课不及格的人数:
select count(课程号) as 不及格成绩rs1,课程名。
from dbo.不及格成绩。
group by 课程号,课程名。
order by count(课程号)
5(90分以上的学号、课程号、及课程数。
select 学号, 课程号,count(课程号) as课程数。
from dbo.成绩。
where (成绩 >=90)
group by 学号。
6查询选修了3门以上课程的学生学号。
select sno
from sc
group by sno
h**ing count(*)3;
7查询有3门以上课程是90分以上的。
学生的学号及(90分以上的)课程数。
select sno, count(*)
from sc
where grade>=90
group by sno
h**ing count(*)3
create view cjb
select dbo.学生。学号, dbo.学生。姓名, dbo.班级。班级名称, dbo.课程。课程号,
dbo.课程。课程名, dbo.成绩。成绩。
from dbo.课程 inner join
dbo.成绩 on dbo.课程。课程号 = dbo.成绩。课程号 inner join
dbo.学生 on dbo.成绩。学号 = dbo.学生。学号 inner join
dbo.班级 on dbo.学生。班级编号 = dbo.班级。班级编号。
插入记录。insert
into 课程(课程号,课程名)
values ('018 ',软件2')
插入查询。create table xs5
学号 char(7),姓名 char(8))
insert
into xs5(学号,姓名)
select dbo.学生。学号, dbo.学生。姓名。
from 学生。
where (dbo.学生。学号 = n'9601003')
修改。语句格式。
update 《表名》
set 《列名》=《表达式》[,列名》=《表达式》]…
[where 《条件》];
功能。修改指定表中满足where子句条件的元组。
update 成绩。
set 成绩。成绩=成绩+60
select dbo.班级。班级编号, dbo.班级。班级名称, dbo.成绩。成绩。
from dbo.班级 inner join
dbo.学生 on dbo.班级。班级编号 = dbo.学生。班级编号 inner join
dbo.成绩 on dbo.学生。学号 = dbo.成绩。学号。
where (dbo.班级。班级名称 = n'96计算机')
删除元组。delete
from 《表名》
[where 《条件》];
功能。删除指定表中满足where子句条件的元组。
where子句。
指定要删除的元组。
缺省表示要修改表中的所有元组。
5.创建存储过程tj统计课程号='004'选课人数,执行存储过程tj,并打印统计结果。
use xsgl
gocreate procedure tj
@rs int output
asbegin
select @rs=count(课程号)
from dbo.成绩。
where 课程号='004'endgo
declare @rs int
exec tj @rs output
print @rs
6.创建存储过程pj计算学号=' 9601002'的个人平均成绩,执行存储过程pj,并打印计算结果 (6分)
use xsgl
gocreate procedure pj
@pjcj float output --成绩,输出参数。
asset @pjcj = 0
beginselect @pjcj = **g (成绩)
from where 学号=' 9601002'
enddeclare@pjcj float
exec pj @pjcj output
print @pjcj
声明创建游标。
declare 游标名称 [scroll] cursor
for select语句
scroll:指定所有的提取选项(first、last、prior、next、relative、absolute)均可用。如果未指定scroll,则next是唯一支持的提取选项。
sql查询举例 含答案
查询练习。一 简单查询 无条件查询 1 查询 学生档案 表中所有的记录。select form 学生档案。2 查询 学生档案 表中全体学生的姓名 学号 家庭地址。select 姓名,学号,家庭地址 from 学生档案。二 有条件查询。1 查询 成绩管理 表中语文成绩在80分以下的学生的学号。sele...
SQL高级应用
数据库应用 sql高级 第一章 索引和视图。一。索引 语法 create index create unique 唯一性 索引名 on 表名 列名 聚集索引 每张表只能有一个。作用 存入数据时与索引的顺序相同。非聚集 可以有多个,最多能有249个。查看索引 语法 exec sp helpindex ...
作业4应用举例
一 选择题 每小题10分 二 填空题 每小题10分 解 根据题意画出图形,如图所示,可得 dab 60 dac 30 ab 45海里,cab 30 acb 120 在 abc中,利用正弦定理得 bc 10 海里 则这时船与灯塔的距离是15海里 故答案为 10海里 8 某船在海面a处测得灯塔c与a相距...