1.修改表 添加列: 格式:alter table 表名 add 字段 删除列: 格式:alter table 表名 drop 字段 修改列: modify:创建一个新的字段去覆盖原来的字段,只能修改属性 alter table 表名 modify 创建字段 change:可以修改属性,可以修改名称 格式:alter table 表名 change 旧字段名称 字段名称 属性 例如:修改名称 alter table student change sex sex1 int; 例如:修改属性 alter table student change sex1 sex1 varchar(50); 修改表的字符集: 格式:alter table 表名 chararter set 字符集; 2.操作数据:增删改查 insert:添加 格式:insert into 表名(字段1,字段2...) values(值1,值2); 注意:id为主键时,id可给可不给 有多少个字段,要有多少个值 引号可以给数值加上,并赋值给int数据类型的字段 select:查询 格式:select 字段 from 表名 where字句:筛选数据 --比较运算符 > < <= >= = <> 大于 、小于、大于(小于)等于、不等于 例如:select * from student where age >=21; --between...and...显示在某一区间的值 例如:select * from student where age between 21 and 23; --in(set)显示在in列表中的值,例:in(100,200); 例如:select * from student where age in(21,23); 注意:这是等值判断,判断多个值 --like '张_' 模糊查询,使用%和_ 例如:select * from student where name like '张%'; 注意:%表示匹配所有,_表示匹配一个 -- Is null 判断是否为空 例如:select * from student where name is not ull; --逻辑运算符 --and 多个条件同时成立 例如:select * from student where name="zl" and sex="男"; --or 多个条件任一成立 例如:select * from student where name="zl" or sex="男"; --not 不成立,例:where not(expection>10000); 例如:select * from student where not name="zl" limit分页: 格式1:数据 limit 行数; 显示多少行数据 格式2:数据 limit index,行数; 从下标开始显示多少行数据 updata:修改 格式:updata 表名 set 字段=值 where 筛选条件; 例如:updata student set sex="男"; 例如:updata student set sex="男" where id between 10012 and 10014; 注意:如果updata修改没有加where子句,会把当前字段中所有数据都进行修改 delete:删除 格式:delete from 表名 where 筛选条件; 例如:delete from student; 例如:delete from student where sex="男"; mysql对大小写不敏感,但是表名区分大小写 distinct:去重 格式:select distinct 字段1,字段2... from 表名 筛选条件 例如:select distinct name from student; 例如:select distinct name,age from student; 注意:字段必须放在distinct后面 多字段时,以字段组合在一起的结果去重 as:取别名:把查询到的结果,显示的名称进行更改和使用 格式:结果 as 名称 注意:as可以不写 3.聚合函数: count:统计行数 格式 :count(列名) 例如:select count(*) from student; 例如:select count(name) from student; 注意:单独查询一列时,null不参与统计 count()不能写在where子句 sum:求和 格式:sum(列名) 例如:select sum(age) from student; 注意:只能对数字的列进行求和 列中有null,不就影响计算结果 avg()不能写在2where子句 max/min:求最大最小值 格式:max() 例如:select max(name) from student; 注意:可以对vachar的列进行获取 列中有null,不会影响计算结果 max/min不能写在where子句 concat:多字段进行拼接显示 格式:concat(字段,字符串,...) 例如:select concat(name,",",sex) from student; +拼接和求和 例如:select age + '20' from student; 名字会显示为age+'20' 结果每一个数据都进行+20 时间函数 select current_timestamp, current_timestamp(); (日期转换为字符串) 函数:date_format(data,format) select data_format(current_timestamp(),"%Y-%m-%d"); (字符串转化为日期) 函数:str_to_date(str,format) select str_to_date("2020-09-23","%Y-%m-%d"); 日期相减函数:datediff(date1,date2) select datediff(str_to_date("2020-09-23","%Y-%m-%d"),str_to_date("2020-08-23","%Y-%m-%d"));//注意:是date1-date2 date_add():函数向日期添加指定的时间间隔。 select data_add(STR_TO_DATE("2021-01-01","%Y-%m-%d"),INTERVAL -5 day); round():四舍五入 保留整数 格式1:round(值) 指定保留几位小数 格式2:round(值,保留几位小数) 注意:只计算小数点后第一位 floor():向下取整 格式:floor(值) rand():随机数 格式:rand() 注意:产生随机数范围在0-1之间 oder by:排序 格式:order by 字段,字段...; asc升序,desc降序 注意:默认是升序的 在查询过程中from->where->order by->limit->select 4.求TopN select * from student order by age limit 3; group by:分组 格式:group by 字段,字段...; 例如:select max(age),sex from student group by sex; 注意:分组之后select 显示的结果,分了几组就显示几条 分组过程中把相同的数据聚合到了一起,所以分组和聚合函数一起使用 having:筛选 例如:select count(*) as count from student group by sex where count<6;//不好使 select count(*) as count from student group by sex having count<6; having和where的区别: where先筛选之后再产生结果,不能使用产生的结果作为条件 having先产生结果之后再进行筛选,能使用产生的结果作为条件 求简单TopN select * from student ordey by age limit 3;