当前位置:文档之家› 数据库的建立和维护

数据库的建立和维护

实验二: 数据库的建立和维护实验目的熟练掌握建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。

实验内容建立数据库并设计各表,输入多条实际数据,并实现数据的增、删、改操作。

实验步骤:创建用于学生管理数据库,数据库名为XSGL,包含学生的基本信息,课程信息和选课信息。

数据库XSGL包含下列3个表:(l)student:学生基本信息。

(2)course:课程信息表。

(3)sc:学生选课表。

各表的结构分别如表1、表2和表3所示。

一. 数据库的建立:1.命令方式建立:(a)在SQL SERVER2005中,在新建查询中使用T-SQL语句建立数据库XSGL:CREATE DATABASE XSGLON(NAME='XSGL_DATA',FILENAME='D:\XSGL.MDF',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)LOG ON(NAME='XSGL_Log',FILENAME='D:\XSGL_Log.ldf',SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)2.在新建查询中使用T-SQL语句建立数据库XSGL2:CREATE DATABASE XSGL23.T-SQL语句删除数据库XSGL2:drop DATABASE XSGL2二. 表的建立:1.命令方式建立:在SQL SERVER2005 中的”新建查询”编辑窗口中用下列SQL语句建立三个表student,course,sc:create table student(sno char(10)not null primary key,sname varchar(10)not null,ssex char(2)not null check(ssex ='男'or ssex ='女'),sage int,sdept char(2)not null);gocreate table course(cno char(3)not null primary key,cname varchar(30)not null,credit int check(credit >=0 and credit <= 10),pcno char(3)references course(cno));gocreate table sc(sno char(10)not null,cno char(3)not null,grade int check(grade >=0 and grade <= 100),primary key(sno, cno),foreign key(sno)references student(sno),foreign key(cno)references course(cno));2. 删除表sc,再建立表sccreate table sc(sno char(10)not null,cno char(3)not null,grade int check(grade >=0 and grade <= 100),primary key(sno, cno),foreign key(sno)references student(sno),foreign key(cno)references course(cno));3.添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)Alter table student add id char(18)unique(id)4. 设置学号字段只能输入数字:alter table student add constraint CK_Sno_Format check(sno like'[0-9][0-9][0-9][0-9][0-9]')5. 设置身份证号的输入格式:alter table student add constraint CK_ID_Format check((id like '[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_')OR(id like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))6. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)alter table student add constraint CK_ID_Format2 check(not len(id)=18 or((convert(smallint,substring(id,7,4))>=1900)and(convert(smallint,substring(id,7,4))<=2050)))6.设置男生的年龄必须大于22, 女生的年龄必须大于20.Alter table student add constraint CK_age check(ssex='男'and sage>=22 or ssex='女'and sage>=20 )7.设置男生的年龄必须大于22, 女生的年龄必须大于20.Alter table student add constraint CK_age check(ssex='男'and sage>=22 or ssex='女'and sage>=20 )8.去掉身份证字段。

alter table student drop constraint CK_ID_Formatalter table student drop constraint CK_ID_Format2alter table student drop constraint UQ__student__117F9D94alter table student drop column id三. 表数据的添加:在SQL SERVER2005”新建查询”的编辑窗口中使用下列类似SQL 语句插入数据:Select*from studentinsert into student(sno,sname,ssex,sage,sdept)values('95001','李勇','男',20,'CS')insert into student(sno,sname,ssex,sage,sdept)values('95002','刘晨','女',19,'IS')insert into student(sno,sname,ssex,sage,sdept)values('95003','王敏','女',18,'MA')insert into student(sno,sname,ssex,sage,sdept)values('95004','张立','男',19,'IS')insert into student(sno,sname,ssex,sage,sdept)values('95005','刘云','女',18,'CS ')Select*from studentSelect*from courseinsert into course(cno,cname,credit,pcno)values('1','数据库',4, '5')insert into course(cno,cname,credit,pcno)values('2','数学',6, null)insert into course(cno,cname,credit,pcno)values('3','信息系统', 3, '1')insert into course(cno,cname,credit,pcno)values('4','操作系统', 4, '6')insert into course(cno,cname,credit,pcno)values('5','数据结构', 4, '7')insert into course(cno,cname,credit,pcno)values('6','数据处理', 3, null)insert into course(cno,cname,credit,pcno)values('7','PASCAL语言', 4,'6')Select*from courseSelect*from scinsert into sc(sno,cno,grade)values('95001','1',92)insert into sc(sno,cno,grade)values('95001','2',85)insert into sc(sno,cno,grade)values('95001','3',88)insert into sc(sno,cno,grade)values('95002','2',90)insert into sc(sno,cno,grade)values('95002','3',80)insert into sc(sno,cno,grade)values('95003','2',85)insert into sc(sno,cno,grade)values('95004','1',58)insert into sc(sno,cno,grade)values('95004','2',85)insert into sc(sno,cno,grade)values('95005','2',78)Select*from sc四. 表数据的修改:1.命令方法:在SQL SERVER2005”新建查询”的编辑窗口中使用下列SQL 语句修改数据。

相关主题