目录
1. 数据类型
1.1 整数类型
1.2 小数类型
1.3 字符
1.4 日期类型
2. 修改表
2.1 修改表类型
1. 数据类型
1.1 整数类型
1.2 小数类型
1.3 字符
?1.4 日期类型
date表示日期,默认格式为‘YYYY-MM-DD’; time表示时间,格式为‘HH:ii:ss’; year表示年份; datetime与timestamp是日期和时间的混合类型,格式为’YYYY-MM-DD HH:ii:ss’
2. 修改表
2.1 修改表类型
ALTER TABLE 表名 MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
- 修改表 student 的 name 字段,将 varchar(20)改为 varchar(30)
mysql> alter table Student modify name varchar(30);
2.2??增加表字段
ALTER TABLE 表名 ADD [COLUMN] [FIRST | AFTER col_name];
- ?表 student 上新增加字段 age,类型为 int(3)
mysql> alter table student add column age int(3);
2.3?删除表字段
ALTER TABLE 表名 DROP [COLUMN] col_name
mysql> alter table student drop column age;
2.3 字段改名
ALTER TABLE 表名 CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
- 将 sex1 改名为 sex,同时修改字段类型为 int(4)
mysql> alter table student change sex1 sex int(4);
3. 面试题
3.1 查询效率优化?
使用主键查询或联合索引查询
3.2?一千万条数据的表, 如何分页查询?
数据量过大的情况下, limit offset 分页会由于扫描数据太多而越往后查询越慢. 可以配合当前页最后一条ID进行查询, SELECT * FROM T WHERE id > #{ID} LIMIT #{LIMIT} . 当然, 这种情况下ID必须是有序的, 这也是有序ID的好处之一。
3.3?订单表数据量越来越大导致查询缓慢, 如何处理?
分库分表. 由于历史订单使用率并不高, 高频的可能只是近期订单, 因此, 将订单表按照时间进行拆分, 根据数据量的大小考虑按月分表或按年分表. 订单ID最好包含时间(如根据雪花算法生成), 此时既能根据订单ID直接获取到订单记录, 也能按照时间进行查询。
3.4?NOW()和 CURRENT_DATE ()有什么区别?
NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒 CURRENT_DATE()仅显示当前年份,月份和日期
|