表操作
- 添加字段
ALTER TABLE tab_name ADD column_name varchar(200) DEFAULT NULL COMMENT '备注';
- 修改字段类型、长度、注释等
ALTER TABLE tab_name MODIFY COLUMN column_name varchar(100) DEFAULT NULL COMMENT '备注2';
-- 查看表信息
SHOW TABLE STATUS
-- 复制表(带数据)(不会复制索引等信息)
CREATE TABLE gg SELECT * from zxl_user;
-- 复制表(不带数据)
CREATE TABLE gg LIKE zxl_user;
-- 查询创建表语句
show create table zxl_user;
索引
- 添加索引
--添加普通索引
ALTER TABLE tab_name ADD INDEX index_name (column_name);
数据库
--选择数据库(localsql为例)
use localsql;
-- 创建数据库(指定编码集)
CREATE DATABASE IF NOT EXISTS localsql CHARACTER set utf8;
-- 删除数据库
DROP localsql;
-- 修改数据库全局属性(全局属性只有字符集和排序规则)
ALTER DATABASE localsql CHARACTER set utf8;
存储引擎
-- 查看数据库版本支持的引擎
show ENGINES
-- 修改某个表存储引擎
ALTER TABLE zxl_user ENGINE = InnoDB;
表数据
限制结果个数(LIMIT)(可用于分页)
select * from user limit 1; --获取到第一条
-- 获取到跳过前两条数据之后的5条数据
select * from user limit 2,5;
根据日期年月日查询
-- 年份是2018年的,month();dayofmonth()分别对应月和日
select * from zxl_user u where YEAR(birth_day) = 2018;
-- 年月日是今年的语句,月、日同理
select * from user u where year(birth_day) = year(curdate());
计算时间间隔
-- 创建时间大于10天的
SELECT * from zxl_user u where (TO_DAYS(CURDATE()) - TO_DAYS(u.create_time)) >5
-- 方案2
SELECT * from zxl_user u where TIMESTAMPDIFF(DAY,u.create_time,CURDATE()) > 5;
时间增加减少DATE_ADD; DATE_sub
SELECT * from zxl_user u where DATE_ADD(u.create_time, INTERVAL 10 YEAR);
名字是有四个字符构成的
select * from user where username like '____';
mysql 排序分页
order by执行顺序在limit前面,在Where之后,在group by 之后
select * from user order by id desc limit 2,4