1.修改字段类型 sms_coupon_product_relation(表名) product_id(字段) VARCHAR(50)(要修改的类型)
ALTER TABLE sms_coupon_product_relation MODIFY product_id VARCHAR(50);
2.表添加一列字段 如果要给students表新增一列birth
ALTER TABLE students ADD birth VARCHAR(50) NOT NULL COMMENT '商家';
3.修改列名和类型 要修改birth列,例如把列名改为birthday,类型改为BIGINT(20):
ALTER TABLE students CHANGE COLUMN birth birthday BIGINT(20) NOT NULL;
4.删除一列 要删除students表birthday列
ALTER TABLE students DROP COLUMN birthday;
5.添加索引
ALTER TABLE `sys_log` ADD INDEX view_time ( `view_time`)
6.添加唯一索引
ALTER TABLE students ADD UNIQUE INDEX uni_name (name);
添加一个唯一约束而不创建唯一索引
ALTER TABLE students ADD CONSTRAINT uni_name UNIQUE (name);
7.快照 如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLE和SELECT:
CREATE TABLE students_of_class1 SELECT * FROM students WHERE class_id=1;
8.写入查询结果集
INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id;
9.强制使用指定索引 如果我们知道如何选择索引,可以使用FORCE INDEX强制查询使用指定的索引
SELECT * FROM students FORCE INDEX (idx_class_id) WHERE class_id = 1 ORDER BY id DESC;
现在有表students score是列名
10.基本查询
SELECT * FROM students
11.条件查询
SELECT * FROM <表名> WHERE <条件表达式>
SELECT * FROM students WHERE score >= 80
SELECT * FROM <表名> WHERE <条件1> AND <条件2>
SELECT * FROM students WHERE score >= 80 AND gender = 'M';
SELECT * FROM <表名> WHERE <条件1> OR <条件2>
SELECT * FROM students WHERE score >= 80 OR gender = 'M';
SELECT * FROM <表名> WHERE NOT <条件> 等价于class_id <> 2,因此,NOT查询不是很常用
SELECT * FROM students WHERE NOT class_id = 2;
12.函数
floor函数返回小于等于该值的最大整数.
SELECT FLOOR(1.23), FLOOR(-1.23); -> 1,-2
CEILING函数向上取整 (使用像页数不够一页,也算一页)
SELECT CEILING(5.00005); ->6
SUM函数 计算某一列的合计值,该列必须为数值类型
AVG函数 计算某一列的平均值,该列必须为数值类型
MAX函数 计算某一列的最大值,不限于数值类型 ,如果是字符类型,MAX()和MIN()会返回排序最后和排序最前的字符
MIN函数 计算某一列的最小值,不限于数值类型,如果是字符类型,MAX()和MIN()会返回排序最后和排序最前的字符