-- 1.按照时间分区-- 在var/lib/mysql/库名 目录下,会创建 phone#P#p1.ibd类似的数据保存数据文件CREATETABLE phone (id INT,name CHAR(20),created_time DATETIMENOTNULL)PARTITIONBY RANGE(YEAR(created_time))(PARTITION p0 VALUES LESS THAN (2010),PARTITION p1 VALUES LESS THAN (2011),PARTITION p2 VALUES LESS THAN (2012),PARTITION p3 VALUES LESS THAN (2013),PARTITION pmax VALUES LESS THAN MAXVALUE);--2. 如果后续数据都超过了2013,则可以对pmax分区进行再分区ALTERTABLE phone REORGANIZE PARTITION pmax
INTO(PARTITION p4 VALUES LESS THAN(2014),PARTITION p5 VALUES LESS THAN(2015),PARTITION pmax VALUES LESS THAN MAXVALUE
)
3 表描述
# 1. 描述一个表DESC/DESCRIBE/EXPLAIN president;SHOWCOLUMNS/FIELDSFROM president;DESC/DESCRIBE/EXPLAIN president '%name';// 只描述带有name的字段SHOWCOLUMNS/FIELDSFROM president LIKE'%name';# 2. 查看行数据的详细信息SHOWFULLFIELDS/COLUMNSFROM president;
# 1. 仅仅复制表的结构CREATETABLE cn_phone LIKE phone;# 2. 复制表结构和数据CREATETABLE us_phone
SELECT*FROM phone;# 3. 原表的部分复制CREATETABLE us_apple_phone
SELECT*FROM phone WHERE brand ='Apple';
四、行
1 插入
# 1.1. 插入一条,全列插入:必须包含所有的列数据INSERTINTO president VALUES(1,"shu","zhan");# 1.2. 插入多条,全列插入# 批量插入执行效率更高INSERTINTO president VALUES(2,"wu","wang"),(3,"si","li");# 2.1 插入一条,指定列名插入# 对于自增的键,如果赋值就取赋值的,不赋值则取默认的INSERTINTO president (last_name,first_name,id)VALUES("八","王",10);# 2.2 插入多条,指定列名插入INSERTINTO president (last_name,first_name,id)VALUES("六","赵",5),("七","田",6);# 3 set赋值方法:主键就没有给值,采取默认的即可INSERTINTO president SET first_name ="朱", last_name ="院长";
2 删除更新
# 1. 删除: 删除所有数据DELETEFROM cnip;-- 指定删除: 一般删除时候,必须加where子句,避免误删DELETEFROM cnip WHERE name ='zhangsan';# 2. 更新操作: 更新所有数据的nameUPDATE cnip SET name ='sz';-- 指定更新:更新时候,一般必须加where子句,避免误更新UPDATE cnip SET name ='sz'WHERE id =4;-- 指定更新多列数据UPDATE cnip SET name ='sz', color ='red'WHERE id =4;-- 更新某列的值为NULLUPDATE cnip SET name =NULLwhere id =4;