CREATE DATABASE student
USE student
CREATE TABLE stu(
id INT(1) PRIMARY KEY AUTO_INCREMENT ,
sname VARCHAR(8) NOT NULL UNIQUE,
age TINYINT UNSIGNED,
sex ENUM('m','w') NOT NULL DEFAULT 'm',
classid CHAR(7)
);
INSERT INTO stu(sname,age,sex,classid) VALUES('zhangsan',20,'m','lamp138')
INSERT INTO stu(sname,age,sex,classid) VALUES('lisi',20,'m','lamp138'),
('wangwu',21,'w','lamp138'),
('zhaoliu',25,'w','lamp138'),
('uu01',26,'m','lamp94'),
('uu02',28,'m','lamp94'),
('qq02',24,'m','lamp92'),
('uu03',32,'m','lamp92'),
('qq03',23,'m','lamp138'),
('aa',19,'m','lamp94'),
('sad',35,'m','lamp94'),
('tt',25,'m','lamp92'),
('wer',25,'m','lamp94'),
('xx',25,'m','lamp92'),
('kk',0,'m','lamp94'),
('mm',27,'m','lamp138')
#查询班级为lamp13期的学生信息
SELECT * FROM stu WHERE classid = 'lamp13';
#查询lamp13期的男生信息(sex为m)
SELECT * FROM stu WHERE classid = 'lamp13' AND sex = 'm'
#查询id值在10以上的学生信息
SELECT * FROM stu WHERE id > 10
#查询年龄在20至25岁的学生的信息
SELECT * FROM stu WHERE age > 19 AND age <26
#查询年龄不在20至25岁的学生信息
SELECT * FROM stu WHERE age <20 OR age>25
#查询id值为1,8,4,10,14的学生信息
SELECT * FROM stu WHERE id IN (1,8,4,10,14)
SELECT * FROM stu WHERE id=1 OR id=8 OR id=4 OR id=10 OR id =14
#查询lamp138和lamp94期的女生信息
SELECT * FROM stu WHERE classid = ('lamp13'OR'classid = lamp94')AND sex = 'w'
#查询name字段值是以zh开头的所有信息
SELECT * FROM stu WHERE sname LIKE 'zh%'
#查询姓名name中含有a子串的所有信息
SELECT * FROM stu WHERE sname LIKE '%a%'
#查询姓名是任意四位字符构成的信息
SELECT * FROM stu WHERE sname LIKE '______'
#创建一个表结构和另一个表一样的结构
CREATE TABLE stu1 LIKE stu
#MySQL的统计函数(聚合函数):max() min() count() sum() avg()
#获取学生表中最大、最小以及平均年龄是多少?
SELECT MAX(age),MIN(age),AVG(age) FROM stu
SELECT MAX(id), MIN(id),AVG(id) FROM stu
#获取学生表中男生m的数量
SELECT COUNT(*) FROM stu WHERE sex = 'm'
#GROUP BY 语句根据一个或多个列对结果集进行分组。
#统计班级信息,按性别分组,并统计每组人数;
SELECT sex,COUNT(*) FROM stu GROUP BY sex
#统计每个班级的人数
SELECT sex,classid,COUNT(*) FROM stu GROUP BY classid
#统计每个班级的,男生和女生各多少人数
SELECT sex,classid,COUNT(*) FROM stu GROUP BY sex,classid
#ORDER BY 排序 -- asc 默认升序 desc 降序
#按年龄升序排序查询学生信息
SELECT * FROM stu GROUP BY age ASC
#按年龄降序排序查询学生信息
SELECT * FROM stu GROUP BY age DESC
#查询学生信息,按班级做升序排序,相同班级按年龄降序排序
SELECT * FROM stu ORDER BY classsid ,age DESC;
#LIMIT 关键字 查询部分数据 limit m 查询数据只显示前m条,limit m,n; 排除前m条,然后再查询出前n条
#查询前5条信息
SELECT * FROM stu LIMIT 5;
#排除前2条后再获取4条信息
SELECT * FROM stu LIMIT 2,4;