写在前面的话:这是我原先做数据库课程设计时的相关代码,分享给大家,可以供新手学习参考,希望对大家有所帮助。自己也是刚学习没多久的小白,如果代码或其它有问题,大家可以批评指正,相互学习。(这个数据库有些代码可能没有分享完全(比如表的创建部分),因为当时要求有图形工具创建的,有SQL语句创建的,图形工具创建的部分是直接操作的所以就没有代码。)

这是相关的表

学生(姓名,学号,性别,所在学院,所在学校,出生日期,电话,所属职业,就业状态)

学院(学院编号,学院名称,学校地址,校长)

职业(职业名称,职业编号,所属公司)

学校(学校名称,学校编号,学校地址,校长)

公司(公司名称,公司编号,公司地址)

学生表

列名描述数据类型是否允许空值
stuname姓名nvarchar(8)no
stuno学号char(8)no
stusex性别nchar(1)yes
dno所在学院char(8)no
scno所在学校char(8)no
sbirthday出生日期smalldatetimeyes
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

1.数据库的创建

 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
 )

2.数据表的创建

 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
 )

3.创建约束

(1)在表中直接加入约束

 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)
 )

(2)独自创建约束

主键约束的创建

ALTER TABLE student 
 ADD CONSTRAINT peri1 PRIMARY KEY (stuno)

DEFAULT约束的创建

ALTER TABLE student
 ADD CONSTRAINT peri2 DEFAULT ’否’ FOR answer

外键约束的创建

ALTER TABLE  p
 add CONSTRAINT peri3 foreign key(cno) references company(cno)

UNIQUE约束的创建

ALTER TABLE company
 ADD CONSTRAINT peri8 UNIQUE cno

CHECK约束的创建

 ALTER TABLE student
  ADD CHECK(tel>=00000000000 and tel<=99999999999)

4.创建索引

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);

5.创建视图

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='张三'

6.创建存储过程

 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+'%'   

7.创建触发器

 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   

8.数据插入

insert 
 into school
 values ('清华大学','12345','北京','')
 insert 
 into dept
 values ('12345678','计算机','','12345')

9.数据更新

 update school
 set scaddress='北京市'
 where scname='北京大学'
 update dept 
 set dname='计算机学院'

10.数据删除

delete 
 from dept
 where dname='音乐学院'
delete 
 from dept 
 where dno=12345678 and dname='计算机学院'

11.单表查询

 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

12.多表查询

 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='文学院'

更多推荐

高校就业管理系统数据库设计