MySQL 2022-01-20 【学习笔记】

1.DQL 查询数据(重点)

SELECT 字段 FROM 表;
-- 查询所有的学生
SELECT * FROM `student`;
​
-- 别名,给查询结果起一个名字,可以给字段起别名,也可以给表起别名
-- AS后不用加单引号
SELECT `StudentNo` AS 学号, `StudentName` AS 学生姓名 FROM `student`;
​
-- 函数CANCAT,括号内的并在一个列输出
SELECT CONCAT('NAME:'`StudentName`) AS 学生姓名 FROM `student`;

通常来说,BIGINT能满足整数存储的需求,VARCHAR(N)能满足字符串存储的需求,这两种类型是使用最广泛的。

SELECT DISTINCT `字段名` FROM `表名  `;  -- 删去重复的结果
​
SELECT VERSION();    -- 查询系统版本
SELECT 100*3-1 AS 计算结果;    -- 以计算结果为列名显示结果
SELECT @@AUTO_INCREMENT_INCREMENT;    -- 查询自增的步长
​
-- 数据全部加一后查看
SELECT `grade`+1,`result`+1 AS 加一后 FROM result;
SELECT `grade` FROM result WHERE grade>=5 AND grade<=10;
SELECT `grade` FROM result WHERE grade BETWEEN 5 AND 10;
​
SELECT `grade` FROM result WHERE NOT grade = 10;    -- 选择不等于10的

模糊查询

-- 查询刘某
SELECT `name` , `number` FROM result WHERE `name` LIKE '刘_';
-- 查询刘某某
SELECT `name` , `number` FROM result WHERE `name` LIKE '刘__';
-- 查询刘姓的人
SELECT `name` , `number` FROM result WHERE `name` LIKE '刘%';
-- 查询范围内的人 -- IN(具体的一个或多个值)
SELECT `name` , `number` FROM result WHERE `number` IN (1000,1001,1002);

1.1联表查询

-- INNER JOIN
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
WHERE 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;
​
-- in与虚拟表
select sname from student where sid not  in (
​
select score.student_id from score where course_id in (
​
select course.cid from course inner join teacher on course.teacher_id = teacher.tid where teacher.tname = "李平老师"
) 
);
​
-- FULL JOIN
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2 
ON table_name1.column_name=table_name2.column_name;
操作描述
INNER JOIN如果表中至少有一个匹配,就返回行(有至少一个交集时)
LEFT JOIN会从左表中返回所有的值,即使右表没有匹配
RIGHT JOIN会从右表中返回所有的值,即使左表没有匹配
FULL JOIN并集,只要左右表中其中一个有数据,就返回行

1.2自连接(了解)

-- 查询父子信息(把一张表看成两张一摸一样的表)
SELECT a.`myId` AS '父栏目', b.`myId` AS '子栏目'
FROM `category` AS a,`category` AS b
WHERE a.`myId`=b.`pId`;

1.3分页和排序

分页 LIMIT

-- 语法: LIMIT起始值,页面的大小
-- LIMIT 0,5    1~5
-- LIMIT 1,5    2~6
-- LIMIT 6,5    7~11
-- 第N页        (N-1)*5

排序 ORDER BY

-- 升序ASC   
-- 降序DESC
-- 降序排列
ORDER BY `studentName` DESC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值