一、SSMS基本操作
1、附加School数据库
对数据库右键,选择“附加”,导入选择的MDF格式文件
2、添加Test数据库
数据库右键,选择“新建数据库”
3、增加表dbo.Person设置,#P为主键,增加属性Ptype
编写指令如下:
USE test; CREATE TABLE Person( P# CHAR(18) NOT NULL, Pname CHAR(20), Page SMALLINT ); ALTER TABLE Person ADD PRIMARY KEY (p#); ALTER TABLE person ADD Ptype CHAR(10);
4、对表dbo.Person进行操作
(1)对表增加了两个人的信息,执行指令:
INSERT INTO person VALUES( '11111111', '一把手', 55, 'student'); INSERT INTO person VALUES( '00000000', '二把手', 44, 'student');
(2)修改第2条记录
UPDATE person SET pname='新的二把手', page = 18 WHERE p#='00000000'
(3)删除第2条记录
DELETE FROM person WHERE p#='00000000'
5、备份Test数据库
右键数据库-任务-备份
6、删除Person表
DROP TABLE Person
7、恢复Test数据库
右键Test数据库-任务-还原
记得勾选“关闭现有连接”,否则会出现报错“数据库正在使用......”
8、删除Test数据库
右键Test数据库-删除
记得勾选“关闭现有连接”,否则会出现报错“数据库正在使用......”
二、数据定义
1、创建关系数据库表Person
我看了School数据库的四个表,和题目给定的属性没重叠,我就重新创建个数据库Test在创建Person表了
运行指令:
USE test; CREATE TABLE Person( p# CHAR(10) PRIMARY KEY, pname CHAR(10), page SMALLINT, CONSTRAINT check_age CHECK(page>18) ); CREATE TABLE Room( r# CHAR(3) PRIMARY KEY, rname CHAR(20), rarea REAL ); CREATE TABLE PR( p# CHAR(10) REFERENCES Person(p#), r# CHAR(3) REFERENCES Room(r#), dates DATE );
2、更改表Person
增加属性Ptype,取消Page大于18的约束,把表Room中的属性Rname数据长度改成40。
ALTER TABLE Person ADD ptype CHAR(10) ALTER TABLE Person DROP CONSTRAINT check_age; ALTER TABLE Room ALTER COLUMN rname CHAR(40);
MODIFY如果不能用的话用ALTER就可以
3、删除表ROOM中的一个属性 Rarea。
ALTER TABLE Room DROP COLUMN Rarea;
4、取消表PR的外键。
右键PR的“键”-选择外键-删除
这是我导出后改的可执行指令,constraint的名称后面有一串数字,这是因为前面没有使用FOREIGN KEY的指令创建外键,SSMS自己生成的。生成外键要自己生成约束方便删除点,不然很麻烦。
USE Test ALTER TABLE PR DROP CONSTRAINT [FK__PR__r#__412EB0B6];
5、为表ROOM创建按R#降序排列的索引。
CREATE INDEX Roomno ON Room(R# DESC);
6、为表PERSON创建按P#升序排列的索引。
CREATE INDEX Personno ON Person(P#);
7、创建表PERSON的按Pname升序排列的唯一性索引。
CREATE UNIQUE INDEX Personno1 ON Person(Pname);
8、取消表PERSON的P#升序索引。
DROP INDEX Person.Personno;
三、心得
删除数据库Test后对其他数据库进行操作SSMS会显示:
无法连接到Test,重启一下SSMS就好了;
创建外键也可以用Foreign key的方法,不过这样要添加两个外键为主键;列名称可以和类型同名