1、设置ID字段自动增长,并将此字段设置为主键
USE tb_test;
CREATE TABLE ljh_one
(
ID INT(11) PRIMARY KEY auto_increment,
name VARCHAR(25),
dept_id INT(11),
salary FLOAT
);
2、增加一个字段,插入数据记录时该字段可以自动生成创建当前时间
datetime和timestamp的区别:
- datetime的默认值为
NULL
,timestamp的默认值不为NULL
,且为系统当前时间(current_timestatmp
)。如果不做特殊处理,且update没有指定该列更新,则默认更新为当前时间。 - timestamp是有最大年份限制。
- datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。
- 二者存储方式不一样: timestamp把客户端插入时间从当前时区转化为世界标准时间(UTC)进行存储,查询时,逆向返回。
datetime,基本上存什么是什么。 - 二者范围不一样。timestamp范围:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’; datetime范围:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。(原因是,timestamp占用4字节,能表示最大的时间毫秒为2的31次方减1,也就是2147483647,换成时间刚好是2038-01-19 03:14:07.999999。)
ALTER TABLE 表名 ADD create_time INT(11) AFTER name(字段名);
alter table tb_emp1 modify column create_time datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ;
SELECT*FROM tb_emp1;
举例:
drop table if exists tb_courses;
CREATE TABLE tb_courses
(
course_id INT NOT NULL AUTO_INCREMENT,
course_name CHAR(40) NOT NULL,
course_grade INT NOT NULL,
course_info CHAR(100) NULL,
PRIMARY KEY(course_id),
create_time INT(11) NULL
);
INSERT INTO tb_courses
(course_id,course_name,course_grade,course_info) VALUES (1,'Network',3,'Computer Network');
SELECT * FROM tb_courses;
alter table tb_courses add index one (course_name);
alter table tb_courses add index two (course_id);
alter table tb_courses modify column create_time datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
INSERT INTO tb_courses (course_name,course_info,course_id,course_grade) VALUES('Database','MySQL',2,3);
INSERT INTO tb_courses (course_name,course_info,course_id,course_grade) VALUES(3,'java',4,7);
SELECT * FROM tb_courses;
3、修改字段排列位置
ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2
4、增加name 和 dept_id两个字段 ,在这两个字段的基础上添加索引和删除索引
alter table 表名 add index one (name);
alter table 表名 add index two (dept_id);
show index from ljh_one;
alter table ljh_one drop index one;
show index from ljh_one;
创建表并设置ID字段为主键,通过create_time字段显示创建记录时间,创建索引,并向表中添加数据
USE tb_test;
drop table if exists ljh_two;
CREATE TABLE ljh_two
(
ID INT(11) PRIMARY KEY,
name CHAR(25),
dept_id INT(11),
create_time datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
);
alter table ljh_two add index one (name);
alter table ljh_two add index two (dept_id);
show index from ljh_two;
INSERT INTO ljh_two (ID,name,dept_id) VALUES (5,'happy',8);
INSERT INTO ljh_two (ID,name,dept_id) VALUES (1,'good',3);
SELECT * FROM ljh_two;
windows结果:
阿里云服务器结果:
由于我这边Linux服务器运行上述sql语句会报错,所以我把sql语句中的datetime
换成了timestamp NOT NULL