Mysql数据库修改表信息常用命令
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()会返回排序最后和排序最前的字符