• Python基础之数据库:5、创建表的完整语法、MySQL数据类型


    一、创建表的完整语法

    1、创建表的语法

    create table 表名(

    ​ 字段名1 字段类型(数字) 约束条件,

    ​ 字段名2 字段类型(数字) 约束条件,

    ​ 字段名3 字段类型(数字) 约束条件,...)

    2、创建表的条件

    • create table: 创建表的关键字
    • 表名:表的名字
    • 字段名:该列字段的名字,例如Excel文档里的序号、姓名、年龄等字段
    • 字段类型(数字):该字段的字符类型,当类型为整型或者浮点型时可以不填(用于展示数字的长度),其他类型为:Bytes
    • 约束条件:可以是单个,也可以写多个,空格隔开就可以,主要用于约束该字段下的数据存储条件

    3、数字的含义

    ​ 在创建表的时候,字段名后会加上数据的类型,而数据类型的后面又会加上数字,数字在很多地方都是用来限制储存数据的长度,但是在整型中数字是用来控制展示的长度,因此在写整型时,通常不用加数字

    create table t12(id int(3));  不是用来限制长度
    insert into t12 values(12345);
    
    create table t13(id int(5) zerofill);  而是用来控制展示的长度
    insert into t13 values(123),(123456789);
    
    create table t14(id int);
    

    二、MySQL数据类型

    1、字段类型之整型

    整型的种类:

    • tinyint

      • 特点:最大可以储存1个bytes(正负号占一个bit)
    • smallint

      • 特点:最大可以储存2个biyts(正负号占一个bit)
    • int

      • 特点:最大可以储存4个biyts(正负号占一个bit)
    • bigint

      • 特点:最大可以储存8个biyts(正负号占一个bit)

    ​ MySQL中整型默认自带正负号,正负号会占用一个bit,也就是说整型的最大值会受正负号影响,下面可以通过添加数据的方式验证正负号的存在

    取消正负号:

    ​ 在创建表的阶段,在整型类型后添加关键词,就可以取消正负号

    ​ create table 表名(字段名 整型的类型 unsigned);

    2、字段类型之浮点型

    浮点型的种类:

    • float(m,d)
      • 特点:单精度浮点型 8位精度(4字节) m总个数,d小数位
    • double(m,d)
      • 特点:双精度浮点型 16位精度(8字节) m总个数,d小数位
    • decimal(m,d)
      • 特点:DECIMAL是一种定点类型,即所有值都有一个固定的小数位数。这 一点的重要性在于DECIMAL值不会像浮点数那样存在四舍五入的问题
      • M的取值范围是1〜65,D的取值范围是0〜30,且不超过M

    3、字段类型之字符类型

    字符类型的种类:

    • char(n)
      • 特点:固定长度,最多255个字符
    • carchar(n)
      • 特点:可变长度,最多65535个字符

    区别:

    ​ char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。

    4、字段类型之枚举与集合

    • 枚举(多选一)
      • 枚举指在创建表的时候,指定的字段名后可以填入枚举类型,在关键词后方括号内,填入多个数据值,后期在往该字段名下添加数据时,只能添加枚举后括号内多个数据值的其中一个,否则将会报错
      • 关键词:enum(数据值1, 数据值2,...)
    枚举:
    	多选一
    	create table t15(
        	id int,
          	name varchar(32),
           gender enum('male','female','others')
        );
     	insert into t15 values(1,'tony','猛男');
      	insert into t15 values(2,'jason','male');
     	insert into t15 values(3,'kevin','others');
    
    • 集合(多选多/多选一)
      • 集合和枚举的功能相似,也是在定义字段名阶段,在字段名后方添加集合关键词,在括号内填入多个数据值,在后期添加该字段名的数据的时候,可以填入指定的一个或多个数据值,指定外的数据值无法添加
      • 关键词:set(数据值1, 数据值2,...)
    集合
    	多选多/多选一
    	create table t16(
        	id int,
          	name varchar(16),
           hobbies set('basketabll','football','doublecolorball')
        );
     	insert into t16 values(1,'jason','study');
     	insert into t16 values(2,'tony','doublecolorball');
    	insert into t16 values(3,'kevin','doublecolorball,football');
    

    5、字段类型之日期类型

    类型的种类:

    datetime		年月日时分秒
    date			年月日
    time			时分秒
    year			年
    

    代码用法:

    create table t17(
    	id int,
      	name varchar(32),
     	register_time datetime,
     	birthday date,
     	study_time time,
     	work_time year
    );
    insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
    

    涉及到时间类型的一般无需我们手动添加,系统都会自动进行添加

  • 相关阅读:
    Redis单线程源码深入解析
    ARM & Linux 基础学习 / Ubuntu 下的包管理 / apt工具
    第十三届蓝桥杯国赛
    壹基金为爱同行到余村,以一步步健行换一滴滴净水
    EM聚类(下):用EM算法对王者荣耀英雄进行划分
    交换机与路由技术-31-扩展ACL
    适合小孩接触编程起步的几款软件,从游戏中学习编程
    第15章Linux之JavaEE定制篇-搭建JavaEE环境
    【EI会议征稿】第三届公共管理与大数据分析国际学术会议 (PMBDA 2023)
    SpringBoot读取Yml中基本数据类型、List、Map、数组数据
  • 原文地址:https://www.cnblogs.com/kangssssh/p/16919701.html