ALTER TABLE 表名 MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名]; 修改列类型 示例:alter table user modify username varchar(18) after password;first是将列改到第一列,after password是改到password列的后面
ALTER TABLE 表名 ADD [COLUMN] 列定义 [FIRST | AFTER 列名]; 添加列 示例:alter table user add age int;
ALTER TABLE 表名 DROP [COLUMN] 列名; 删除列
ALTER TABLE 表名 CHANGE [COLUMN] 旧列名 新列定义; 修改列名 示例:alter table user change username name varchar(20);
ALTER TABLE 原表名 RENAME [TO] 新表名; 修改表名
drop table 表名; 删除表 注意:change、first、after 列名是mysql的扩展部分,其他数据库未必有
3、DML语句
插入数据 INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2,...); INSERT INTO 表名 VALUES(值1,值2,…)
更新数据 UPDATE 表名 SET field1=value1,field2=value2,... [条件判断]; 示例:update user set username="abcd" where id=1;
删除记录DELETE FROM 表名 [条件判断];
4、DQL语句
基本使用
select name,age from user where id=1;(使用*代表查询所有记录)
使用distinct去掉重复记录
select distinct name from user;
条件查询
使用and(与)、or(或)、>、<、>=、<=、!=、=等运算符
排序
select * from user where age>12 order by id asc;(desc是降序,默认升序)
分页查询 limit 起始行,查询行数;(起始行从0开始)
select * from user limit 0,5;
聚合函数(会排除null值的数据)
sum(求和)、count(记录数)、avg(平均数)、max(最大值)、min(最小值)
select age,count(*) from user where id>5 group by age having count(*)>=2;(having后的语句是对聚合后的结果进行过滤)
表连接
select student.name,course.name from student,course where student.sno=course.sno; 外连接:左外连接(包含左边表所有的记录不管右边表有无匹配记录)、右外连接(包含右边表所有的记录不管左边表有无匹配记录) select student.name,course.age from student left join course on student.sno=course.sno;
子查询
查询需要的条件是另一个select语句的结果,关键字in、not in、=、!=、exists、not exists等 select * from student where id in (select sno from course where name=‘math‘);
记录联合 union(去掉重复)、union all(不去重) select id from student union select sno from course;
模糊查询
%替代任意个字符,_替代一个字符
select * from user where name like "张_";