2020-02-13

-- 浮点数表

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;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容