实例操作:***里面为自己写的内容***
单条插入:
INSERT INTO *** 表名称(表名称中列名称)*** VALUES***('列名称中的内容')*** ;
例子:INSERT INTO grade(gradeName)VALUES('一年级');
*多条插入(本人喜好):
INSERT INTO *** 表名称*** VALUES***(内容需要跟创建表的顺序一样)*** ;
例子:
INSERT INTO result VALUES('3','s1003','3','33') ;此处如果其中一个不赋值需要 写NULL,不然会报错。
#将成绩表中所有不及格成绩增加5分。
UPDATE result SET studentResult=studentResult+5 WHERE studentResult<'60';
#将成绩表中70-90分的学生成绩减5
UPDATE result SET studentResult=studentResult-5 WHERE studentResult<90 AND studentResult>60;
#写法二 BETWEEN AND 语法指的区间
**AND是 与 的意思'Java中&&',或者可以理解为 一段信息需要满足两个列名的条件 (可参考下面)。
UPDATE result SET studentResult=studentResult-5 WHERE studentResult BETWEEN 70 AND 90;
**OR是 和的意思 (例子为)
UPDATE result SET studentResult=studentResult-5 WHERE studentResult ='90' OR
studentResult ='60';
表示分数等于90和 分数等于60的都自减5分。
(重点)如果此时需要删除的 列名中 有关联的子级 , 需要先将子级一个个删除后才可以删除你所需要删除的父级。(本人喜好:直接删报错啥就删啥);
例子:
#删除学生表(student)中学号为s1001的学生信息
#如果在关连的成绩表(result)中存在该学生的成绩,必须先删除该学生的成绩
DELETE FROM student WHERE studentNo='s1001';
DELETE FROM result WHERE studentNo='s1001';
问题:查询学生表中(student)的所有信息查询
* 表示查寻所有列 *表示通配符
SELECT * FROM student;
问题:对查询的列名进行重命名 ,通过as对列名(studentno,studentName,sex,phone,bornDate)进行重新命名,as可以省略
SELECT studentno AS 学号,studentName AS 姓名,sex AS 性别,phone AS 电话,bornDate AS 生日 FROM student;
问题:查询参加过考试的学号(studentNo)信息
使用distinct 关键字去掉重读结果
SELECT DISTINCT studentNo FROM result;
问题:查询学生姓名(studentName )中包含‘丽’的学生信息(student )
LIKE 表示模糊查询的关键字 在模糊查询中使用通配符 表示模糊的内容
通配符% 表示任意长度的任意字符
SELECT * FROM student WHERE studentName LIKE'%丽%';
问题:查询所有性王的 单名学生(studentName) 通配符_表示一个单字,可拓展,可多个使用每一个通配符_就代表一个字;
SELECT *FROM student WHERE studentName LIKE '王_';
问题:查询邮箱号码为空的学生信息
判断是否为null 使用 is null
判断是否不为null 使用 is not null
SELECT * FROM student WHERE email IS NULL;
SELECT * FROM student WHERE email IS NOT NULL;
问题:查询所有学生的成绩(studentResult),并按照所有考试升序;
SELECT *FROM result ORDER BY studentResult;
问题:查询所有学生的成绩(studentResult),并按照所有考试降序;
SELECT *FROM result ORDER BY studentResult DESC;
问题:查询课程编号为1的前5名成绩信息
如果筛选和排序都存在 先进行筛选 编号(SubjectId),再进行(StudentResult )排序前五,
LIMIT 语句表示返回指定的的区间 可以理解为(0,5)
SELECT *FROM result WHERE SubjectId='1' ORDER BY StudentResult DESC LIMIT 5;
问题:(重点)查询课程编号(SubjectId)为1的第6名到第10名成绩信息
LIMIT 语句,指定两个数字,第一个数字表示跳过前多少条,第二个数字表示再返回前多少个;
(本人理解 从第5个数后面开始数 数后面5个数字)
SELECT *FROM result WHERE SubjectId='1' ORDER BY StudentResult DESC LIMIT 5,5;