droptableifexists my_int;createtable my_int(
a tinyintnotnull,
b smallintnotnull,
c mediumintnotnull,
d intnotnull,
e bigint);insertinto my_int(a,b,c,d,e)values(-128,2,3,1213121,2147483648);select*from my_int;
dropTABLEifEXISTS my_decimal;CREATETABLE my_decimal(
a decimal(10,2)notnull,
b float(10,2)notnull,
c double(5,2)notnull);#decimal小数位部分,如果超出范围时:小于5会舍弃,大于等于5会报错!insertinto my_decimal values(99999999.99,9999999.991,999.1288);SELECT*from my_decimal;
执行结果:
a
b
c
99999999.99
10000000.00
999.13
代码示例(关于decimal):
DROPTABLEIFEXISTS t2;CREATETABLE t2 (
i INT,
d1 DECIMAL(60,30),
d2 DECIMAL(60,30));INSERTINTO t2 VALUES(2,0.00,0.00),(2,-13.20,0.00),(2,59.60,46.40),(2,30.40,30.40);-- SELECT * from t2;SELECT i,sum(d1)AS a,sum(d2)AS b FROM t2 GROUPBY i ;
执行结果:
i
a
b
2
76.800000000000000000000000000000
76.800000000000000000000000000000
四、 字符串
char 定长 字符串的最大长度为255;
varchar 变长 理论长度是65536 自动节省空间
text 文本字符串
blob 二进制数据(不常用)
enum 枚举字符串 例如:字段性别 sex enum(‘男’,‘女’)
set 集合字符串
代码示例(关于enum(枚举)):
droptableifexists my_enum;CREATEtable my_enum(
sex enum('男','女'));# 枚举insertinto my_enum values('男');#只能插入已有的枚举对象;select*from my_enum;
执行结果:
sex
男
代码示例(关于varchar):
droptableifexists my_varchar;createtable my_varchar(
s varchar(6)notnull);insertinto my_varchar value('abcdef');#指定长度后,插入的数据不能超过指定长度;select*from my_varchar;
droptableifEXISTS aaa;createtable aaa(
x TINYINTUNSIGNEDnotnull,# 1个字节 8位 0 ~ 255
y TINYINTnotnull);insertinto aaa(x,y)values(127,127);insertinto aaa(x,y)values(200,127);SELECT*from aaa;
执行结果:
x
y
127
127
200
127
代码示例(关于UNSIGNED):
droptableifexists my_unsigned;createtable my_unsigned(
id intnotnullauto_increment,
a tinyintunsignednotnull,
b tinyintnotnull,primarykey(id));insertinto my_unsigned(a,b)values(255,127);select*from my_unsigned;
执行结果:
id
a
b
1
255
127
代码示例(关于UNSIGNED和ZEROFILL):
DROPTABLEifEXISTS int11;CREATETABLE int11(
id intnotnullauto_increment,
a int(11)unsigned ZEROFILL notnull,# unsigned 可带可不带,加zerofill属性的列默认是无符号的。
b int(11)notnull,PRIMARYKEY(`id`));INSERTinto int11 values(null,1,1);select*from int11;
dropTABLEifEXISTS my_date;createtable my_date(
a datetime,
b date,
c time,
d timestamp,
e year)charset utf8;INSERTINTO my_date ( a, b, c, d, e )VALUES('1945-09-02 12:10:45','1945-09-02','11:11:11',NULL,'45');INSERTINTO my_date ( a, b, c, d, e )VALUES('1945-09-02 12:10:45','1945-09-02','11:11:11',null,'2019');-- 当给timestamp传入 null 时,会自动插入当前的时间;SELECT*FROM my_date;