基本操作
查询操作:select
-
查询指定
-- 查询指定字段
SELECT `studentno`,`loginpwd` FROM`student`
-
查询全部
-- 查询全部学生
SELECT * FROM `student`
-
查询时换表头(给结果起名)
-- 查询指定字段 使用AS为结果起名字
SELECT `studentno` AS '学号',`loginpwd`AS'密码' FROM`student`
-
函数 拼接字符串
-- 函数 concat(a,b) 拼接字符串
SELECT CONCAT('姓名:',`studentname`) AS '新名字' FROM student
-
去重(distinct)
-
去除查询出来的重复的数据,重复的数据只显示一条
-- 去重 select distinct 重复的数据只显示一条
SELECT DISTINCT `loginpwd` FROM student -
数据库的列
-
查系统版本(函数)
-- 查看系统版本(函数)
SELECT VERSION()
-
查计算结果(表达式)
-- 用来计算(表达式)
SELECT 100*3-1 AS 计算结果
-
查询自增的步长(变量)
-- 查询自增步长(变量)
SELECT @@auto_increment_increment
-
查询时把所有 +1
-- 加一
SELECT `studentno`,`loginpwd`+1 AS '加一分后' FROM `student`
where 条件子句
作用:检索数据中符合条件的值
-
逻辑运算符
搜索条件:由一个或多个表达式组成,布尔值
-
模糊查询:比较运算符
-
%
任意字符
-
_
一个字符
-
in
具体的一个或多个值,不能用%
UPDATE `student` SET `loginpwd`='61' WHERE `studentno` = 1,
UPDATE `student` SET `loginpwd`=62 WHERE `studentno` = 2
UPDATE `student` SET `loginpwd`=63 WHERE `studentno` = 3
UPDATE `student` SET `loginpwd`=64 WHERE `studentno` = 4
UPDATE `student` SET `loginpwd`=65 WHERE `studentno` = 5
UPDATE `student` SET `loginpwd`=66 WHERE `studentno` = 6
UPDATE `student` SET `loginpwd`=67 WHERE `studentno` = 7
UPDATE `student` SET `loginpwd`=68 WHERE `studentno` = 8
-- 查询指定区间
SELECT `studentno`,`loginpwd`FROM student
WHERE `loginpwd`>62 AND `loginpwd`<67
-- 模糊查询
SELECT `studentno`,`loginpwd`FROM student
WHERE `loginpwd` BETWEEN 62 AND 67
-- 查询姓刘的同学
UPDATE `student` SET `studentname`='刘一' WHERE`studentno` = 5
UPDATE `student` SET `studentname`='刘二' WHERE`studentno` = 6
UPDATE `student` SET `studentname`='刘一二' WHERE`studentno` = 7
UPDATE `student` SET `studentname`='刘一二三' WHERE`studentno` = 8
SELECT `studentno`,`studentname` FROM student
WHERE `studentname` LIKE'刘%'
SELECT `studentno`,`studentname` FROM student
WHERE `studentname` LIKE'刘_'
SELECT `studentno`,`studentname` FROM student
WHERE `studentname` LIKE'刘__'
联表查询
join
有7种
-
jion on 连接查询
-
where 等值查询
问题
查询参加考试同学成绩
思路
-
分析需求,分析查询字段来自那些表
-
确定使用哪种连接方式
-
确定交叉点(两个表那些数据是相同的)
-
判断条件:学生表中的studnetno=成绩表中studentno
-- 联表查询
SELECT s.`studentno`,s.`studentname`,r.`studentresult`
FROM student AS s
INNER JOIN result AS r
WHERE s.studentno = r.studentno
-
inner join 如果表中至少有一个匹配,就返回
-
left join 会从左表中返回所有的值,即使右表中没有匹配
-
right join 会从右表中返回所有的值,即使左表中没有匹配
自连接
自己的表和自己的表连接,核心:一张表拆为两张一样的表即可
顺序的语法
select...
from ...
[where]-- 指定结果需满足的条件
[group by]-- 指定结果按照哪几个字段来分组
[having]-- 过滤分组的记录必须满足的次要条件
[order by]-- 排序 指定查询记录按一个或多个条件排序
[limit]-- 分页 指定查询的记录从哪条到哪条
分页和排序
-
升序
SELECT *FROM `student`
ORDER BY `studentno` ASC
-
降序
SELECT *FROM `student`
ORDER BY `studentno` DESC
-
分页(limit)
-
缓解数据库压力
LIMIT 0,5每页五行,从第一页开始
-
子查询
本质:在where语句中嵌套一个子查询语句
where(sclect * from)
MySQL函数
-
常用函数(不常用)
-
数学运算
sclect ABS(-8) -- 绝对值
sclect
-
-
聚合函数(常用)
| 函数名称 | 描述 |
|---|---|
| count() | 计数 |
| sum() | 求和 |
| avg() | 平均值 |
| max() | 最大值 |
| min() | 最小值 |
-
count()
三种
SELECT COUNT(`studentno`) FROM student -- count(字段),会忽略所有的null值
SELECT COUNT(*) FROM student -- count(*),不会忽略null值,本质,计算行数
SELECT COUNT(1) FROM student -- count(*),不会忽略null值,本质,计算行数
数据库级别的MD5加密
什么是MD5
信息摘要算法,不可逆,具体的值的MD5是一样的
浙公网安备 33010602011771号