资源描述
用T-SQL语句创建数据表例1:
use lwzz
go
create table lwqk
(zzbh char(14),
zzmc char(40),
cglb char(10),
xkfl char(20),
cbsmc char(30),
cbsj datetime,
bzry char(10),
zzzs text,
zzsy text,
bz text
)
修改数据表:
use lwzz
go
alter table lwqk
add email varchar(20) null
use lwzz
go
alter table lwqk
drop column email
use lwzz
go
alter table lwqk
alter column zzbh varchar(20) not null
DROP TABLE语句可以用来删除表。其语法为:
DROP TABLE 表名
需要注意的是DROP TABLE语句不能用来删除系统表。
例如:删除LWZZ库中的TABLE1表。
USE LWZZ
GO
DROP TABLE TABLE1
上机练习题:(要求能够用T-SQL语句完成下列所有题目)
1. 创建数据库XSCJ,数据文件初始大小为5MB,最大大小为50MB,数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB(默认为不限制),按1MB增长(默认是按10%比例增长)。
在上面的数据库中创建以下三张表
学生情况表(xs)结构
列名
数据类型
长度
是否为空
默认值
说明
学号
定长字符型
6
否
无
主键
姓名
定长字符型
8
否
无
专业名
定长定符型
10
是
无
性别
位型(bit)
1
否
1
出生时间
日期型
4
否
无
总学分
整数型
1
是
无
备注
文本型(text)
16
是
无
课程表(kc)结构
列名
数据类型
长度
是否为空
默认值
说明
课程号
定长字符型
3
否
无
主键
课程名
定长字符型
16
否
无
开课学期
整数型
1
否
1
只能为1-8
学时
整数型
1
否
无
学分
整数型
1
否
无
学生与课程表(xs_kc)结构
列名
数据类型
长度
是否为空
默认值
说明
学号
定长字符型
6
否
无
课程号
定长字符型
3
否
无
成绩
整数型
1
是
无
学分
整数型
1
是
无
2.使用CREATEDATABASE创建一个Student数据库,该数据库的主文件逻辑名称为Student1_data,物理文件名为Student1.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Student1_log,物理文件名为Student1.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。
向Student数据中,创建一个表名为"Student_info"的表,表的结构如下:
----------------------------------------------------------------------
字段 类型 是否为空 说明
----------------------------------------------------------------------
ID char(8) not null
name varchar(12) not null
sex char(2) not null
birthday datetime
class varchar(12)
score int 在0~750之间
address varchar(100)
yzbm char(6)
-----------------------------------------------------------------------------
use student
create table Student_info
(
ID char(8) not null,
name varchar(12) not null,
sex char(2) not null,
birthday datetime ,
class varchar(12),
score int check (score between 0 and 750),
address varchar(100),
yzbm char(6),
)
-----------------------------------------------------------------------------------------
修改student_info表,添加主键约束,指定学号号为主键值,并且创建一个聚簇索引;添加检查约束,指定性别输入的值只能是“男”,“女”;添加一个默认约束,当没有提供address值时,将其设置为“不明”。
----------------------------------------------------------------------------------------------------------------
use student
alter table student_info
add constraint PK_id primary key clustered (id)
alter table student_info
add constraint chk_sex check (sex in ('男','女'))
alter table student_info
add constraint del_address default '不明' for address
--------------------------------------------------------------------------------------------------------
创建一个规则,用于检查stuedent_info 表中yzbm字段,符合邮政编码的要求。
创建一个默认,用于当stuedent_info 表中brithday字段没有值时,将当前日期设置该字段的值。
--------------------------------------------------------------------------------------------------------
use student
go
create default address_def as
getdate()
go
exec sp_bindefault address_def,'student_info.birthday'
--------------------------------------------------------------------------------------------------------------------
将stuedent_info 表中score字段设置默认值0。
用两种方法实现:A:用Alter table 增加一个default约束,创建完后再删除这个约束;
3.使用create database该数据库名称为Company,有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为Company1和Company2,物理文件名为Company1.mdf和Company2.ndf。主文件是Company1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为Companylog1和Companylog2,物理文件名为Companylog1.ldf和Companylog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。
创建了一个雇员信息表Employee到company数据库,表的结构如下:
--------------------------------------------------------------------------------------
字段 类型 是否为空 说明
--------------------------------------------------------------------------------------
ID char(8) primary key
name varchar(10) not null
department char(20) null
age int null
sfz char(18) not null unqiue
memo text null
---------------------------------------------------------------------------------------
use company
create table Employee
(
ID char(8) ,
name varchar(10) not null,
department char(20) null,
age int null,
sfz char(18) not null,
memo char(100) null,
constraint u_sfz unique (sfz),
constraint pk_id primary key (id)
)
---------------------------------------------------------------------------------------------------
修改employee表,添加salary字段,整数类型;删除age字段;修改meno字段的类型为varchar(300)
----------------------------------------------------------------------
use company
alter table employee
add salary int null
alter table employee
drop column age
alter table employee
alter column memo varchar(300)
-----------------------------------------------------------------------------------
将employee表的salary数据值限制在1000-5000之间。
用Alter table 增加一个Check约束,创建完后再删除这个约束;
2. /*创建数据库XSCJ,数据文件初始大小为5MB,最大大小为50MB,数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB(默认为不限制),按1MB增长(默认是按10%比例增长)。*/
答案:
create database XSCJ
on
(name = XSCJ_Data,
filename = 'D:\XSCJ_Data.mdf',
size = 5,
maxsize = 50,
filegrowth = 10%
)
log on
(name = XSCJ_Log,
filename = 'D:\XSCJ_Log.ldf',
size = 2,
maxsize = 5,
filegrowth = 1)
use XSCJ
go
create table xs
(学号 char(6) primary key ,
姓名 char(8) not null ,
专业名 char(10) null,
性别 bit ,
出生时间 datetime not null,
总学分 int null,
备注 text
)
create table kc
(课程号 char(3) primary key ,
课程名 char(16) not null ,
开课学期 int not null check (开课学期 between 1 and 8),
学时 int not null,
学分 int not null
)
create table xs_kc
(学号 char(6) not null,
课程号 char(3) not null ,
成绩 int null ,
学分 int null
)
/*2.使用CREATEDATABASE创建一个Student数据库,该数据库的主文件逻辑名称为Student1_data,物理文件名为Student1.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Student1_log,物理文件名为Student1.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。*/
create database Student
on
(name = Student1_Data,
filename = 'D:\Student1_Data.mdf',
size = 10,
filegrowth = 10%
)
log on
(name = Student1_Log,
filename = 'D:\Student1_Log.ldf',
size = 1,
maxsize = 5,
filegrowth = 1
)
use Student
go
create table Student_info
( ID char(8) not null,
name varchar(12) not null,
sex char(2) not null,
birthday datetime ,
class varchar(12),
score int check (score between 0 and 750),
address varchar(100),
yzbm char(6)
)
/3.*修改student_info表,添加主键约束,指定学号号为主键值,并且创建一个聚簇索引;
添加检查约束,指定性别输入的值只能是“男”,“女”;添加一个默认约束,
当没有提供address值时,将其设置为“不明”。*/
use student
go
alter table student_info
add constraint PK_id primary key clustered (id)
alter table student_info
add constraint chk_sex check (sex in ('男','女'))
alter table student_info
add constraint del_address default '不明' for address
--创建一个规则,用于检查stuedent_info 表中yzbm字段,符合邮政编码的要求。
--创建一个默认,用于当stuedent_info 表中brithday字段没有值时,将当前日期设置该字段的值。
use student
go
create default address_def as
getdate()
go
exec sp_bindefault address_def,'student_info.birthday'
--将stuedent_info 表中score字段设置默认值。
展开阅读全文