SQL Server建立基本数据表

建立好了名为TEST的数据库后,需要建立相应数据表和进行相关的一些操作,下面以选课表为例。
- 新建数据表和键的设置
CREATE TABLE tablename
(
列名 数据类型(长度) 列级约束
……
……
表级约束
)
下面为几个建立表的例子:

CREATE TABLE Student
(
    Sno int PRIMARY KEY, 
    Sname varchar(30) NULL,
    Ssex char(2) NULL CHECK(Ssex in ('男','女')),
    Sage int NULL,
    Sdep varchar(20) NULL
)

CREATE TABLE Course
(
    Cno char(3) PRIMARY KEY,
    Cname varchar(20) NULL,
    Teacher char(6) NULL 
)

上面建立一个名为Student和Course的数据表,分别设定Sno和Cno为主键,其他列后面的NULL表示该项数据可以为空,而Ssex后的CHECK表示Ssex的列级约束,限定Ssex只能是’男’或者是’女’。

有时所建立的数据表的主键为多个键合成的,此时对于主键的设定不能直接在列后面添加PRIMARY KEY关键字,而是采用如下形式:

CREATE TABLE SC
(
    Sno int REFERENCES Student(Sno),
    Cno char(3) REFERENCES Course(Cno),
    Grade int NULL,
    PRIMARY KEY(Sno,Cno)
)

在表的最后添加PRIMARY KEY(…),括号内为组合的主键。在此表中,Sno和Cno分别为前面Student和Course表格的主键,在SC表中作为外键,因而需要设定其与原主键表的关系,通过关键字REFERENCES 主键表名(键名) 来设定其响应的主键表。

同样的,有时会外键为合成外键,此时也不能在列级约束中表示其与主键表的关系:

CREATE TABLE BK
(
    Sno int,
    Cno char(3),
    Grade int NULL,
    DateIn smalldatetime,
    PRIMARY KEY(Sno,Cno,DateIn),
    FOREIGN KEY(Sno,Cno) REFERENCES SC(Sno,Cno)    
)

在本段代码中,Sno和Cno为BK表的合成外键,其依赖于主键表SC,其关系在本表中表示为:FORENGN KEY(Sno,Cno) REFERENCE SC(Sno,Cno),表示Sno和Cno为其联合外键,其对应参考的主键表为SC。
小结:
当主键为单列时,设置列级约束,直接在相应列后面天剑关键字PRIMARY KEY进行设置。
当主键为合成主键时,为表级约束,在数据表的最后进行主键设置:PRIMARY KEY(列名1,列名2……)
当外键为单列时,设置列级约束,在相应的列后面添加关键字REFERENCES 表名(列名)
当外键为合成外键时,为表级约束,在数据表最后进行外键设置:FOREIGN KEY(列名1,列名2) REFERENCE 表名(列名1,列名2)

数据表内容修改
在建立完数据表后,如果发现出错或者一些其他原因,可能需要对数据表进行修改,则可以使用ALTER TABLE 命令进行相应操作:

  1. 表名和列名的修改:
    对于已建立好的数据表,若要修改表名和列名,需要用到系统存储过程sp_rename来进行:
    sp_rename ‘原对象名’,’新对象名’ ,如果该语句不是在批处理的第一句,那么需要在该语句前加上EXEC命令。
    另一种修改列名的方法是通过下面命令:
    ALTER TABLE 表名 COLUMBN RENAME 旧列名 TO 新列名

  2. 表格中列的增加:
    使用:
    ALTER TABLE 表名 ADD 列名 列相关属性 列级约束,
    基本与正常创建表的时候新建列是一样的。
    如:
    ALTER TABLE Student ADD testcolumn2 char(2) NULL CHECK(testcolumn2 < 20)
    创建名为testcolumn2的新列,类型为char,数据长度为2,允许非空,设定CHECK约束该列的值小于20。

  3. 表格列属性的修改:
    修改列属性:如数据类型、长度等;
    使用:
    ALTER TABLE 表名 ALTER COLUMN 列名 新数据类型(长度) [NULL | NOT NULL](可选)
ALTER TABLE Student ALTER COLUMN testcolumn2 char(4) 

将上面建立的testcolumn2的数据长度改为了4,注意此处后面的列级约束NULL和NOT NULL,如果要单独修改该约束,修改的时候命令也应该为:
ALTER TABLE 表名ALTER COLUMN 列名 数据类型 NULL|NOT NULL,
而不是:
ALTER TABLE 表名ALTER COLUMN 列名 NULL|NOT NULL,即数据类型应该写上。
4. 增加列级约束
增加CHECK
可以通过:
ALTER TABLE 表名 ADD CHECK (…..)
或者
ALTER TABLE 表名 CONSTRAINT 逻辑名 CHECK (……)
前者由系统自动分别逻辑名,后者可以自定义逻辑名:

ALTER TABLE Student ADD CONSTRAINT CHKTEST CHECK (testcolumn2 >30)

定义了逻辑名为CHKTEST的CHECK 约束,此方法方便约束的删除操作。
同样的,如果需要增加其他列级约束如PRIMARY KEY,REFERENCES,FOREIGN KEY等,也是直接使用
ALTER TABLE Student ADD ……命令来添加。
5. 删除列或列约束
ALTER TABLE DROP COLUMN 列名

ALTER TABLE DROP 约束的逻辑名
如:

ALTER TABLE Student DROP CHKTEST 

删除前面定义的逻辑名为CHKTEST的CHECK约束。

ALTER TABLE Student DROP COLUMN testcolumn2

删除前面定义的testcolumn2列,注意,列可以删除的前提是该列没有被依赖关系或者相关约束。

小结:

ALTER TABLE table_name ALTER COLUMN column_name type_name(size) [NULL or NOT NULL]    --修改已存在列的属性
ALTER TABLE table_name ADD new_column_definition --添加新列

ALTER TABLE table_name ADD constraint_name   ---添加CHECK、PRIMARITY KEY,REFERENCESFOREIGN KEY等约束

ALTER TABLE table_name ADD CONSTRAINT check_name  CHECK(...)
--建立自定义逻辑名称的CHECK约束 
ALTER TABLE table_name DROP CONSTRAINT constraint_name --用于删除CHECK或者其他约束

ALTER TABLE table_name DROP COLUMN column_name --删除列

查看数据表属性
使用系统存储过程查看数据表相关属性
EXEC sp_help 表名 or ‘表名’
返回结果包括表 中各个列名称、类型、大小、约束等相关信息。

删除数据表

DROP TABLE table_name    --删除数据表

需要注意的是,所删除的表不能正被其他表的外键约束参考,如果有这种情况需要先解除约束关系,或者先删除引用该表的表,另外,系统表不能删除。

一、实验目的 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
发出的红包

打赏作者

弹指间LLL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值