【SQL Server数据库】数据库、表的创建、修改及删除和索引的使用

 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;

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、实验目的 1.掌握SQL Server 2005的安装。 2.掌握SQL Server Management Studio的启动和使用。 3.掌握SQL Server 2005服务器的配置和注册。 4.掌握SQL Server 2005查询的基本使用。 5.掌握应用SQL Server Management Studio创建数据库的方法。 6.掌握应用SQL Server Management Studio修改和查看数据库的方法。 7.掌握应用SQL Server Management Studio删除数据库的方法。 8.掌握应用Transact-SQL语句创建数据库的方法。 9.掌握应用Transact-SQL修改和查看数据库的方法。 10.掌握通过Transact-SQL删除数据库的方法。 11.掌握SQL Server 2005数据库和操作系统物理文件的关系。 12.掌握数据库的分离和附加方法。 二、实验内容 1.完成SQL Server 2005开发版的安装。 提示:若计算机系统中已经安装有SQL Server 2005系统,则在安装时需要选择安装命名实例。安装过程中身份验证模式选择“混合模式”并设置sa账户的密码。 2.利用SQL Server配置管理器启动、停止SQL Server服务(包括默认实例和命名实例),配置SQL Server服务为自动启动。 3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用TCP/IP和named pipes”。 5.利用SQL Server Management Studio注册安装的命名实例。 6.利用SQL Server Management Studio注册远程服务器。 提示:注册远程服务器时需要使用混合验证模式,利用sa账户和密码登录远程服务器。 7.启动SQL Server Management Studio,连接到服务器。新建一个查询,在其中输入如下代码: DECLARE @position int, @string char(5) SET @position = 1 SET @string = 'China' WHILE @position <= DATALENGTH(@string) BEGIN SELECT SUBSTRING(@string, @position, 1) 字符, ASCII(SUBSTRING(@string, @position, 1)) ASCII码 SET @position = @position + 1 END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值