数值类型,约束条件

目录

文章目录

一、数值类型

1)整数类型

2)浮点数类型

3)字符类型

        定长字符串:

        变长字符串:

        TEXT类型:

4)日期类型

二、约束条件

2.1)主键约束 PRIMARY KEY

    1)主键约束:

2)自增长

2.2非空约束(NOT NULL)

2.3唯一性约束(UNIQUE)

2.4检查约束(CHECK)

2.5外键约束

2.6级联动作




一、数值类型

1)整数类型

        TINYINT类型:微小整型,一个字节,

        SMALLINT:小整型,两个字节

        MEDIAINT类型: 三个字节

        INT类型:占用四个字节,保存范围+-21亿

        BIGINT类型: 占用八个字节

2)浮点数类型

        DOUBLE(M,N)

                M是一个数字,表示数字的总位数

                N是一个数字,表示小数位的位数

                DOUBLE(7,2)可以保存一个七位数,其中2位是小数,整数5位

                        最大为99999.99

                        其中小数位如果多了会四舍五入,只会看小数位数的后一位,小数位可以不写

                        整数位超出会报错,如果四舍五入大于数字的总位数也会报错

CREATE DATABASE day02db CHARSET=UTF8;
USE day02db;
-- 整数类型:浮点型
CREATE TABLE  person(
    id INT,
    name VARCHAR(20),
    salary DOUBLE(7,2)
)CHARSET =UTF8;
INSERT INTO person(id, name, salary) VALUES (1,'Tom',12345.67);//12345.67
INSERT INTO person(id, name, salary) VALUES (2,'Jack',12345.6745);//12345.67
INSERT INTO person(id, name, salary) VALUES (2,'Jack',12345.678);//12345.68
INSERT INTO person(id, name, salary) VALUES (3,'jerry',123456.78);//报错
INSERT INTO person(ID, NAME, SALARY) VALUES (4,'Lucy',99999.996);//报错
SELECT id,name,salary FROM person;

3)字符类型

        定长字符串:

                CHAR类型是定长字符串

                CHAR(m):m是一个数字,表示长度,单位是字符。最大可取255

                CHAR类型在磁盘中开辟的长度是固定的

                优点:在磁盘中保存每条记录的长度是固定的,读取速度快

                缺点:在磁盘中占用空间固定,不论实际保存多少数据,都要占够空间,磁盘空间浪费

        变长字符串:

           VARCHAR类型:

                        VARCHAR(m):m是一个数字,表示字符串的长度,最大值为65535

                        实际占用磁盘空间按照实际保存的数据而定

                        优点:磁盘空间占用取决于实际保存的数据,因此不造成磁盘空间浪费

                        缺点:由于数据长度不一致,会导致读取效率低

        TEXT类型:

                TEXT;

4)日期类型

        格式固定

        DATE:保存年月日“1987-10-16”

        TIME:保存时分秒“10:10:10”

        DATETIME:保存年月日时分秒“1987-10-16 10:10:10”

        TIMESTAMP(时间戳):保存UTC时间,记录1970年到现在所经过的毫秒,默认当前时间

        图片,视频,音频等在服务器上存储,在数据库中存储文件的路径

二、约束条件

2.1)主键约束 PRIMARY KEY

        可以为表添加约束条件,可以限制对表的操作必须符合我们施加的约束条件,否则数据库会            拒绝该操作

    1)主键约束:

                主键约束要求该字段的值必须非空且唯一

                主键约束一般会为表中第一个字段添加,并且通过该字段取名为“id”;               

DROP TABLE userinfo;
CREATE TABLE userinfo(
                         id INT  PRIMARY KEY ,
                         username VARCHAR(20),
                         password CHAR(32),
                         mobile CHAR(11),
                         balance DOUBLE(8,2),
                         created_time DATETIME
)CHARSET=UTF8;
DESC userinfo;
INSERT INTO userinfo(id) VALUES (1);
INSERT INTO userinfo(id) VALUES (1); //报错,被修饰的不能重复
INSERT INTO userinfo(id) VALUES (null); //报错,被修饰的不能为空
SELECT id FROM userinfo;


2)自增长

        具有主键约束的字段通常主键的生成方式由系统完成,而自增就是其中一种方式

         在创建表时为主键字段添加自增AUTO_INCREMENT

CREATE TABLE user2(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(30),

age INT(3)

)
        

        当主键字段具有自增时,插入数据可以忽略主键字段 

        当主键字段具有自增时,可以显示的向主键中插入null值,但此时主键字段仍在使用自增

2.2非空约束(NOT NULL)

        被非空约束施加的字段,该字段的值不能为null

        示例

                创建表时为字段添加非空约束

        CREATE TABLE user3(

                id INT PRIMARY KEY AUTO_INCREMENT,

                name VARCHAR(30) NOT NULL,   # name字段施加非空约束

                age INT

                        )

                插入数据时,不能向具有非空约束的字段中插入null值

2.3唯一性约束(UNIQUE)

         具有唯一性约束的字段值不允许重复,但是可以为NULL

        插入数据时,不可以将重复的值插入到具有唯一性约束的字段中

2.4检查约束(CHECK)

        检查约束允许我们自定义约束条件,仅当满足我们指定的条件才可以进行操作

        插入数据时,age字段的取值必须符合CHECK约束

CREATE TABLE user5(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(30),

age INT CHECK(age>0 AND age<120 ) # 要求age字段的值>0且<120,不符合就报错

);

2.5外键约束

        外键约束是一种限制,通过对表的行或列的数据做出限制,来确保表的数据完成性、关联性

        功能:建立表与表之间的某种约束的关系,由于这种关系的存在,能够让表与表之间的数              据,更加的完 整,关连性更强,为了具体说明创建如下部门表和人员表。

        语法:CONSTRAINT  外键名称  FOREIGN KET(外键字段)

                   BEFERENCES 要关联的表(要关联的列)

-- 创建表时直接建立外键

CREATE TABLE emp

(

        id INT PRIMARY KEY AUTO_INCREMENT,                 

        name VARCHAR(32) NOT NULL,

        age INT,

        salary DOUBLE(10, 2),

        dept_id INT,

        CONSTRAINT dept_fk FOREIGN KEY (dept_id) REFERENCES dept (id)

//添加一个名为dept_fk的外键约束,将dept_id列与dept表中的id列建立关联。

);

2.6级联动作

        RESTRICT(默认) : ON DELETE RESTRICT ON UPDATE RESTRICT

                当主表删除记录时,如果从表中有相关联记录则不允许主表删除

                当主表更改主键字段值时,如果从表有相关记录则不允许更改

        CASCADE:数据级联更新 ON DELETE CASCADE ON UPDATE CASCADE

                当主表删除记录或更改被参照字段的值时,从表会级联更新     

        SET NULL : ON DELETE SET NULL ON UPDATE SET NULL

                当主表删除记录时,从表外键字段值变为null

                当主表更改主键字段值时,从表外键字段值变为null   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值