名称 | 大小 | 说明 |
---|---|---|
char(n) | 占n个字节 | 只能显示英文字符 |
nchar(n) | 2n字节+2字节额外开销 | Unicode编码,支持中文 |
ntext | 每字符2字节 | Unicode编码 |
nvarchar(max) | 2n字节 + 2字节额外开销 | 根据存储字符数字节占用空间动态变化,Unicode |
varchar(n) | n字节 + 2字节额外开销 | 仅支持英文,动态变化 |
名称 | 大小 |
---|---|
binary(n) | 占n个字节 |
image | 每个字符1字节 |
varbinary(n) | 每字符1字节 |
varbinary(max) | 每字符1字节 + 2字节额外开销 |
名称 | 大小 | 说明 |
---|---|---|
Date | 占3个字节 | 保存月日 |
Datetime | 8个字节 | 保存年月日秒,精确到最近的3,3ms |
Null:表示当前字段值未知,未插入,不可用,或者稍后添加等。
Default:表示表中数据默认取值。
unique约束与not null 约束没有关系, unique只限制有值的情况下每一个值不能相同,可以有多个null 值。
create table table_name(# 是括号字段名1 类型 额外条件(没有就省略), # 逗号隔开字段名2 类型 额外条件,xxxx,xxx
)create table 表名
(<列名> <数据类型> [<列级完整性约束>],<列名> <数据类型> [<列级完整性约束>],xxxx,[<表级完整性约束条件>]
)
# 具体例子
create table student_table(stu_no char(10) Primary key,name char(6) Not Null,sex char(2),birthday Datetime,class_no char(4) # 最后一个不需要逗号
)
# 表级完整性约束定义
Primary key(字段名1, 字段名2, 。。。。) # 主码定义
FOREIGN KEY (字段1) REFERENCES 表名(字段名2)# 外键定义
Alter table <表名>[add <新列名> <数据类型> [完整性约束]] # 添加新列[drop <完整性约束名>] # 删除完整性约束[alter column <列名> <数据类型>]; # 修改原有的列定义Drop table <表名> [restrict | cascade]
# 大体查询语句框架
SELECT [ALL | DISTINCT]<目标表达式> # 表示查询结果需要的字段
[, <目标表达式>] # 如果有多个字段,逗号进行隔开
FROM <表或视图> [, 表或者视图] # 从哪里查询数据
[WHERE <条件表达式>] # 条件是什么
[GROUP BY <列名1> [HAVING <条件表达式>]] # 是否需要进行分组
[ORDER BY <列名2> [ASC|DESC]] # 结果是否需要进行排序,对那个字段进行排序
上一篇:【C++知识点】继承