1.数据类型
SqlServer | sql99 | 说明 | (拓展) |
---|---|---|---|
char(n) | character | 固定长度 | |
varchar(n) | character varying | 可变长度的字符串 | varchar2 是oracle的 |
nchar(n) | national characte | 固定长度的Unicode数据 | 字符复杂就用n |
nvarchar(n) | national character varying | 可变长度的Unicode数据 | 字符复杂就用n |
Datetime | 无 | 占用8字节空间,存储从1753年1月1日到9999年12月31日 | 没遵循规范 |
(2)字符串型
字符串型数据由汉字、英文字母、数字和各种符号组成。目前字符的编码方式有两种:一种是普通字符编码,另一种是 Unicode(统一字符编码)。普通字符编码指的是不同国家或地区的编码长度不一样,比如,英文字母的编码是 1 个字节(8 位),中文汉字的编码是2 个字节(16 位)。Unicode 编码不管对哪个地区、哪种文字均采用双字节(16 位)编码,即将世界上所有的字符统一进行编码。比如:'123’这样的数据如果采用普通字符编码保存需要 3 个字节的空间,而采用 Unicode 编码保存需要 6 个字节的空间。
2.约束
主码约束 PRIMARY KEY
非空约束 NOT NULL
检查约束 CHECK
唯一约束 UNIQUE
默认值约束 DEFAULT
外码约束 foreign key 从表(外键字段名称) references 主表(主键字段名称)
课堂创建三个表
create table Book(
book_ID char(10) primary key,
name varchar(30) not null,
author varchar(10),
publish varchar(20),
price decimal(6,2) check(price>0),
classify varchar(20)
)
create table Reader(
reader_ID char(10) primary key,
name varchar(8),
sex char(2),
birthdate datetime
)
create table Borrow(
book_ID char(10),
reader_ID char(10),
borrowdate datetime,
returndate datetime,
primary key(book_ID,reader_ID),
foreign key(book_ID) references Book (book_ID)
)
课后作业
create table Student(
sno char(7) primary key,
sname char(10) not null,
ssex char(2) check(ssex='男'or ssex='女'),
sage int check(sage>=15 and sage<=45),
sdept char(20) default('计算机系')
)
create table Course(
cno char(10) primary key,
cname char(20) not null,
ccredit int check(ccredit>0),
semester int check(semester>0),
period int
)
create table Sc(
sno char(7) ,
cno char(10),
grade int check(grade>=0 and grade<=100),
primary key(sno,cno),
foreign key(sno) references Student(sno),
foreign key(cno) references Course(cno)
)