SQL 基础(二)数据表的创建、约束、修改、查看、删除
数据类型
数据类型 | 含义 |
---|---|
CHARACTER(n) | 字符/字符串。固定长度 n。 |
VARCHAR(n) 或 CHARACTER VARYING(n) | 字符/字符串。可变长度。最大长度 n。 |
BINARY(n) | 二进制串。固定长度 n。 |
BOOLEAN | 存储 TRUE 或 FALSE 值 |
VARBINARY(n) 或 BINARY VARYING(n) | 二进制串。可变长度。最大长度 n。 |
INTEGER(p) | 整数值(没有小数点)。精度 p。 |
SMALLINT | 整数值(没有小数点)。精度 5。 |
INTEGER | 整数值(没有小数点)。精度 10。 |
BIGINT | 整数值(没有小数点)。精度 19。 |
DECIMAL(p,s) | 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。 |
NUMERIC(p,s) | 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同) |
FLOAT(p) | 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。 |
REAL | 近似数值,尾数精度 7。 |
FLOAT | 近似数值,尾数精度 16。 |
DOUBLE PRECISION | 近似数值,尾数精度 16。 |
DATE | 存储年、月、日的值。 |
TIME | 存储小时、分、秒的值。 |
TIMESTAMP | 存储年、月、日、小时、分、秒的值。 |
INTERVAL | 由一些整数字段组成,代表一段时间,取决于区间的类型。 |
ARRAY | 元素的固定长度的有序集合 |
MULTISET | 元素的可变长度的无序集合 |
数据表示方式
长度 N
、精度 P
、小数位数 S
numeric(P,[S])
表示数据精度为 P,小数位数为 S
数据精度:能精确到小数点后的位数,小数点右侧位数
数据表创建
Management Studio 建表
建立表格其实就是定义每一列的过程
数据库表节点,新建
定义列属性,完成建表操作
SQL 指令建表
1 | -- SQL指令建立学生表 |
数据表约束
数据完整性
保证数据库中数据的正确性、有效性、相容性,完整性机制主要有:
- 约束 Constraint
- 默认 Default
- 规则 Rule
- 触发器 Trigger
- 存储过程 Stotred Procedure
Constrain
NULL / NOT NULL
==NULL 值表示“不知道、不确定、没有数据”==,仅当某字段值
必须输入
才有效时可设置NOT NULL
(eg:主键),仅用于定义列约束
定义约束名称后(若不定义,系统将自动创建),若数据录入错误,系统将提示报错信息,无 NOT NULL
约束下,系统缺省值为 NULL
1 | -- NOT NULL 约束 |
UNIQUE
唯一约束,定义某一列或多列组合取值
必须唯一
,被 UNIQUE 定义的列称为唯一键
,最多只能有一个 NULL 值,列约束、表约束均可
列约束
1 | -- UNIQUE 列约束 |
表约束
1 | -- UNIQUE 表约束 |
PRIMARY KEY
主键约束,其值不能重复,不能为 NULL,既可表约束又可列约束
PRIMARY KEY UNIQUE 区别:
- 基本表中可定义多个 UNIQUE 约束,但仅可有一个 PRIMARY KEY
- UNIQUE 约束的唯一键值可为 NULL ,PRIMARY KEY 约束的一列或多列组合,任意列都不能出现 NULL 值
- 同一列或同一组列,不能同时定义 PRIMARY KEY 和 UNIQUE
列约束
1 | -- PRIMARY KEY 列约束 |
表约束
1 | -- PRIMARY KEY 表约束 |
FOREIGN KEY
外键约束,约束某一列或几列作为外部键,包含外键的表称为从表(或参照表),主键所在表称为主表(或被参照表)。既可表约束又可列约束
为保证参照完整性,系统保证外键的取值为:
- 空值
- 主键取值
换言之,外键存在至少需要两张表,在第一张表中作为主键的属性在第二张表(从表,参照表)中做普通属性,则此键称为第一张表(主表,被参照表)的外键
列约束
1 | -- FOREIGN KEY 列约束 |
表约束
1 | -- FOREIGN KEY 表约束 |
CHECK
检查约束,限定某字段只能录入允许范围内的值,既可表约束又可列约束
注意:
- 一个基本表中可定义多个 CHECK
- 一个字段仅能定义一个 CHECK
- 多个字段定义的 CHECK 必须为表约束
列约束
1 | -- CHECK 列约束 |
表约束
1 | -- CHECK 列约束 |
数据表修改
Management Studio 修改表
SQL 指令修改表
ADD
ADD 方式为新加列自动填充 NULL 值,不可指定 NOT NULL
1 | -- ADD |
ALTER
注意:
- 列名不可变
- 含 NULL 值得列不可指定为 NOT NULL
- 存在于列中的数据不可改变数据类型、减少列宽
- 仅能修改 NOT NULL 、NULL 约束,其他约束需要通过“删除后重新添加“的方式完成修改
1 | -- ALTER |
DROP
仅用于删除完整性约束定义
1 | -- DROP |
数据表查看
右键 表 ,属性
查看表信息
数据表删除
Management Studio 删除表
表存在依赖对象时,不可删除
SQL 指令删除表
仅可删除匹配用户建立的表,用户权限要对应
1 | -- 删除基本表 |