整型
#整型tinyint
CREATE TABLE t1(
id TINYINT);
INSERT INTO t1 VALUES(-128);
SELECT * FROM t1
CREATE TABLE t2(
id TINYINT UNSIGNED); // UNSIGNED代表无符号,即范围从(-128,127)变为(0,255)
INSERT INTO t2 VALUES(255);
SELECT * FROM t2
数值型
#bit类型
#bit(m) m在1-64
#添加数据 范围按照给定的位数来确定
#显示按照bit显示(1111)
#查询时仍可以使用添加的数据来查询
CREATE TABLE t3(
num BIT(8));
INSERT INTO t3 VALUES(255);
SELECT * FROM t3;
SELECT * FROM t3 WHERE num = 255;
小数型
#小数类型
CREATE TABLE t4(
num1 FLOAT,
num2 DOUBLE,
num3 DECIMAL(30,20));
INSERT INTO t4 VALUES(88.12345678912345,88.12345678912345,88.12345678912345);
SELECT * FROM t4;
字符类型
#字符串类型char varchar
#4是字符,不是字节,不区分是汉字还是字母
#utf8:1字符占3字节。gbk:1字符占2字节
#定长建议用char,访问速度更快;不定长用varcher
CREATE TABLE t5(
`name` CHAR(4),
`address` VARCHAR(4));
INSERT INTO t5 VALUES('你好中国', '北京你好');
SELECT * FROM t5;
#如果varchar不够用,可以使用mediumtext或者longtext,或直接使用text
CREATE TABLE t6(
`name1` TEXT,
`name2` MEDIUMTEXT,
`name3` LONGTEXT);
INSERT INTO t6 VALUES('你好啊中国澳门','你好啊中国台湾','你好啊中国香港');
SELECT * FROM t6;
日期类型
#时间类型
CREATE TABLE t7(
birthday DATE,-- 生日
job_time DATETIME, -- 记录年月日 时分秒
login_time TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP);-- 登录时间,如果希望login_time自动更新,需要配置NOT...
INSERT INTO t7(birthday, job_time)
VALUES('2024-03-01', '2024-03-01 17:40:00');-- 没输入login_time,自动更新当前时间
SELECT * FROM t7;