CREATE DATABASE test;
use test;
CREATE TABLE student (
ID INT PRIMARY KEY,
xh VARCHAR(20) COMMENT '学号',
xm VARCHAR(50) COMMENT '姓名',
xb VARCHAR(10) COMMENT '性别',
csny VARCHAR(20) COMMENT '出生年月',
nj INT COMMENT '年级',
xy VARCHAR(50) COMMENT '学院'
);
CREATE TABLE goods(
id INT(11) PRIMARY KEY AUTO_INCREMENT COMMENT '商品编号',
type VARCHAR(30) NOT NULL COMMENT '商品类别',
name VARCHAR(30) UNIQUE COMMENT '商品名称',
price DECIMAL(7,2) COMMENT '商品价格',
num INT(11) DEFAULT 0 COMMENT '商品库存',
add_time DATETIME COMMENT '添加时间'
);
INSERT INTO goods(id, type, name, price, num, add_time)
VALUES(1,'书籍','西游记',50.4,20,'2018-01-01 13:40:40'),
(2,'糖类','牛奶糖',2.5,200,'2018-02-02 13:40:40'),
(3,'糖类','水果糖',2.5,100,null),
(4,'服饰','休闲西服',800,null,'2018-04-04 13:40:40'),
(5,'饮品','果汁',3,70,'2018-05-05 13:40:40');
-- INSERT INTO student (ID, xh, xm, xb, csny, nj, xy) VALUES
-- (1, 'J171001', '张三丰', '男', '2001年3月', 21, '信息工程');
INSERT INTO student (ID, xh, xm, xb, csny, nj, xy) VALUES
(1, 'J171001', '张三丰', '男', '2001年3月', '21', '信息工程'),
(2, 'J171002', '李静', '女', '2001年2月', '21', '工商管理'),
(3, 'J171003', '张明', '男', '2001年3月', '21', '计算机科学与应用'),
(4, 'J1721001', '王丽', '女', '2002年6月', '22', '轮机工程'),
(5, 'J1721002', '李大成', '男', '2002年9月', '22', '机电工程'),
(6, 'J1721002', '张白云', '女', '2000年4月', '22', '艺术学院'),
(7, 'J1731003', '刘芳芳', '女', '2002年8月', '23', '材料学院'),
(8, 'J1731003', '赵明明', '男', '2001年12月', '23', '智能工程学院');
-- SELECT * FROM student;
-- show tables;
INSERT INTO goods(id, type, name, price, num, add_time)
VALUES(6,'书籍','论语',109,50,'2018-01-03 13:40:40'),
(7,'水果','西瓜',1.5,null,'2018-02-05 13:40:40'),
(8,'水果','苹果',3,100,'2018-03-05 13:40:40'),
(9,'服饰','牛仔裤',120,10,'2018-05-04 13:40:40'),
(10,'书籍','红楼梦',50.5,15,'2018-05-06 13:40:40'),
(11,'书籍','红楼梦2',50.5,15,'2018-05-06 13:40:40');
SELECT * FROM goods;
SELECT id,type,name,price,num,add_time FROM goods;
使用‘*’通配符列出所有记录
SELECT * FROM goods WHERE id=3;
从表格中查询id值为3的记录
SELECT * FROM goods WHERE price>50 AND id>3;
从表中查询价格值大于50,并且id值大于3的记录(>, <, )
SELECT * FROM goods WHERE type='糖类' OR type='书籍';
从表格中查询type值为‘糖类’或‘书籍’的记录
SELECT * FROM goods WHERE id IN(1,3);
SELECT * FROM goods WHERE id=1 OR id=3;
查询表中的ID值为1和3的记录
SELECT * FROM goods WHERE id NOT IN(1,3);
查询表中的ID值不为1和3的记录
SELECT * FROM goods WHERE num IS NOT NULL;
查询表中库存不为NULL的记录
SELECT * FROM goods WHERE num IS NULL;
查询表中库存值为NULL的记录
SELECT * FROM goods WHERE num<>100;
查询表中库存值不等于100的记录,(<>, <=, >=, >, <, !=)
SELECT name,price FROM goods WHERE price NOT BETWEEN 2.5 AND 50;
查询表格中价格值不在2.5到50的商品名称和价格
SELECT name,price FROM goods WHERE price BETWEEN 2.5 AND 50;
查询表格中价格值为2.5到50的商品名称和价格
SELECT * FROM goods WHERE name LIKE '果%';
通配符‘%’,可配任意长度字符,可以是0,可以是1个或多个
查询表中品类值以“果”开头的记录,果%,%果,%果%
SELECT * FROM goods WHERE name LIKE '西—';
通配符‘——’只能匹配一个字符
SELECT id,name,add_time FROM goods ORDER BY add_time;
单字值 查询表中 ID,品类,添加时间的数据,并按照添加时间值进字排序
SELECT * FROM goods ORDER BY price num;
多字值 查询表中所有记录,并按照价格与库存值进行排序
SELECT * FROM goods ORDER BY price DESC;
将价格从高到低进行排序 降序
SELECT * FROM goods ORDER BY price ASC;
将价格从低到高进行排序 升序
SELECT COUNT(*) AS goods_num FROM goods;
计算表中总的记录数,包含NULL值
SELECT COUNT(num) AS goods_num FROM goods;
计算表中总的记录数,不包含NULL值
SELECT sum(num) goods_num FROM goods;
查询表中商品库存的总和
SELECT type,AVG(price) FROM goods GROUP BY type;
查询表中每个商品类别的平均价
SELECT MAX(PRICE) MAXPRI,MIN(PRICE) MINPRI FROM goods;
查询表中商品的最高价与最低价
SELECT type,count(*) from goods group by type;
将表格中的记录按商品类别进行分组,并统计每组数量
将GROUP BY与COUNT(*)一起使用可查询每组的数量
-- SELECT id FROM goods;
-- SELECT a.id,a.name,a.price FROM goods AS a;
-- SELECT COUNT(*) FROM goods;
-- SELECT COUNT(*) AS goods_num FROM goods;
-- SELECT type AS '商品类别',COUNT(*) AS '平均价格' FROM goods GROUP BY type;
-- SELECT type,COUNT(type) AS '数量' FROM goods GROUP BY type;
-- SELECT MAX(num),MIN(num) FROM goods;
-- SELECT stu.xh AS 'account',
-- stu.xm AS 'name',
-- stu.xb AS 'gender',
-- stu.csny AS 'birth',
-- stu.nj AS 'grade',
-- stu.xy AS 'department'
-- FROM student AS stu WHERE stu.xh='J1721001';
-- 查询表中,学号为“J1721001”的学生记录
-- 学院为“计算机科学与应用”的学生记录
-- 查询表中,男生、女生的数量
-- SELECT stu.xb,COUNT(*) FROM student AS stu GROUP BY stu.xb;
CREATE TABLE course_records (
ID INT PRIMARY KEY,
name VARCHAR(50) COMMENT '学员姓名',
course_name VARCHAR(100) COMMENT '课程名称',
buy_time VARCHAR(20) COMMENT '购买课程时间',
view_duration INT COMMENT '观看时长(秒)',
play_times INT COMMENT '播放次数',
valid VARCHAR(10) COMMENT '是否有效',
last_score INT COMMENT '最近一次模拟考成绩'
);
INSERT INTO course_records (ID, name, course_name, buy_time, view_duration, play_times, valid, last_score) VALUES
(1, '张三丰', '数据采集(一)', '2023年10月', 3600, 5, '是', 90),
(2, '李静', '数据处理', '2022年11月', 3240, 4, '是', 85),
(3, '张明', '数据标注工程', '2023年11月', 1120, 3, '是', 72),
(4, '王丽', '数据分析', '2023年11月', 56, 2, '否', 60),
(5, '李大成', '数据采集(一)', '2023年11月', 8200, 6, '是', 98),
(6, '张白云', '数据采集(二)', '2023年12月', 450, 1, '是', 20),
(7, '刘芳芳', '机器学习', '2023年11月', 3980, 2, '是', 40),
(8, '赵明明', '机器学习', '2023年11月', 2500, 4, '是', 80);