一、select语句
①eg: select name from student where id=1
and、or、not、in、between、like(%任意字符、_单字符)
where name like ‘%锦%’ 与where name regexp ‘锦’是一个意思
regexp为正则化
where phone is null 选出电话号码为空的
order by name desc 结果以姓名进行排序(降序) asc 升序
,在where的下面
limit 3 结果最多为三行。
limit 6,3 跳过前面6条数据,再显示3条数据
group by(将查询结果按某个属性进行分组)
having count(*)>3(having作用于组,在group by 后面,进行筛选)在order by 的前面
查询平均成绩大于等于90分的学生学号和平均成绩
//where句中不能用聚集函数作为条件表达式
select Sno,avg(Grade) from sc
group by Sno
having avg(Grade)>=90
②连接查询
自然连接
③嵌套查询
④集合查询
查询了1号课程或则2号课程的学生,
使用union关键词
查询既选修了课程1又选修了课程2的学生
使用intersert关键词
distinct 去重
二、插入insert语erer句
insert into student values(01,‘张飞’,‘男’,20)
insett into sc(sno,cno) values(‘21414’,‘2’)
三、修改 update
将学生201215121的年龄改为22岁
update student
set sage=22
where sno=‘20221139’
四、删除 delete
删除学号为201215128的学生记录
delete
from studnet
where sno=‘20221139’
删除表 用 truncat student
范式知识点
第一范式
第二范式:消除了非主属性对主属性的部分函数依赖
学生基本信息表(学号,身份证号,姓名)学号是唯一的
(学号,身份证号)->(姓名),
(学号)->(姓名)
(身份证号)->(姓名)
所以姓名部分函数依赖于(学号,身份证号)
拆分表就符合第二范式了
第三范式:在2NF的基础上消除传递函数依赖
如果存在A→B→C,则C传递函数依赖于A
解决办法:拆分表