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

mysql中的DDL-常见的数据类型
mysql中的DDL-常见的数据类型_第1张图片
1.整形****有符号:可以插入负值,无符号不可以添加符号
mysql中的DDL-常见的数据类型_第2张图片
特点:
①列名后的类型默认是有符号的,无符号需要追加 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.小数
mysql中的DDL-常见的数据类型_第3张图片
mysql中的DDL-常见的数据类型_第4张图片
decimal可以简写为dec
mysql中的DDL-常见的数据类型_第5张图片
特点:
  ①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.字符型(串数据:文本型、二进制)
mysql中的DDL-常见的数据类型_第6张图片
mysql中的DDL-常见的数据类型_第7张图片
mysql中的DDL-常见的数据类型_第8张图片
①字符数:一个a也是一个字符,一个汉字也是一个字符

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

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

较长的文本
text
mysql中的DDL-常见的数据类型_第9张图片
mysql中的DDL-常见的数据类型_第10张图片
mysql中的DDL-常见的数据类型_第11张图片
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.日期型
mysql中的DDL-常见的数据类型_第12张图片
要求:字符和日期型要加单引号,数值型不用加
mysql中的DDL-常见的数据类型_第13张图片
mysql中的DDL-常见的数据类型_第14张图片
mysql中的DDL-常见的数据类型_第15张图片
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’;

你可能感兴趣的:(mysql数据库)