502基础查询和503条件查询
DQK:查询表中的记录
select * from 表名;
语法
select 字段列表 from 表名列表
where 条件列表 group by 分组字段
order by 排序 limit 分页限定
基础查询:
多个字段的查询
select 字段名1,字段名2...from 表名;
注:
如果查询所有字段,则可以使用*来代替字段列表
去除重复
distinct
计算列
一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull(表达式1,表达式2):null参与运算,计算结果都为null
表达式1那个字段需要判断是否为null
如果该字段为null后的替换值
起别名
as:as 也可以用省略
-- 案例
CREATE TABLE student( ID INT, NAME VARCHAR(20), age INT, sex VARCHAR (5), address VARCHAR(100), math INT, English INT ); INSERT into student (id,name,age,sex,address,math,english)VALUES
(1,'马云',55,'男','杭州',66,78),
(2,'汤姆',19,'男','北京',80,81),
(3,'杰瑞',18,'男','北京',90,85),
(4,'杰瑞老婆',17,'女','重庆',89,88),
(5,'马华腾',55,'男','深圳',78,87),
(6,'红太狼',18,'女','青青草原',90,84),
(7,'灰太狼',19,'男','青青草原',60,59),
(8,'布奇',18,'女','贵州',87,90),
(9,'盖伦',23,'男','德玛西亚',84,76); -- 查询表 select * from student; -- 查询姓名和年龄 SELECT name,age FROM student; -- 去除重的结果集 SELECT DISTINCT address FROM student; SELECT DISTINCT NAME ,ADDRESS FROM student; -- 保证在名字和地址都有一样的情况下去重 -- 计算math和english分数之和 SELECT NAME,MATH,ENGLISH,math+english FROM student; -- 如果有null参与了运算,计算结果集都为null SELECT NAME,MATH,ENGLISH,math+IFNULL(english,0) FROM student; -- 起别名 SELECT NAME,MATH,ENGLISH,math+IFNULL(english,0) AS 总 FROM student; SELECT NAME 姓,MATH 数,ENGLISH 英,math+IFNULL(english,0) 总 FROM student;
条件查询
where子句跟条件
运算符
>,<,<=,>=,=,< >
BETWEN...AND
IN(集合)
KUKE
IS null
and 或 &&
or 或 ||
not 或 !
-- 查询年龄大于20岁的
SELECT * FROM student WHERE age >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
SELECT * FROM student where age>=20 && age<=30;
SELECT * FROM student where age>=20 and age<=30;
SELECT * FROM student WHERE age BETWEEN 20 and30;
-- 查询年龄 22岁, 18岁 ,19岁的信息
SELECT * from student where age =20 or age =19 or age=18;
SELECT * FROM student where age in (18,19,20);
--查询英语成绩不为nell
select * from student where english = null; -- 不对的。null值不能使用=(!=)判断
select * from student WHERE englisg IS NULL;
-- 查询英语成绩不为null的
SELECT * from student WHERE English IS not null;