-- ZEROFILL 填补0--自动添加unsigned
CREATE table number3(
n1 int UNSIGNED COMMENT"字段1",
n2 int ZEROFILL,
n3 int(3) ZEROFILL
)
INSERT into number3 values(1,1,1)
SELECT * from number3
desc number3
-- 浮点类型
-- FLOAT
-- FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
-- M 总长度(包含小数位),D 小数位
-- float ,double近似值,decimal精确值(货币)
CREATE TABLE number4(
n1 FLOAT(10,8) COMMENT"字段1",
n2 DOUBLE(10,8) COMMENT"字段2",
n3 decimal(10,8)COMMENT"字段3")COMMENT"字段表"
desc number4
INSERT into number4 VALUES(0.1+0.3,0.1+0.3,0.1+0.3)
SELECT *from number4
CREATE TABLE number5(
n1 FLOAT(10,2) COMMENT"字段1",
n2 DOUBLE(10,2) COMMENT"字段2",
n3 decimal(10,2)COMMENT"字段3")COMMENT"字段表"
desc number5
-- 四舍五入
INSERT into number5 VALUES(1.234,1.234,1.234),(1.235,1.235,1.235)
SELECT *from number5
-- 字符串类型
-- char定长(至多255字节) ,varchar 变长(至多65535字节)
-- char(10) varchar(10)'ok'-->char(10)10字节 ,varchar(10)2字节
-- char效率高不省空间(密码字段) ,VARCHAR(用户名称)省空间 text(至多65535字节 文章字段 效率最低) BLOB二进制对象(视频 ,音频数据)
-- 65535/3=21844+1,一个表中的所有char,varchar总长度不能超过这个21844 一个中文占3个字节
CREATE TABLE string(
s1 char(1),
s2 VARCHAR(21844))
CREATE TABLE string2(
s1 char(10),
s2 VARCHAR(10))
desc string2
INSERT into string2 VALUES('ab ','ab ')
select CONCAT(s1,'+'),CONCAT(s2,'+')from string2
-- 枚举类型 取一个值
-- enum中文名叫枚举类型,它的值范围需要在创建表时通过枚举方式显示指定,对于1~255个成员的枚举需要 1个字节存储,对于255~65535个成员,需要2个字节来存储,最多允许65535个成员
-- 忽略大小写
CREATE table string3(
sex enum('M','W','S'))
INSERT into string3(sex) values('W'),('w')
SELECT *from string3
-- SET类型 取多个值
CREATE TABLE string4(
aihao set('kanshu','guangjie','xuexi','kandianying')
)
insert into string4(aihao) values('kanshu'),('kanshu,xuexi,kandianying')
SELECT *from string4
-- 时间日期类型
-- year 1字节 ,time 3字节,date 4字节,datetime 8字节 timestamp 4字节
-- datetime(常用) timestamp(有范围,有时区,一般需要时区转换的公司需要) INT
-- timestamp 时间戳:格林威治时间1970-01-0100:00:00-2038~的秒(最大2147483637)
-- 默认是4位格式中,允许的值是1901~2155和0000.在2位格式中,允许的值是70~69,表示从1970~2069年
-- time的范围-838:59:59~838:59:59
CREATE TABLE mydate(
d1 year,d2 time,d3 date,d4 datetime,d5 timestamp
)
desc mydate
INSERT into mydate values(now(),now(),now(),now(),now())
SELECT *from mydate
-- json类型 json{
"name":"tom","age":18}键值双引号,对象{
name:'tom',age:18}
CREATE table object1(
o1 json
)
INSERT into object1 values('{"name":"tom","age":18}')
SELECT *from object1
-- 写一个完整表结构
CREATE TABLE admin(
id int unsigned PRIMARY key auto_increment COMMENT '编号',
username VARCHAR(30) not null UNIQUE COMMENT'会员名',
password char(32) not null COMMENT'密码',
age tinyint unsigned not null default 18 COMMENT'年龄',
sex enum('男','女') not null default'男 ' comment'性别',
email VARCHAR(60) not null unique COMMENT'邮箱',
salary DECIMAL(10,2) not null default 0 COMMENT'薪水',
created datetime not null COMMENT '创建时间'
)
desc admin
INSERT into admin(username,password,email,created)
values('张三',MD5('123456'),'11@163.com',NOW())
-- 注意delete清空数据 auto_increment不能重置问题
-- truncate 清空数据 auto_increment 可以重置
SELECT *from admin
truncate admin
还没有评论,来说两句吧...