在SQL Server中用代码创建数据库SQL Server2008
1.创建数据库 学生信息数据库创建实验一.sql
CREATE database 学生信息_实验一 on
(
/*--数据文件的具体描述--*/
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:\Database\stuDB_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
name='stuDB_log',
filename='D:\Database\stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)
2.创建表:学生,课程,选课,系部信息表创建.sql
USE 学生信息_实验一
GO
CREATE table Student
(
SNO CHAR(20) primary key,
SNAME CHAR(20) not null,
AGE INT not null,
SEX CHAR(2) not null,
SDEPNO CHAR(20) NOT NULL
)
go
CREATE table Course
(
CNO CHAR(20) primary key,
CNAME CHAR(20) not null,
Cpno CHAR(20) Foreign key (Cpno)references Course(Cno),
credit int not null,
)
GO
CREATE table SC
(
SNO CHAR(20) primary key,
CNO char(20) not null,
grade int not null,
)
GO
CREATE table Department
(
SDEPNO CHAR(20) primary key,
DNAME CHAR(20) not null,
DHEAD CHAR(20) not null,
)
3.指明数据库表的主外键以及表之间的关系
主外键关系 数据库表名 |
主键 |
外键 |
Student |
SNO |
SDEPNO |
Course |
CNO |
|
SC |
SNO |
CNO |
Department |
SDEPNO |
|
4.输入数据语句 输入数据.sql
--truncate table student --清空数据表
--插入学生信息内容
INSERT intostudent
(sno,sname,age,sex,SDEPNO)VALUES(132054101,'刘1',20,'男','D1')
--插入课程信息内容
--truncate table Course --清空数据表
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c1','计算机组成原理','数电',2);
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c2','大学英语','高中英语',2);
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c3','高数','数学',2);
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c4','微积分','数学',2);
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c5','数据库','数学',2);
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c6','网络原理','数电',2);
INSERT INTO Course
(CNO,CNAME,Cpno,credit)VALUES('c7','c语言','数学',2);
--插入学生选课信息内容
INSERT INTO SC
(sno,cno,grade)VALUES('132054101','c1',80);
INSERT INTO SC
(sno,cno,grade)VALUES('132054102','c1',75);
INSERT INTO SC
(sno,cno,grade)VALUES('132054103','c2',96);
5. 定义索引,使用update、delete修改和删除表中的一些数据
--设置唯一索引以及删除索引
CREATE uniqueindex departno_index on department(SDEPNO asc)
DROP INDEXdepartno_index ON Department;
--修改表
--添加新列
ALTER tabledepartment add DHEAD INT ;
ALTER tabledepartment add depa_date date not null;
--修改列类型
ALTER tabledepartment alter column dhead char(10);
--修改列名
EXEC sp_rename'department.[dd]','DHead'
--删除列
ALTER tabledepartment drop column dhead;
--修改主外键
ALTER table Courseadd constraint FK_Course_Course foreign key(cpno) references Course(cno);
--修改student表的数据
--更新数据
UPDATE Student SETAGE=22;
UPDATEStudent SET AGE=AGE-1;
INSERT INTOStudent(SNO,SNAME,SEX,AGE,SDEPNO)VALUES('132054201','小刘','男',22,'D1');
--删除数据
DELETE FROMStudent WHERE SNAME='小刘';
五、出现的问题及解决的方法
a) 主外键创建与数据输入的先后顺序冲突,解决方案:先录入一部分数据,再确定表与表之间的主外键关系
b) Sql语句的不熟悉,解决方案:多熟悉sql语句,多实践
c) SQLServer企业管理器和查询分析器工具的使用还是比较生疏,解决方案:多实践
d) 理应多掌握数据库常用的语句语法