mysql 复制表数据到另一个表_MySQL表的详细操作,sql数据类型

62ee6adc260e05819397062c2579901b.png

存储引擎

    • innodb
      • 是mysql5.5版本及以后默认的存储引擎
      • 存储数更加的安全
    • myisam
      • 是mysql5.5版本之前默认的存储引擎
      • 熟读比innodb更快,但是我们更注重的是数据的安全
    • memory
      • 内存引擎(数据全部存放于内存中)
      • 断电则数据丢失
    • blackhole
      • 无论存什么,都立刻消失(黑洞引擎)
  • 创建表的完整语法
    • 创建表首先需要切换到库下面:use qing; --切换到库qing下面进行操作,该命令可省略;分号
    • create table 表名(字段名1 类型(宽度) 字段名2 类型(宽度) 约束条件);
t3
    • 简写:create table 表名(字段名(id) 类型(int),字段名(name) 类型(char)(宽度));
use 
    • 修改表名
mysql
    • 宽度
一般情况下指的是对存储数据的限制
    • 宽度和约束条件到底是什么关系
      • 宽度是用来限制数据的存储
      • 约束个条件是在宽度的基础之上增加的额外的约束

整型

  • 分类
    • TINYINT
    • SAMLLINT
    • MEDUIMINT
    • INT
    • BIGINT
  • 作用
    • 存储年龄
    • 等级
    • id
    • 号码等等
  • 以TINYINT为例
mysql
    • tinyint默认情况下是带符号的
    • 超出限制只会存最大的可接收值
mysql
    • int默认是带符号存储的
    • 整型默认情况下都是带有符号的
mysql
    • 特例>>只有整型的括号里面的数字是表示显示宽度,而不是限制位数
    • id int(8);
      • 如果数字没有超过8位,那么默认用空格填充至8位
      • 如果数字超出了8位,那么有几位就存几位(但是也遵守最大范围)
mysql
    • 总结:针对整型字段,括号内无需指定宽度,因为它默认的宽度足够显示所有的数据了

严格模式

  • show variables like "%mode"; -- 查看严格模式
mysql
  • like "%mode"模糊匹配查询
    • 关键字like
    • %:匹配任意多个字符>>>多个任意字符mode
    • _:匹配任意单个字符>>>一个任意字符mode
  • 修改严格模式
    • set session -- 只在当前窗口有效
    • set global -- 全局有效
    • set global sql_mode='STRICT_TRANS_TABLES'; -- 修改成严格模式
mysql
    • 在修改完成后,重新进入服务端即可
mysql

浮点型

  • 分类
    • FLOAT
    • DOUBLE
    • DECIMAL
  • 作用
    • 记录身高
    • 体重
    • 薪资
  • 存储限制
    • float(255,30) 总共255位 ,小数部分最多占30位
    • double(255,30) 总共255位,小数部分最多占30位
    • decimal(65,30) 总共65位,小数部分最多占30位
  • 精确度
    • create table t1(id float(255,30));
    • create table t2(id double(255,30));
    • create table t3(id decimal(65,30));
    • insert into t1 values(1.11111111111111111111);
    • insert into t2 values(1.11111111111111111111);
    • insert into t3 values(1.11111111111111111111);
mysql
    • 精确度>>>:folat<double<decimal
    • 结合实际场景三者都能用,精确度最差的float也可以精确到小数点后7位,和我们小学圆周率的精确度一样:3.1415926

字符类型

  • 分类
    • char(差,请忽略) -- 定长(4) 数据超过四个字符直接报错,不够四个字符使用空格补全
    • varchar(窝差,请忽略) -- 变长(4) 数据超过四个字符直接报错,不够四个字符有几个存几个
    • 使用
      • create table t1(name char(4));
      • create table t2(name varchar(4));
      • insert into t1 values('a');
      • insert into t2 values('a');
mysql
      • char_length统计字段长度
        • select char_length(name) from t1;
        • select char_length(name) from t2;
mysql
      • 首先可以确定char硬盘上存的绝对是真正的数据,但是字符两端带有空格的,在显示的时候MySQL会自动将多余的空格剔除
      • 再次修改sql_mode 让MySQL不要做自动剔除操作
      • set globdl sql_mode='STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH';
mysql
    • char与varchar对比
      • char
        • 缺点:浪费空间
        • 优点
          • 存取都很简单
          • 直接按照固定的字符存取数据即可
          • jason egon alex wusir tank
          • 存按照五个字符存 取也直接按照五个字符取
      • varchar
        • 优点:节省空间
        • 缺点:
          • 存取比较麻烦
          • 1bytes+jason
          • 1bytes+egon
          • 1bytes+alex
          • 1bytes+tank
          • 存的时候需要制作报头
          • 取的时候也需要先读取报头,之后才能读取真正数据

时间类型

  • year:>>>YYYY(1901/2155)
    • 2020
  • date:>>>YYYY-MM-DD(1000-01-01/9999-12-31)
    • 2020-09-02
  • time:>>>HH:MM:SS('-838:59:59'/'838:59:59')
    • 20:23:36
  • datetime:>>>>YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
    • 2020-09-02 20:23:36
  • timestamp:>>>YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
    • 2020-09-02 20:23:36
创建表3 
  • 日期应用
创建    
  • datetime与timestamp的区别
在实际应用的很多场景中

枚举类型与集合类型

  • 分类
    • 枚举 enum 多选一
    • 集合set 多选多
  • 具体使用
mysql

总结

  • 字段类型

e74caccdf04a2350e3486c921b463fa6.png
  • 严格模式
  • 约束条件
    • not null -- 不能为空
    • zerofill -- 如果值长度不够,在前面补0表示。windows没效果,linux环境下可以看出来
    • unsigned -- 无符号(不存符号),既为非负数,用此类型可以增加数据长度一倍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值