写在前面的话:这是我原先做数据库课程设计时的相关代码,分享给大家,可以供新手学习参考,希望对大家有所帮助。自己也是刚学习没多久的小白,如果代码或其它有问题,大家可以批评指正,相互学习。(这个数据库有些代码可能没有分享完全(比如表的创建部分),因为当时要求有图形工具创建的,有SQL语句创建的,图形工具创建的部分是直接操作的所以就没有代码。)
学生(姓名,学号,性别,所在学院,所在学校,出生日期,电话,所属职业,就业状态)
学院(学院编号,学院名称,学校地址,校长)
职业(职业名称,职业编号,所属公司)
学校(学校名称,学校编号,学校地址,校长)
公司(公司名称,公司编号,公司地址)
学生表
列名 | 描述 | 数据类型 | 是否允许空值 |
---|---|---|---|
stuname | 姓名 | nvarchar(8) | no |
stuno | 学号 | char(8) | no |
stusex | 性别 | nchar(1) | yes |
dno | 所在学院 | char(8) | no |
scno | 所在学校 | char(8) | no |
sbirthday | 出生日期 | smalldatetime | yes |
tel | 电话 | char(12) | yes |
pno | 所属职业 | char(6) | no |
answer | 就业状态 | nchar(1) | no |
学院表
列名 | 描述 | 数据类型 | 是否允许空值 |
---|---|---|---|
dno | 学院编号 | char(10) | no |
dname | 学院名称 | nvarchar(10) | no |
dchair | 院长 | nvarchar(4) | yes |
scno | 所在学校 | char(10) | no |
职业表
列名 | 描述 | 数据类型 | 是否允许空值 |
---|---|---|---|
pname | 职业名称 | nvarchar(8) | no |
pno | 职业编号 | char(8) | no |
cno | 所属公司 | char(8) | no |
学校表
列名 | 描述 | 数据类型 | 是否允许空值 |
---|---|---|---|
scname | 学校名称 | nvarchar(8) | no |
scno | 学校编号 | char(10) | no |
scaddress | 学校地址 | nvarchar(50) | yes |
scchair | 校长 | nvarchar(4) | yes |
公司表
列名 | 描述 | 数据类型 | 是否允许空值 |
---|---|---|---|
cname | 公司名称 | nvarchar(9) | no |
caddress | 公司地址 | nvarchar(20) | yes |
cno | 公司编号 | char(8) | no |
create database wym
on primary
(
name=gxjy,
filename='C:\wym\gxjy.mdf',
size=5MB,
maxsize=50MB,
filegrowth=1%
)
log on
(
name=gxjy_log,
filename='C:\wym\gxjy_log.ldf',
size=1MB,
maxsize=20MB,
filegrowth=1MB
)
use wym
create table student
(
stuname nvarchar(8) not null,
stuno char(8) not null,
stusex nchar(1),
dno char(8) not null,
scno char(8) not null,
sbirthday smalldatetime,
tel char(12),
pno char(6) not null,
answer nchar(1) not null
)
create table company
(
cname nvarchar(9) not null,
caddress nvarchar(20),
cno char(8) not null
)
create table p
(
pname nvarchar(8) not null,
pno char(8) not null,
cno char(8) not null
)
use wym
create table student
(
stuname nvarchar(8),
stuno char(8) primary key,
stusex nchar(1) default'男',
dno char(8),
scno char(8),
sbirthday smalldatetime,
tel char(12) check(tel>=00000000000 and tel<=99999999999),
pno char(6)
)
create table company
(
cname nvarchar(9),
caddress nvarchar(20),
cno char(8) unique
)
create table p
(
pname nvarchar(8),
pno char(8),
cno char(8),
constraint f1 foreign key(cno) references company(cno)
)
ALTER TABLE student
ADD CONSTRAINT peri1 PRIMARY KEY (stuno)
ALTER TABLE student
ADD CONSTRAINT peri2 DEFAULT ’否’ FOR answer
ALTER TABLE p
add CONSTRAINT peri3 foreign key(cno) references company(cno)
ALTER TABLE company
ADD CONSTRAINT peri8 UNIQUE cno
ALTER TABLE student
ADD CHECK(tel>=00000000000 and tel<=99999999999)
create unique index idx_com on company(cno asc);
create unique index idx_p on p(pno desc);
create unique clustered idx_stu on student(stuno asc,dno desc);
create unique idx_dept on dept(dno desc);
create unique idx_scl on school(scno);
create view v_student
as
select stuname,stuno,stusex
from student
where dno='计算机'
create view v_school
as
select scname,scno
from school
where scchair='张三'
create procedure p1
as
select stuno,dname,tel
from student,dept
where student.dno=dept.dno and dname='文学院'
create procedure p2
as
declare @qqq char(10)
select dno+pno
from student
where stuno='6114646'
create procedure p3
as
declare @a char(10),@w char(6)
set @w='4322'
select @a=COUNT(*)
from student
where dno like @w+'%'
create table 学生数
(学院编号 char(8),
学生总数 int)
insert into 学生数
select dno,count(*)
from student
group by dno
create trigger tr1
on student for insert
as
begin
declare @a char(8)
select @a=dno
from inserted
update 学生数
set 学生总数=学生总数+1
where 学院编号=@a
end
insert
into school
values ('清华大学','12345','北京','')
insert
into dept
values ('12345678','计算机','','12345')
update school
set scaddress='北京市'
where scname='北京大学'
update dept
set dname='计算机学院'
delete
from dept
where dname='音乐学院'
delete
from dept
where dno=12345678 and dname='计算机学院'
select *
from dept
select dno,dname
from dept
where dname='文学院'
select COUNT(*)
from dept
select dname,COUNT(dno)
from dept
group by dname
having COUNT(dno)>0
order by COUNT(dno) desc
select dname
from dept
where scno in
(
select scno
from school
where scname='北京大学'
)
select dno,scname
from school,dept
where school.scno=dept.scno and dname='文学院'
select dno,dname
from dept
where dname='艺术学院'
union
select dno,dname
from dept
where dname='文学院'