系统表和临时表
在sqlserver2008中数据表分为普通表,分区表,系统表和临时表
(1)系统表
在创建好的每个数据库中,系统都会自动添加一张系统表,该表存储了与系统有关的各种信息
例如sql server2008服务器配置,数据库设置,用户和表对象的描述信息
通常只有DBO权限的用户才能对该表进行操作
(2)临时表
临时表就是临时创建,不能永久保存,临时表分为两种,本地临时表和全局临时表
本地临时表的表名通常带有#标识符,它只对当前用户可见,当用户断开sql server2008
实例连接时,将自动删除该临时表,全局临时表的表名通常带有##标识符,全局临时表对于
当前sql server2008实例的所有用户都可见,当所有的引用该表的用户都断开与sql server2008
实例连接时,将自动删除该临时表,并且所有用户都可以创建临时表
//创建主键列
use 学生成绩管理系统
create table 学生信息
(
学号 nvarchar(50) not null primary key,
姓名 nchar(10) not null,
性别 nchar(10) not null,
出生日期 date null,
名族 nchar(10) null,
所属班级 nchar(10) null,
家庭住址 ntext null
)
//创建外键
use 学生成绩管理系统
create table 班级信息(
班级编号 nchar(10) not null primary key,
班级名 nchar(10) not null,
班级人数 int null,
所属班级 nchar(10) null,
所属系别 nchar(10) not null,
辅导员 nchar(10) not null
foreign key 所属班级 references 系别信息(系别编号)
foreign key 所属系别 references 辅导员信息(辅导员编号)
)
//创建默认值
分数 int null default(0)
//创建check约束
use 学生成绩管理系统
create table 教师信息
(
教师编号 nchar(10) not null primary key,
姓名 nchar(10) not null,
性别 nchar(10) not null check(性别 in (‘男‘,‘女‘)),
年龄 nchar(10) not null,
名族 nchar(10) not null,
籍贯 ntext null,
联系电话 nvarchar(30) null
)
//创建自动编号列
在sql server2008系统中,使用indentity关键字定义的字段叫做标识字段,标识字段体现了
数据的唯一性,当某个字段设置为标识字段时,则该字段中不允许存在重复的数据值,当一个新
记录添加到这个表中时,这个字段就被自动赋给一个新值,默认情况下是按照加递增
每个表只能有一个标识字段,若使用tinyint则只能想表中添加255个记录
inentity(seed,increment)
use 学生成绩管理系统
go
create table 系别信息
(
系别编号 nchar(10) indentity(0,1) primary key not null,
系别名称 nvarchar(50) null
)
//创建唯一列
姓名 nchar(10) not null unique,
使用Transact-SQL语句
使用存储过程sp_rename语句可以对数据表进行重命名
use 学生成绩管理系统
go
exec sp_rename ‘学生信息‘,‘Students‘
使用drop table语句可以删除数据表
use 学生成绩管理系统
go
drop table 学生信息
在删除表时,如果使用cascade,那么除删除表及其数据外,所有引用该表的视图,约束,例程或者触发器
也会被删除,也就是级联操作,如果使用restrict,那么只有当不存在依赖性时才能被删除
使用drop table删除的时表本身,即将表和表中的数据全部删除,如果只想删除表中的数据,而保留表本省
那么使用delete语句
use 学生成绩管理系统
go
delete 学生信息
//