mysql中的DDL-常见的数据类型

mysql中的DDL-常见的数据类型
在这里插入图片描述
1.整形****有符号:可以插入负值,无符号不可以添加符号
在这里插入图片描述
特点:
①列名后的类型默认是有符号的,无符号需要追加 unsigned
②插入的数值超出 报异常 1264 - Out of range value for column
③不设置长度会有默认的长度
  长度是显示结果中的最大宽度,不够宽度在左边用0填充,
  但是,没有关键字 zerofill 就不会显示出0,默认宽度无效显示不出来0。
  如果,有关键字 zerofill 类型默认的就会变成无符号,不支持负数 unsigned 就没有意义了。

④长度规定不了范围,范围是由类型决定的。长度决定的是显示结果的样子

#1.设置有符号、无符号
CREATE TABLE tab_int(
t1 INT ZEROFILL,
t2 INT ZEROFILL
);

#查看表的结构
DESC tab_int;

#插入数据
#添加值的时候可以省略字段名,值的顺序和列的顺序一一对应
INSERT INTO tab_int
VALUES(-132);
INSERT INTO tab_int
VALUES(-13256,-123);
INSERT INTO tab_int
VALUES(123,123);

#删除表
DROP TABLE IF EXISTS tab_int;

SELECT *
FROM tab_int

2.小数
在这里插入图片描述
在这里插入图片描述
decimal可以简写为dec
在这里插入图片描述
特点:
  ①M和D。M小数位数+整数位数的=总位数,D是小数的位数

②M和D可以省略
    decimal M默认值:10 D的默认值:0。超过了就会报错
    float和double,会根据插入的数值的精度来决定精度
  ③定点型的精度较高,如果要求插入的精度较高(货币运算…)优先考虑
  ④其他的用float和double,为了节省空间float够用就用float

原则:
所选的类型越简单越好,能保存数值的类型越小越好

#创建表
CREATE TABLE tab_float(
f1 FLOAT(5,2),
f2 DOUBLE(5,2),
f3 DECIMAL(5,2)
);

#测试表
INSERT INTO tab_float
VALUES(123.4523,123.4523,123.4523);

#查询
SELECT * FROM tab_float
#每列下面各一个123.45
DESC tab_float;

#测试表
INSERT INTO tab_float
VALUES(123.456,123.456,123.456);

#查询
SELECT * FROM tab_float
#每列下面各一个123.46,结果四舍五入
#> Affected rows: 1出现一个警告

#测试表
INSERT INTO tab_float
VALUES(1523.4,1523.4,1523.4);
#报错> 1264 - Out of range value 超出数值范围

#删除表
DROP TABLE tab_float;

#创建表
CREATE TABLE tab_float(
f1 FLOAT,
f2 DOUBLE,
f3 DECIMAL
);
#测试表
INSERT INTO tab_float
VALUES(123.4523,123.4523,123.4523);
#> Affected rows: 1一列出错

#查询
SELECT * FROM tab_float
#查看表的结构
DESC tab_float;

3.字符型(串数据:文本型、二进制)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
①字符数:一个a也是一个字符,一个汉字也是一个字符

②char的M可以省略,默认:1。固定长度的字符:类型后的固定长度,用不用都开那么多空间
varchar的M不能省略。可变长度的字符:按数据长度,开空间

③固定长度例如:
男,女存储用char
存储姓名用varchar

较长的文本
text
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
set用于保存集合(一次能选多个成员)

#enum枚举(男女,季节)
CREATE TABLE tab_char(
c1 ENUM(‘a’,‘b’,‘c’)
)

#插入数据
INSERT INTO tab_char
VALUES(‘a’);
INSERT INTO tab_char
VALUES(‘b’);
INSERT INTO tab_char
VALUES(‘c’);
INSERT INTO tab_char
VALUES(‘M’);
INSERT INTO tab_char
VALUES(‘A’);

#清空表中的数据
TRUNCATE TABLE tab_char

SELECT *
FROM tab_char

#set集合()
CREATE TABLE tab_set(
s1 SET(‘a’,‘b’,‘c’,‘d’)
)

#插入数据
INSERT INTO tab_set
VALUES(‘a’);
INSERT INTO tab_set
VALUES(‘a,b’);
INSERT INTO tab_set
VALUES(‘a,c,d’);
#MySQL不区分大小写

4.日期型
在这里插入图片描述
要求:字符和日期型要加单引号,数值型不用加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
timestamp时间戳

特点
①datetime:不受时区影响,如果直插入年,默认提供时间
只能反映出插入时,当时的时区

②timestamp:受时区影响
更加接近当前时区的时间
受到当地的:实际时区、MySQL版本、SQLMode(语法模式)的影响

#创建表
CREATE TABLE tab_date(
t1 datetime,
t2 TIMESTAMP
)
#插入数据
INSERT INTO tab_date
VALUES(now(),now());
#查看
SELECT *
FROM tab_date

#查看时区
SHOW VARIABLES LIKE ‘time_zone’;

#设置时区
SET time_zone=’+8:00’;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值