CREATE DATABASE db4;
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,‘马化腾’,45,‘女’,‘深圳’,98,87),(3,‘马景涛’,55,‘男’,‘香港’,56,77),(4,'柳岩
',20,‘女’,‘湖南’,76,65),(5,‘柳青’,20,‘男’,‘湖南’,86,NULL),(6,‘刘德华’,57,‘男’,'香港
',99,99),(7,‘马德’,22,‘女’,‘香港’,99,99),(8,‘德玛西亚’,18,‘男’,‘南京’,56,65);
SELECT * FROM student;
– 查询姓名和年龄
SELECT NAME,age FROM student;
SELECT address FROM student;
– 去除重复的结果集
SELECT DISTINCT address FROM student;
– 条件查询
– 查询年龄大于20
SELECT * FROM student WHERE age>20;
SELECT * FROM student WHERE age<20;
– 查询年龄等于20岁的 在mysql中判断相等用=号(注意)
SELECT * FROM student WHERE age=20;
– 不等于20岁的 !=或<>
SELECT * FROM student WHERE age!=20;
– 查询年龄大于等于20小于等于30 between and / && /通用方法
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
//查询年龄22,19,25
SELECT * FROM student WHERE age IN(20);
– 判断数据是否为null时用is不用=
SELECT * FROM student WHERE english IS NULL;
SELECT * FROM student WHERE english IS NOT NULL;
– 模糊查询like
– 查询姓马的
SELECT * FROM student WHERE NAME LIKE ‘马%’;
– 查询姓名第二个字是化的人
SELECT * FROM student WHERE NAME LIKE ‘_化%’
– 查询姓名是三个字的人
SELECT * FROM student WHERE NAME LIKE ‘___’;
– 查询姓名中包含马的
SELECT * FROM student WHERE NAME LIKE ‘%德%’;
/*
今日学习
查询语句
排序 聚合函数 分组查询 分页查询
约束 表之间的关系
范式(遵循)
数据库的备份还原
*/
– 排序 asc:升序(默认) desc降序
SELECT * FROM student ORDER BY math DESC;
– 按照数学成绩排名如果 数学成绩一样则 按英语成绩进行排名
SELECT * FROM student ORDER BY math ASC,english ASC;
/*
注意当 ORDER BY排序的第一条件相同,才会执行第二条件
*/
/*
聚合函数:将一列数据作为整体,进行纵向的计算
count计算数量 max 最大值 min最小值
sum和 avg平均值
注意:聚合函数的计算他会排除非空的值
IFNULL函数计算包含空值的
*/
SELECT COUNT(NAME) FROM student;
SELECT COUNT(IFNULL(english,0)) FROM student;-- 计算所有的包括空的
SELECT SUM(english) FROM student;
SELECT MIN(english) FROM student;
SELECT MAX(english) FROM student;
SELECT AVG(math) FROM student;
/*
分组查询
语法:group by 分组字段
分组之后查询的字段:分组函数,聚合字段
*/
SELECT * FROM student;
– 按照性别分组分别查询男女同学的平均分
SELECT FROM student GROUP BY sex;