目录
1.使用CREATE DATABASE创建数据库SCHOOL。
4. 使用create table创建数据表StudentGrade。
5.删除SCHOOL数据库(注意,此操作进行前请先对数据库进行备份)。
一、数据表的创建
使用SQL命令创建数据库“SCHOOL”及表Student、Course、StudentGrade
1.使用CREATE DATABASE创建数据库SCHOOL。
/*创建数据库SCHOOL*/
CREATE DATABASE SCHOOL
ON PRIMARY /*数据文件*/
( NAME = 'SCHOOL_Data', /*逻辑文件名*/
FILENAME = 'D:\DB\SCHOOL_Data.MDF' , /*物理文件名*/
SIZE = 10MB , /*文件初始大小*/
MAXSIZE = UNLIMITED, /*数据文件最大值*/
FILEGROWTH = 10% /*数据文件增长量*/
)
LOG ON /*日志文件*/
( NAME = 'SCHOOL_Log',
FILENAME = 'D:\DB\SCHOOL_Log.LDF' ,
SIZE = 10MB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%
)
GO
use SCHOOL;
2.使用create table创建数据表Student。
/*创建学生表*/
create table Student(
Stu_id varchar(10) primary key NOT NULL,
Stu_name varchar(10) NOT NULL,
Stu_sex varchar(2) default ('男') , -- 性别默认值为男
Birthdate datetime ,
Phone varchar(8) ,
Addresss varchar(100) ,
Class_id varchar(4) NOT NULL ,
CONSTRAINT Phone CHECK (Phone like '^3935[0-9][0-9][0-9][0-9]') -- 电话号码共8位,以3935开头
);
3. 使用create table创建数据表Course。
/*创建课程表*/
create table Course(
Course_id varchar(4) primary key NOT NULL,
Course_name varchar(20) ,
Course_hour int default 60 , -- 学时,默认值60
Introduce varchar(200)
);
4. 使用create table创建数据表StudentGrade。
/*创建StudentGrade表*/
create table StudentGrade(
Stu_id varchar(10),
Course_id varchar(4),
Grade DECIMAL(9,2),
constraint pk_stu_con primary key(Stu_id,Course_id), -- 联合主键
constraint fk_stu foreign key (Stu_id) references dbo.Student(Stu_id), -- 外键
constraint fk_con foreign key (Course_id) references dbo.Course(Course_id)
);
5.删除SCHOOL数据库(注意,此操作进行前请先对数据库进行备份)。
drop database SCHOOL;
二、修改基本表的定义
1.修改列属性
(1)用SQL命令将Student表中的Stu_sex字段设为非空(not null)。
alter table Student alter COLUMN Stu_sex varchar(2) not null;
2.添加列
(1)在Course表中添加一列year,类型为int,字段允许空。
alter table Course add year int null;
(2)用SQL命令将year的数据类型改为smallint类型。
alter table Course alter column year smallint;
(3)在year字段添加约束,year 的属性值在2006-2013之间。
alter table Course add constraint ck_year check(year between 2006 and 2013);
3.删除列
(1)将Course表中的year字段删除。
alter table Course drop constraint ck_year;
alter table Course drop column year;
三、索引的创建与删除(如果不能成功完成,请分析原因)
1.分别建立以下索引
(1) 在Student表的Stu_name列上建立普通降序索引。
-- 普通降序索引
create index stu_name_ind on Student(Stu_name desc);
(2) 在Course表的Course_name列上建立唯一索引。
-- 唯一索引
create unique index cou_name_ind on Course(Course_name);
(3) 在StudentGrade表的Stu_id列上建立聚集索引。
-- 聚集索引
alter table StudentGrade drop constraint pk_stu_con;
create clustered index stu_id_ind on StudentGrade(Stu_id);
(4) 在StudentGrade表的Stu_id(升序),Course_id(升序)和Grade(降序)三列上建立一个普通索引。
create index sid_cid_gra_ind
on StudentGrade(Stu_id asc,Course_id asc,Grade desc);
2.删除索引
(1)删除Course表中的Course_name列上的唯一索引。
/*删除索引*/
drop index Course.cou_name_ind;
(2)将StudentGrade表的Stu_id列上的聚集索引删掉。
drop index StudentGrade.stu_id_ind;