//前提数据:id=3,name="张无忌",age=17,score=99.9,birthday=NULL...
/*将stu表中id=3的年龄改为117,分数改为100*/
UPDATE stu SET age=117,score=100 WHERE id=3;
注意:
如果不加任何条件,则会将表中所有记录全部修改。【注意】
UPDATE stu SET age=20;
就把stu中所有age的年龄都改为了20
1.6 DQL:++查询表++中的记录(数据)【重点掌握比DDL使用次数多】
select * from 表名; //查询表中信息【基本】
语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
现在作为了解后面就详细学习
首先创建一个新的student表:如下
++基础查询【*】++
多个字段的查询
select 字段名1,字段名2… from 表名;
注意:
++如果查询所有字段,则可以使用*来替代字段列表++(一般建议直接全写,因为影响阅读)。
案例:查询 姓名和年龄
//一般格式
SELECT name, age FROM student;
//后期标准格式
SELECT
name, -- 姓名
age -- 年龄
FROM
student; --学生表
去除重复的记录(结果集):
select distinct 字段名 form 表名
案例:去重方式查询 地址
SELECT DISTINCT address FROM student;
注:++多个字段名同时去重时:必须前后都一样才可以去重++
指的是查出来的结果集是否一样,而不是原始数据是否一样
计算列
一般可以使用++四则运算++计算一些列的值。(++一般只会进行数值型的计算++)
案例:算math 和 english 分数之和
SELECT name,math,english,math+english FROM student;
遇到null,之和为null就有问题,用如下解决:
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
表达式1:哪个字段需要判断是否为null
表达式2:如果该字段为null后的替换值
SELECT name,math,english,math+ifnull(english, 0) FROM student;
起别名:(比如上面的字段名太长了)
as:as也可以省略
案例:将上面字段名 math+english 改为 总分,math 改为 数学, english 改为 英语
//标准写法
SELECT name,math AS 数学,english AS 英语,math+ifnull(english, 0) AS 总分 FROM student;
//省略写法(加单个或多个空格都可以)
SELECT name,math 数学,english 英语,math+ifnull(english, 0) 总分 FROM student;
++条件查询【*】++
where子句后跟条件
运算符
//运算符
* > 、< 、<= 、>= 、= 、<>
* <>表示不等于
* BETWEEN...AND-->在...之间
* IN( 集合) -->在...范围之内
* LIKE:模糊查询
* 占位符:
* _:单个任意字符
* %:多个任意字符
* IS NULL -->查询某一列为NULL的值
* IS NOT NULL -->查询某一列不为NULL的值
* NULL值不能使用 =,!= 来判断
//逻辑运算符
* AND 或 &&
* 更推荐用AND
* or 或 ||
* not 或 !
运算符的具体操作:
查询年龄大于20岁
SELECT * FROM student WHERE age > 20;
查询年龄等于20岁
就写一个=号
SELECT * FROM student WHERE age = 20;
查询年龄不等于20岁
可以用!=
还可以用<>
SELECT * FROM student WHERE age != 20;
-- 另一种写法
SELECT * FROM student WHERE age <> 20;
查询年龄大于等于20小于等于30
&& 或者 AND
between.and
SELECT * FROM student WHERE age >= 20 && age <= 30;
-- 另一种写法
SELECT * FROM student WHERE age >= 20 AND age <= 30;
-- 利用between...and来简写
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
查询年龄22岁,18岁,25岁的信息
|| 或者 OR
IN( 集合)
SELECT * FROM student WHERE age = 22 || age = 18 || age = 25;
-- 另一种写法
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25;
-- 利用IN(集合)来简写
SELECT * FROM student WHERE age IN (22, 18, 25);
查询英语成绩为null
不能直接写:english = null;
NULL值不能使用 =,!= 来判断
正确写法:IS NULL
-- 错误写法
SELECT * FROM student WHERE english = NULL;
-- 正确写法
SELECT * FROM student WHERE english IS NULL;
查询英语成绩不为null
不能直接写:english != null;
NULL值不能使用 =,!= 来判断
正确写法:IS NOT NULL
-- 错误写法
SELECT * FROM student WHERE english != NULL;
-- 正确写法
SELECT * FROM student WHERE english IS NOT NULL;