第3章:表的创建和管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章:表的创建和管理(一)
3.1SQL Server 2000中的数据类型
3.1.1 数字数据类型
1.整数类型
bigint:存储大小8个字节。
int:存储大小4个字节。
smallint:存储大小2个字节。
tinyint:存储大小1个字节。用于存储0到255的整型数据。
bit:用于存储整数,但只能取0,1或者NULL,可以用于做逻辑运算。
2.小数类型
float[(n)]:用于存储一定范围之内的浮点数,当n在1到24之间时,精度是7位,占有4个字节。当n在25到53之间时,精度位15个有效数字,占用8个字节。
real:用于存储一定范围的浮点数,占用4个字节,相当于float(24).
decimal[(p,[s])]和numeric[(p,[s])]数据类型:用于存储带小数点且数值确定的数据。[表示数值的全部位数,取值范围为1到38,其中包括小数的位数。但不包括小数点在内,p称为该数值的精度;s表示小数的位数。
money和smallmoney用来存储货币类型的数据,它们带有4位小数。在money和smallmoney 类型的劣种输入货币数据时,应当在货币数据后面加一个货币符号。输入负值时,应当在货币数据后面加上一个负号。
money占8个字节。smallmoney占4个字节。
3.1.2 字符串类型数据
1. 非Unicode字符串类型
char[(n)]:是一种长度固定的非Unicode字符数据,其长度为n个字节,n必须是1到8000之间的数值。如果没有指定n则默认为1。
varchar[(n)]:是一种长度可变的非Unicode的字符数据,其长度为n个字节,n必须是1到8000的数值。数据的存储大小为输入数据的字节的实际长度,而不是n个字节。如果没有定义n,则默认长度为1。
text:是一种服务器代码页中长度可变的非Unicode数据。
2. Unicode字符串类型
nchar(n):是一种长度固定的Unicode字符数据,其中包含n个字符,n的值必须在1到4000之间。数据的存储大小为n的两倍大小。如果没有指定n,则默认为1。
nvarchar(n):是一种长度可变的Unicode字符数据,其中包含n个字符,n的值必须借予1到4000之间。数据存储字节是所输入字符个数的两倍。所输入数据的字符长度可以为0。在没有指定n的时候,默认为1。
3. 二进制数据类型
binary[(n)]:是n个字节的定长二进制数据。
varbinary[(n)]:是n个字节的变长二进制数据。
3.1.3 日期时间数据类型
1. 日期时间数据类型datetime
时间精确度为3/100秒
2. 日期时间数据类型smalldatetime
精确度为1分钟
3. 日期时间数据的输入格式
Aug 1 2008 英文数字格式
2008-8-1 数字加间隔符格式
20080801 纯数字形式
4. 时间数据的输入格式
2005-9-8 5:36:59:99 pm 12小时格式
2005-9-8 17:36:59:99 pm 24小时格式
3.2 创建表
3.2.1 利用企业管理器创建表
在利用企业管理器创建数据库表时需要注意以下事项:
1.标识:其作用是自动增长的作用,实用于int 、smallint、tinyint、mumeric、decimal 等的系统数据类型。
2.标识种子:指定标识列的初始值。
3.标识递增值:指定标识列的递增值。
4.是RowGuid:指定是否是一个全局唯一标识符。
【全局唯一标识符】:在整个数据库或世界各地所有网络计算机的全部数据库中均为唯一的标识符列。
3.2.2 利用Transact-SQL语言创建表
基本格式:
CREA T TABLE [<数据库名称>.<所有者>.]<数据库表名称>
(<列定义>[ ,….,n])
<列定义>∷={<列名称> <数据类型>}
[[DEFAULT <常量表达式>]|[IDENTITY[(<种子>,<增量>)]] ]
[<列约束>][,...,n]
【案例】在企业管理器中创建一个名为studentinfo的数据库,然后在该数据库中创建三个表:student 表、courses表和Score表。接着在表中分别数据:
【案例2】:用Transact-SQL语言完成上述数据库表的创建
CREA TE DA TABASE StudentsInfo1
USE StudentsInfo1
CREA TE TABLE Students(
StudentNo nvarchar(8),StudentName nvarchar(50),
StudentSex nvarchar(1),BirthDate smalldatetime NULL,
Speciality nvarchar(50),Class nvarchar(4),
IsCY bit NULL,E-mail nvarchar(20),
QQ nvarchar(10),PhotoPath nvarchar(50),
HomeAddress nvarchar(50),PostalCode nvarchar(6),
PhoneCode nvarchar(16),Remark nvarchar(300) )
GO
CREA TE TABLE Courses(
CourseNo smallint NOT NULL,CourseName nvarchar (50))
CREA TE TABLE Scores(
RecID int IDENTITY(1,1) NOT NULL, StudentNo nvarchar(8),
CourseNo nvarchar(3),Score float NULL)
3.3删除表
3.3.1利用企业管理器来删除表
3.3.2利用Transact-SQL语言删除表
DROP TABLE语句用于删除一个或多个表,包括表中的所有记录、索引以及约束等。语法格式如下:DROP TABLE 〈表名〉[,。。。n]