go
/*1、创建教师表*/
create table 教师表
(
教师编号 char(6) primary key,
姓名 varchar(10) not null,
性别 varchar(10) not null,
职称 varchar(10),
身份z号 varchar(10) unique nonclustered
)
/*2、创建课程表*/
create table 课程表
(
课号 char(6) primary key,
名称 varchar(20) not null
)
/*3、创建任课表*/
create table 任课表
(
ID int null,
教师编号 char(6) references 教师表(教师编号),
课号 char(6) references 课程表(课号),
课时数 int
)
/*4、将下列课程信息添加到课程表的代码*/
insert 课程表 values ('100001','SQL Server数据库')
insert 课程表 values ('100002','数据结构')
insert 课程表 values ('100003','VB程序设计')
/*5 、查找所有教师的信息。*/
select * from 教师表
/*6、检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。*/
select 教师编号,姓名 from 教师表 where EXISTS (select count(*) from 任课表 where 教师表.教师编号=任课表.教师编号 group by 教师编号 HAVING count(*)>90)
/*7、查找张老师的代课总课数。*/
select count(*) from 任课表 where EXISTS (select * from 教师表 where 教师表.教师编号=任课表.教师编号 and 姓名='张老师')
--二.create database KCGL
on
(
name='KCGL',
filename='E:\班级\姓名+学号\KCGL.mdf',
size=5,
maxsize=25,
filegrowth=20%
)
log on
(
name='KCGL_log',
filename='E:\班级\姓名+学号\KCGL_log.ldf',
size=3,
filegrowth=10%
)
--三.
USE KCGL
GO
create TABLE STUDENT
(
S_NO VARCHAR(20),
S_NAME VARCHAR(20),
S_SEX CHAR(10),
S_AGE INT,
S_ADDRESS VARCHAR(100),
S_DEPT VARCHAR(40)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO student VALUES('20111001001','王敏','女',21,'武汉','IS')
create TABLE COURSE
(
C_NO VARCHAR(20),
C_NAME VARCHAR(20),
C_CREDIT INT,
C_TYPE VARCHAR(20)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO COURSE VALUES('001','VB程序设计',4,'专业课')
create TABLE SC
(
S_NO VARCHAR(20),
SEMESTER VARCHAR(20),
C_NO VARCHAR(20),
GRADE FLOAT
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERT INTO COURSE VALUES('20111001001','201101','001',78.0)
--四.
--1.
--为表STUDENT,COURSE加主键
ALTER TABLE STUDENT ADD CONSTRAINT pk_STUDENT PRIMARY KEY(S_NO)
ALTER TABLE COURSE ADD CONSTRAINT pk_STUDENT PRIMARY KEY(C_NO)
--为表SC加2外键
alter table SC add constraint fk_S_NO foreign key (S_NO) references student (S_NO)
alter table SC add constraint fk_C_NO foreign key (C_NO) references student (C_NO)
--2.
ALTER TABLE STUDENT ADD CONSTRAINT DF_STUDENT_adress DEFAULT '湖北' FOR S_ADDRESS
--3.
Alter table SC add constraint CK_SC check (SEMESTER = '201101' OR SEMESTER = '201102')
--五.
--1.
SELECT S_NAME,A_AGE,S_DEPT FROM student WHERE S_NAME = '孟凡'
--2.
select COUNT(S.S_NO) FROM SC S,student ST WHERE s_sex='女' and GRADE >80
--3.
create view KCGLVL
as
SELECT S.SNO,S.SNAME,C.Cno ,C.Grade FROM stu S,SC C WHERE S.SNO = C.SNO
--4.
create procedure KCGLPRO
@S_NO varchar(20)
as
BEGIN
select COUNT(C_NO) from SC where Sno = @S_NO
END
execute KCGLPRO '20111001001'
PS:我用的数据库是SQL SERVER 2008,剩下几题自己想想办法,做这么多及格分数已经够了。
1 select 姓名,部门名称 from 部门,职工 where 部门.部门号=职工.部门号and 职务=“工程师”2 update 工资级别 set 小时工资率=小时工资率*(1+5%) where 职务=“工程师”
3 select 职工号,sum(工时) from 施工 group by 职工号 having sum(工时)>40
4 select 部门名称,电话号码 from 部门,职工 where 部门.部门号=职工.部门号 and 姓名=“潘小光”
5 select 部门名称,姓名,项目名称 from 职工,部门,工程,施工 where 部门.部门号=职工.部门号 and 施工.项目号=工程.项目号
6 create sql view 酬金 as select 职工号,姓名,项目名称,工时,小时工资率*工时 from 施工,职工,工程,工资级别 where 施工.项目号=工程.项目号 and
职工.职务=工资级别.职务 and 职工.职工号=施工.职工号
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)