alter table 原表名 rename to 新表名
alter table add 新字段名 新字段数据类型(约束条件) 增加表中字段
alter table add 新段名 新字段数据类型 (约束条件)first 在表的第一列添加一个字段
alter table add 新字段名 新字段数据类型(约束条件)after 字段名; 在表的指定列后添加字段
alter table 表名 drop column 字段名 删除表中字段
alter table 表名 modify 字段名 新的数据类型
alter table 表名 change 原字段名 新字段名 新字段数据类型 修改表中字段名
alter table 表名 modify 字段1 字段1数据类型 first/after 字段 修改字段的排列位置
(fist表示在字段2前面,after表示在字段2后面)
select后跟 字段表达式
from后跟 表名
where后跟 筛选条件
select * from 表名 where 性别=1 and 年龄=1
#同时满足性别=1,且年龄=1
select * from 表名 where 日期 between '2001-1-1' and '2005-1-1'; * and *同时满足两个* //* or *满足一个*即可
查询日期在2001-1-1到2005-1-之间的信息
select * from 表名 where 成绩 in (50,60,80);
查询成绩是50,60,80的信息
select * from 表名 where 成绩 not in (50,60,80);
查询成绩不是50,60,80的信息
select 性别,学号 as 学生ID,姓名 from 表名 where 学习姓名 like '张%‘;
#as 可理解为:用作、当成,作为;一般是重命名列名或者表名;查询结束,把学号改为学生ID显示。
查询学生姓名以张开头的信息,并只显示性别,学号.....姓名等这几列
select 性别,学号 as 学生ID,姓名 from 表名 where 学生姓名 like '张_‘ or 学生姓名 like '李_‘ ;
显示两个名字且由张或离开头的信息
select * from 表名 where 备注 is null
查询表中备注是null的信息
select 学号,学生姓名,
--> case
--> when 总学分 is null then '0'
--> when 总学分 <43 then '1'
--> else '5'
--> end as 等级
--> from 表名
--> where 专业='计网';
若总学分为null替换为0,为<43替换为1,剩下的替换为5,查询结果显示在等级一列。
#Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
select distinct 专业名 from 表名;
对表消除,专业名的重复行
select * from 表名 where 总学分 > 50 order by 总学分;
总学分>50且按升序排列
常用的聚合函数
1 count : 行数
2 sum : 总和 (求总和)
3 avg : 平均值
4 max 最大值
5 min : 最小值
GROUP BY 对指定的规则对数据进行分组
有group by不一定有having,但有having必须有group by
有group by不一定有having,但有having必须有group by
having必须跟在group by之后,实现对分组结果的筛选
where与having都有筛选的作用,但作用对象不同
当group by与聚合函数配合使用时,功能为分组后计算
当group by与having配合使用时,功能为分组后过滤、
count(*) 查询这字段里的从数量
select count(*) as 总数量 from 表名;
select count(*) as 5分以上 from kc where 学分>5
select max,min,avg from xs;
max最高分,min最低分,avg总学分
select sum(成绩) from 表名 where 学号=’12‘;
统计12学生的总成绩;sum总和
select 性别,count(*) from 表名 group by 性别;
统计性别男女分别的总人数
select 性别,count(*) as 人数 from 表名 where 出生日期>’1888-8-8‘ group by 性别;
统计1888年后出生的男女生各有多少人
select 学号,avg(成绩) from 表名 group by 学号;
统计每个学生的平均成绩
select 课程号,avg(成绩),count(*) from 表名 group by 课程号;
统计被选修的各门课程的平均成绩和该课程的总人数
select 课程号,avg(成绩),count(*) from 表名 group by 课程号 having avg(成绩) >=80
统计被选修的各门课程中平均成绩在80分以上的课程选修该课程人数
select group_concat(学号) as 选1课程的学号 from 表名 where 课程号=1;
查询选修了1课程的学生的学号,显示在一行,中间用逗号隔开