-- 浮点数表
create table my_float
values(1000.10,1000.10,1000.10);
insert into my_float
values(1234567890,12345678.90,1234.56);
insert into my_float
values(3e38,3.01e7,1234.56);
insert into my_float
values(9999999999,99999999.99,9999.99); -- 后两个是最大值
-- 超出长度插入数据
insert into my_float
values(123456,1234.12345678,123.9876543); -- 小数部分可以超出长度
insert into my_float
values(123456,1234.12,12345.56); -- 最后一个整数部分超出
-- 创建定点数
create table my_decimal(
f1 float(10,2),
d1 decimal(10,2)
)charset utf8;
-- 插入数据
insert into my_decimal
values(12345678.90,12345678.90); -- 有效数据
insert into my_decimal
values(1234.123456,1234.123456); -- 小数部分可以超出长度
-- 查看警告
show warnings;
-- 插入数据
insert into my_decimal
values(99999999.99,99999999.99); -- 没有问题
insert into my_decimal
values(99999999.99,99999999.999); -- 进位超出范围
-- 创建时间日期表
create table my_date(
d1 datetime,
d2 date,
d3 time,
d4 timestamp,
d5 year
)charset utf8;
-- 插入数据
insert into my_date values
('2020-02-12 10:29:30','2020-02-12','10:29:30','2020-02-12 10:29:30',2020);
-- 时间使用复数
insert into my_date values
('2020-0212 10:29:30','2020-02-12','10:29:30,'2020-02-12 10:29:30',2020);
insert into my_date values
('2020-02-12 10:29:30','2020-02-12','-210:29:30','2020-02-12 10:29:30',2020);
insert into my_date values
('2020-02-12 10:29:30','2020-02-12','-2 10:29:30','2020-02-12 10:29:30',2020); -- -2表示过去两天,就是48小时
-- year可以实用2位或者4位
insert into my_date values
('2020-02-12 10:29:30','2020-02-12','10:29:30','2020-02-12 10:29:30',69);
insert into my_date values
('2020-02-12 10:29:30','2020-02-12','10:29:30','2020-02-12 10:29:30',70);
-- timestamp:修改记录
update my_date set d1='2020-02-12 20:13:45' where d5=2069;
-- 实用函数获取时间戳
select unix_timestamp();
-- 创建班级表
create table my_class(
name varchar(20) nit null,
room varchar(20) null -- 代表允许为空,不写,默认就是允许为空
)charset utf8;
-- 创建表
create table my_teacher(
name varchar(20) not null comment '姓名',
money decimal(10,2) not null comment '工资'
)charset utf8;
-- 默认值
create table my_default(
name varchar(20) not null,age tinyint unsigned default 0,
gender enum('男','女','保密') default '男'
)charset utf8;
-- 插入数据
insert into my_default (name) values('阿飞');
insert into my_default values('男闺蜜',18,default);
-- 增加主键
create table my_pril(
name varchar(20) not null comment '姓名‘,
number char(10) primary key comment
'学号:ba2017+0001,不能重复'
)charset utf8;
-- 复合主键
create table my_pri2(
number char(10) comment '学号:ba2017+0001'
course char(10) comment '课程代码:ba2589+0001',
score tinyint unsigned default 60 comment '成绩',
-- 增加主键限制:学号和课程号应该是对应的,具有唯一性
primary key(number,course)
)charset utf8;
-- 追加主键
create table my_pri3(
course char(10) not null comment '课程代码:ba2589+0001',
name varchar(10) not null comment '课程名字'
)charset utf8;
alter table my_pri3 modify course char(10) primary key
comment '课程代码:ba2589+0001';
alter table my_pri3 add primary key(course);
-- 向pril,2表插入数据
insert into my_pril values('古天乐','bc20200001'),
('蔡康永','bc20200002');
insert into my_pri2 values('bc20200001,'bc25890001',90),
('ba20200001,'bc25890002',85),
('ba20200002,'bc25890001',92);
-- 主键冲突(重复)
insert into my_pri1 values('刘涛','bc20200002',); -- 不可以,主键冲突
insert into my_pri2 values('bc20200001','bc25890001',100); -- 不可以,冲突
-- 删除主键
alter table my_pri3 drop primary key;
-- 自增长
create table my_auto(
id int primary key auto_increment comment '自动增长',
name varchar(10) ont null
)charset utf8;
-- 触发自增长
insert into my_auto(name) values('邓丽君');
insert into my_auto values (null,'成龙');
insert into my_auto values(default,'吴绮莉');
-- 指定数据
insert into my_auto values(6,'黄晓明');
insert into mt_auto values(null,'杨颖');
-- 修改自增长的值
alter table my_auto auto_increment=4; -- 向下修改(改小)不生效
alter table my_auto auto_increment=10; -- 向上修改(改大)
-- 查看自增长变量
show variables like 'auto_increment%';
-- 修改自增长步长
set auto_increment_increment=5; -- 一次自增5
-- 插入记录:使用自增长
insert into my_auto values(null,'杨紫');
insert into my_auto values(null,'张一山');
-- 删除自增长
alter table mt_auto modify id int primary key; -- 错误:主键理论上是单独存在的
alter table my_auto modify id int; -- 有主键的时候,千万不要再加主键-- 唯一键
create table my_unique1(
number char(10) unique comment '学号:唯一,允许为空',
name varchar(20) not null
)charset utf8;
create table my_unique2(
number char(10) unique comment '学号',
name varchar(20) not null, -- 增加唯一键
unique key(number)
)charset utf8;
create table my_unique3(
id int primary key auto_increment,
number char(10) not null,
name varchar(20) not null,
)charset utf8; -- 追加唯一键
alter table my_unique3 add unique key(number);
-- 插入数据
insert into my_uniquel values(null,'大雄'),
('bc20200001','胖虎'),(null,'小静');
insert into my_uniquel values
('bc20200001','哆啦A梦');
-- 删除唯一键
alter table my_unique3 drop index number;