2022.8.31
作者:互联网
-- 查询全部学生 select 字段 from 表
SELECT * FROM student
-- 查询指定字段
SELECT `studentno`,`studentname` FROM syudent
-- 别名,给结果起一个名字 AS 可以给字段起别名,也可以给表起别名
SELECT `studentno`AS 学号,`studentname`AS 学生姓名 FROM student AS s
-- 函数 concat(a,b)
SELECT CONCAT('姓名;',`studentname`)AS 新名字 FROM student
-- 查询一下有哪些同学参加了考试,成绩
SELECT * FROM result -- 查询全部的考试成绩
SELECT`studentno`FROM result -- 查询有哪些同学参加了考试
SELECT DISTINCT`studentno`FROM result -- 发现重复数据,去重
SELECT VERSION()-- 查询系统版本(函数)
SELECT 100*3-1 AS 计算结果 -- 用来计算(计算表达式)
SELECT @@auto_increment_increment-- 查询自增的步长 (变量)
-- 学员考试成绩+1
SELECT`studentno`,`studentresult`+1 AS'提分后'FROM result
-- ==================== where ======================
-- 查询考试成绩在95-100分之间
SELECT studentno,`studentresult`FROM result
WHERE studentresult>=95 AND studentresult<=100
-- and &&
SELECT studentno,`studentresult` FROM result
WHERE studentresult>=95 && studentresult<=100
-- 模糊查询(区间)
SELECT studentno,`studentresult`FROM result
WHERE studentresult BETWEEN 95 AND 100
-- 除了1000号学生之外的同学的成绩
SELECT studentno,`syudentresult`FROM result
WHERE studentno!=1000;
-- != not
SELECT studentno,`studentresult`FROM result
WHERE studentno =1000
-- ==================== 模糊查询 ======================
-- 查询姓刘的同学
-- like结合 %(代表0到任意一个字符) _(一个字符)
SELECT `studentno`,`studentname` FROM `student`
WHERE studentname LIKE'刘%'
-- 查询姓刘的同学,名字后面只有一个字的
SELECT`studentno`,`studentname`FROM `student`
WHERE studentname LIKE'刘_'
-- 查询姓刘的同学,名字后面只有一个字的
SELECT`studentno`,`studentname`FROM `student`
WHERE studentname LIKE'刘__'
-- 查询名字中间有嘉字的同学%嘉%
SELECT`studentno`,`studentname`FROM `student`
WHERE studentname LIKE'%嘉%'
-- ==================== in(具体的一个或者多个值) ======================
-- 查询 1001,1002,1003号学员
SELECT `studentno`,`studentname`FROM`student`
WHERE studentno IN (1001,1002,1003)
-- 查询在北京的学生
SELECT `studentno`,`studentname`FROM`student`
WHERE `address`IN('北京');
-- ==================== null ,not null ======================
-- 查询地址为空的学生null
SELECT `studentno`,`studentname`FROM`student`
WHERE address='' oraddress IS NULL
-- 查询有出生日期的同学 不为空
SELECT `studentni`,`studentname` FROM `student`
WHERE `borndate`IS NOT NULL
-- 查询没有出生日期的同学 为空
SELECT`studentno`,`studentname`FROM`student`
WHERE `borndate`IS NULL
-- =========联表查询 join===========
-- 查询参加了考试地同学(学号,姓名,科目编号,分数)
SELECT * FROM student
SELECT * FROM result
/*思路
1.分析需求,分析查询的字段来自那些表,(链接查询)
2.确定使用那连接查询? 七种
确定交叉点(这两个表中那个数据是相同的)
判断的条件;学生表的中studentno= 成绩表 studentno
*/
SELECT s.studentno,studentname,subjectno,studentresult
FROM student AS s
INNER JOIN result AS r
WHERE s.studentno = r.studentno
-- right join
SELECT s.studentno,studentname,subjectno,studentresult
FROM student s
RIGHT JOIN result r
ON s.studentno = r.studengtno
-- left join
SELECT s.studentno,studentname,subjectno,studentresult
FROM studengt s
lefe JOIN result r
ON s.studentno = r.studentno
-- 查询缺考的同学
SELECT s.studentno,studentname,subjectno,studentresult
FROM student s
LEFT JOIN result r
ON s.studentno = r.studentno
WHERE studentresult IS NULL
-- 思考题(查询了参加考试的同学信息;学号,学生姓名,科目名,分数)
/*思路
1.1.分析需求,分析查询的字段来自那些表,student,result,subject(链接查询)
2.确定使用那连接查询? 七种
确定交叉点(这两个表中那个数据是相同的)
判断的条件;学生表的中studentno= 成绩表 studentno
*/
SELECT s.studentno,studentname,subjectname,`studentresult`
FROM student s
RIGHT JOIN result r
ON r.studentno = s.studentno
INNER JOIN `subject`sub
ON r.subjectno = sub.subjectno
-- 我要查询那些数据select。。
-- 从那几个表中查from 表 XXX join 连接的表 on 交叉条件
-- 假设存在一种多张表查询,妈妈妈妈来,先查询两张表然后在慢慢增加
-- from a left join b
-- from a right ioin b
标签:studentname,student,--,31,查询,studentno,2022.8,SELECT 来源: https://www.cnblogs.com/liutongliaoliao/p/16644755.html