MYSQL基础

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
  • 表student删除字段age
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()仅显示当前年份,月份和日期

3.5、exists与in区别

  • 外层小表,内层大表(或者将sql从左到由来看:左面小表,右边大表): exists 比 in 的效率高
  • 外层大表,内层小表(或者将sql从左到由来看:左面大表,右边小表): in 比 exists 的效率高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值