数据库练习

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;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值