-- 函数 CONCAT(a,b)
SELECT CONCAT('姓名:',studentname) AS 新名字
FROM student;-- 去重 DISTINCT(重复的数据只显示一条)
SELECT * FROM result; -- 查询全部的考试成绩
SELECT studentno FROM result; -- 查询参加考试的同学
SELECT DISTINCT studentno FROM result; -- 去重
SELECT VERSION(); -- 查询系统版本 (函数)
SELECT 100*99-100 AS 计算结果; -- 计算 (表达式)
SELECT @@auto_increment_increment; -- 查询自增的步长 (变量)-- 考试成绩+1
SELECT studentno,studentresult FROM result;
SELECT stdentno,studentresult+1 AS '加分' FROM result;-- WHERE条件子句
-- 作用:检索数据中符合条件的值
-- 搜索的条件由一个或多个表达式组成,结果为布尔值
-- 查询成绩在80-100之间
-- AND
select studentno,studentresult
FROM result
WHERE studentresult>=80 AND studentresult<=100;-- &&
select studentno,studentresult
FROM result
WHERE studentresult>=80 && studentresult<=100;-- 模糊查询(区间)
select studentno,studentresult
FROM result
WHERE studentresult BETWEEN 80 AND 100;-- 除了1000号学生之外的成绩
select studentno,studentresult
FROM result
WHERE studentno != 1000;select studentno,studentresult
FROM result
WHERE NOT studentno = 1000;-- 模糊查询
-- 查询姓刘的同学
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 '%华%';-- 查询1000,1001,1002学号的学生信息
SELECT *
FROM student
WHERE studentno IN (1000,1001,1002);-- 查询北京的学生信息
SELECT *
FROM student
WHERE address IN ('北京朝阳');-- 查询地址为空的学生信息
SELECT *
FROM student
WHERE address='' " OR address IS NULL;-- 查询出生日期不为空的学生信息
SELECT *
FROM student
WHERE borndate IS NOT NULL;-- 多表查询
-- 查询参加了考试得学生信息
-- JOIN ON 连接查询
-- WHERE 等值查询
-- INNER JOIN
SELECT s.studentno,studentname,subjectno,studentresult
FROM student s
INNER JOIN result 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.studentno;-- LEFT JOIN
SELECT s.studentno,studentname,subjectno,studentresult
FROM student s
LEFT JOIN result r
on s.studentno = r.studentno;-- INNER JOIN 如果表中至少有一个匹配,就返回行
-- LEFT JOIN 会从左表中返回所有得值,即使右表中没有匹配
-- RIGHT JOIN 会从右表中返回所有得值,即使左表中没有匹配
-- 查询缺考的同学
SELECT s.studentno,studentname,subjectno,studentresult
FROM student s
LEFT JOIN result r
on s.studentno = r.studentno
WHERE studentresult IS NULL;-- 查询参加考试的同学的学号、姓名、科目名称、成绩
SELECT s.studentno,studentname,subjectname,studentresult
FROM student s
RIGHT JOIN result r
on s.studentno = r.studentno
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno;
评论 (0)