数据库知识点六(完)

150 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

4、日期和时间列类型

 所有时间和日期列类型的类型名及其说明和所占的字节数见下表:

 

类型名说明
DATE‘YYYY-MM-DD’格式表示的日期值
TIME'hh:mm:ss'格式表示的时间值
DATETIME'YYYY-MM-DD hh:mm:ss'格式
TIMESTAMP'YYYYMMDDhhmmss'格式表示的时间戳值
YEAR'YYYY'格式的年份值

注意:(1)每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加

    (2)表示日期时必须先按:年,月,日的顺序给出

        (3)DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为"YYYY-MM-DD","hh:mm:ss"和"YYYY-MM-DD hh:mm:ss",对于DATETIME类型,日期和时间部分都需要。

        (4)TIMESTAMP

      时间戳列类型以YYYYMMDDhhmmss的格式来表示值,主要用于记录更改或创建某个记录。

 

5、常见数据类型

分类备注和说明数据类型说明
二进制数据类型存储非字符和文本的数据BLOB可用来存储图像
文本数据类型字符数据包括任意字母、符号或者数字字符的组合char固定长度的非Unicode字符数据
varchar可变长度非Unicode数据
text存储长文本信息
日期和时间日期和时间在单引号内输入time时间
date日期
datetime日期和时间
货币数据类型用于财务数据decimal定点数
Bit数据类型表示是/否的数据bit存储布尔数据类型
数值型数据该数据仅包含数字,包括整数、负数以及浮点数intsmallint整数
floatdouble浮点数

 

6、常见的完整性约束

类型说明
PRIMARY KEY主码约束主键)
UNIQUE唯一性约束
NOT NULL非空值约束
AUTO_INCREMENT用于整数列默认自增1
UNSIGNED无符号整数
DEAULT default_value默认值约束
DEAULT cur_timestamp创建新记录时默认保存当前时间(仅适用timestamp数据列)
ON UPDATE cur_timestamp修改记录时默认保存当前时间(仅适用timestamp数据列)
CHARACTER SET name指定字符集(仅使用字符串)

 

 

7、数据表的类型(在表上右键,点击对象信息,可以看到表的类型)

 在创建一个新的MySQL数据表时,可以为它设置一个类型,其中最重要的3中类型是:

(1)MyISAM:成熟、稳定和易于管理

(2)InnoDB:加入事物、数据行级锁定机制、外键约束条件、崩溃恢复等新功能(常用)

(3)HEAP:只存在于内存中,可做临时表

create table tmp(...)ENGINE=MyISAM

 

8、主键和外键

(1)索引:优化查询速度

(2)数据表之间的关联/引用关系是依赖具体的主键(primary key)和外键(foreign key)建立起来的。

(3)主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来

    注意:主键必须是唯一的

                主键应该是紧凑的,因此整数类型比较适合

(4)外键:引用另外一个数据表的某条记录

        注意:外键列类型尽可能与主键列类型保持一致

                 外键列应该加上NOT NULL

例子:

  主键:

CREATE TABLE student(
    sid INT NOT NULL auto_increment PRIMARY KEY,
    name VARCHAR(20) NOT NULL
)

 

  外键:(自动检查外键是否匹配,仅适用InnoDB)

CREATE TABLE score(
    cid INT NOT NULL auto_increment PRIMARY KEY,
    score INT,
    sid INT,
    FOREIGN KEY(sid)REFERENCES student(sid)
);

 

  创建完表之后再创建外键的方法:

  格式:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键) REFERENCES 另一个表名(参考主键);

ALTER TABLE score ADD CONSTRAINT sid FOREIGN KEY(sid) REFERENCES student(sid);

 

  删除外键:

  格式:ALTER TABLE 表名 DROP FOREIGN KEY 外键名字(注意:这里是外键的名字,而不是外键列名)

ALTER TABLE score DROP FOREIGN KEY sid

 

9、主表和从表

(1)当主表中没有对应的记录时,不能将记录添加到字表