DQL:分组,分页查询,约束
1 SELECT COUNT(english) FROM student; 2 3 SELECT *FROM student; 4 5 SELECT COUNT(IFNULL(english,0)) FROM student; 6 7 SELECT COUNT(id) FROM student; 8 9 SELECT MAX(math) FROM student; 10 11 SELECT MIN(math) FROM student; 12 13 SELECT SUM(math) FROM student; 14 15 SELECT AVG(math) FROM student; 16 17 SELECT * FROM student ORDER BY math ASC; -- 排序方式 18 19 SELECT * FROM student ORDER BY math DESC; -- 排序方式降序 20 21 -- 按照数学成绩排名,如果数学成绩一样,则按照英语成绩排名 22 23 SELECT * FROM student ORDER BY math ASC,english DESC; 24 25 -- 按照性别分组,分别查询男女同学的平均分 26 27 SELECT sex, AVG(math) FROM student GROUP BY sex; 28 29 -- 按照性别分组,分别查询男女同学的平均分,人数 30 31 SELECT sex, AVG(math),COUNT(id) FROM student GROUP BY sex; 32 33 -- 按照性别分组,分别查询男女同学的平均分,人数 要求分数低于70分的人不参与分组 34 35 SELECT sex, AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex; 36 37 -- 按照性别分组,分别查询男女同学的平均分,人数 要求分数低于70分的人不参与分组,分组之后,人数要大于2个人 38 39 SELECT sex, AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex HAVING COUNT(id)>2; 40 41 SELECT sex , AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2; 42 43 -- 每页显示3条记录 44 45 SELECT *FROM student LIMIT 0,3; -- 第一页 46 47 SELECT *FROM student LIMIT 3,3; -- 第二页 48 49 SELECT *FROM student LIMIT 6,3; -- 第三页 50 51 -- 公式:开始的索引=(当前的页码-1)*每页显示的条数 52 53 -- 创建表添加非空约束 54 CREATE TABLE stu1( 55 id INT, 56 NAME VARCHAR(20) NOT NULL -- name为非空 57 ); 58 59 SELECT * FROM stu1; 60 61 -- 删除name的非空约束 62 63 ALTER TABLE stu1 MODIFY NAME VARCHAR(20); 64 65 -- 创建表完后,添加非空约束 66 67 ALTER TABLE stu1 MODIFY NAME VARCHAR(20) NOT NULL; 68 69 -- 在创建表时,条件唯一约束 70 CREATE TABLE stu2( 71 id INT, 72 phone_number VARCHAR(20) UNIQUE -- 手机号 73 ); 74 75 SELECT * FROM stu2; 76 77 -- 删除唯一约束 78 ALTER TABLE stu2 MODIFY phone_number VARCHAR(20);-- 无效 79 80 ALTER TABLE stu2 DROP INDEX phone_number; 81 82 -- 在表创建后,添加唯一约束 83 84 ALTER TABLE stu2 MODIFY phone_number VARCHAR(20) UNIQUE; 85 86 CREATE TABLE stu3( 87 id INT PRIMARY KEY,-- 给id添加主键约束 88 NAME VARCHAR(20) 89 ); 90 91 SELECT * FROM stu3; 92 93 -- 删除主键 94 95 ALTER TABLE stu3 DROP PRIMARY KEY; 96 97 -- 创建完成后,添加主键 98 99 ALTER TABLE stu3 MODIFY id INT PRIMARY KEY; 100 101 CREATE TABLE stu4( 102 id INT PRIMARY KEY AUTO_INCREMENT,-- 给id添加主键约束 103 NAME VARCHAR(20) 104 ); 105 106 SELECT * FROM stu4; 107 108 INSERT INTO stu4 VALUES(NULL,'ccc'); 109 110 -- 删除自动增长 111 ALTER TABLE stu4 MODIFY id INT; 112 113 INSERT INTO stu4 VALUES(10,'ccc'); 114 115 -- 添加自动增长 116 117 ALTER TABLE stu4 MODIFY id INT AUTO_INCREMENT;
道阻且长,行则将至