demoMYSQL(时间日期型、字符串类型、列属性-空/描述/默认值)

时间日期型

use mydb;

-- 创建时间日期表

create table my_date(

d1 datetime,

d2 date,

d3 time,

d4 timestamp,

d5 year

)charset utf8;

-- 插入数据

insert into my_date values('2020-2-12 10:30:10','2020-2-12','10:30:10',

'2020-2-12 10:30:18',2020);

-- 时间使用负数

insert into my_date values

('2020-2-12 10:30:10','2020-2-12','-10:30:10',

  '2020-2-12 10:30:10',2020);

insert into my_date values

('2020-2-12 10:30:10','2020-2-12','-210:30:10',

  '2020-2-12 10:30:10',2020);

insert into my_date values

('2020-2-12 10:30:10','2020-2-12','-2 10:30:10',

  '2020-2-12 10:30:10',2020);-- -2表示过去两天,就是48个小时

-- year可以使用两位或者四位

insert into my_date values

('2020-2-12 10:30:10','2020-2-12','10:30:10', '2020-2-12 10:30:10',69);

insert into my_date values

('2020-2-12 10:30:10','2020-2-12','10:30:10', '2020-2-12 10:30:10',70);

-- timestamp:修改记录

update my_date set d1='2020-02-12 20:20:20' where d5=2069;

-- 使用函数获取时间戳

select unix_timestamp();

字符串类型

定长与变长的区别:

定长:数据固定长度,磁盘空间比较浪费但效率高(身份证、电话号码、手机、邮箱)

变长:磁盘空间比较节约但效率低(名字、地址)

文本字符串:

如果数据量非常大,通常超过255个字符就会使用文本字符串

文本字符串根据存储的数据的格式分为:

        text:存储文字、存储二进制数据的文件路径

        blob:存储二进制数据(但通常不用)

二进制数据(音频、视频、图片)可以存数据库,但是通常不用它存,而是直接存在磁盘或硬盘上(数据库只保存一下它的路径,然后直接通过路径在磁盘或硬盘上找)

枚举字符串(enum):

事先把所有可能出现的结果都设计好,实际上存储的数据必须是规定好的数据中的一个

枚举的使用方式:

        enum(可能出现的元素列表);

        例如:enum('男','女','不男不女','妖怪','保密');

        使用:存储数据,只能存储上面定义好的数据

列属性:

真正约束字段的是数据类型,但是这种约束很单一,需要有一些额外的约束,来更加保证数据的合法性,这就需要列属性

列属性包括:

        NULL/NOT NULL(是/否可以为空)

        default(默认值)

        Primary key (主键)

        unique key(唯一键)

        auto_increment(自增长)

        comment(描述)

空属性:

两个值:NULL(默认的)、NOT NULL(不为空)

-- 创建班级表

create table my_class(

name varchar(20) not null,

room varchar(20) null -- 代表允许为空,不写,默认就是允许为空

)charset utf8;

列描述:

comment,描述,没有实际含义,是专门用来描述字段,会根据表创建语句保存,用来给程序员(数据库管理员)来进行了解的

-- 创建表

create table my_teacher(

name varchar(20) not null comment '姓名',

money decimal(10,2) not null comment '工资'

)charset utf8;

默认值:

default,某一种数据会经常性地出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性地使用默认值

-- 默认值

create table my_default(

name varchar(20) not null,    -- 默认值null

age tinyint unsigned default 0,    -- 默认值0

gender enum('男','女','保密') default '男'    -- 默认值男

)charset utf8;

-- 插入数据

insert into my_default (name) values('阿飞');

insert into my_default values('男闺蜜',18,default);

你可能感兴趣的:(demoMYSQL(时间日期型、字符串类型、列属性-空/描述/默认值))