其他分享
首页 > 其他分享> > 2022.8.31

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