SQL数据定义
每个关系
SQL基本类型
char(n):固定长度字符串,用户指定长度,也可以使用全称character。
varchar(n):可变长度字符串,用户指定最大长度n,等价于全称character varying。
int:整数类型(和机器相关的整数有限子集)
smallint:小整数类型(和整数相关整数类型子集)
numeric(p, d):定点数,精度由用户指定。这个数有p为数字(加上一个符号位),其中d位数字在小数点右边。这种类型的字段上,numeric(3,1)可以精确储存44.5,但是不能精确存储44.5或者0.32这样的数。
real,double precision:浮点数于双精度浮点数,精度与机器相关。
float(n):精度至少为n的浮点数。
char(10),当我们存放“asd”时,会追加7个空字符达到10个的长度,但是在varchar(10)则不会。存放相同值,但是类型为char或者varchar,在数据库系统下,有可能不同。推荐使用varchar。
SQL提供nvarchar类型存放使用Unicode表示多语言数据。然而,很多数据库甚至允许在var插入类型存放Unicode(采用UTF-8).
基本模式定义
create 他变了创建SQL关系
c r e a t e t a b l e t a b l e N a m e ( A 1 D 1 , A 2 D 2 , . . . , A n D n , < 完 整 性 约 束 1 > , < 完 整 性 约 束 1 > ) ; create table tableName( A_1 D_1,\\ A_2 D_2,\\ ..., \\ A_n D_n,\\ <完整性约束_1>,\\ <完整性约束_1> ); createtabletableName(A1D1,A2D2,...,AnDn,<完整性约束1>,<完整性约束1>);
SQL支持很多不同的完整性约束,在本节只讨论其中几个:
primary key(A j 1 _{j1} j1,A j 2 j_2 j2,A j 3 _{j3} j3,…A j m _{jm} jm):primary-key声明表示属性 A j 1 _{j1} j1,A j 2 j_2 j2,A j 3 _{j3} j3,…A j m _{jm} jm构成关系主码,主码属性必须非空且唯一。
foreign key(A k 1 _{k1} k1,A k 2 _{k2} k2</