diff --git "a/16 \346\236\227\346\230\200\350\220\261/20230309 \344\275\234\344\270\232.md" "b/16 \346\236\227\346\230\200\350\220\261/20230309 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..7dca52122e3fb4f2bdd5d4c58a61f74561a77274 --- /dev/null +++ "b/16 \346\236\227\346\230\200\350\220\261/20230309 \344\275\234\344\270\232.md" @@ -0,0 +1,90 @@ +# 作业 + +```sql +CREATE DATABASE n charset utf8; +use n; +CREATE TABLE stuinfo( +stuNO varchar(5), +stuName varchar(5), +stuSex enum('男','女'), +stuAge int, +stuAddress varchar(10), +stuSeat INT +); + +insert into stuinfo values +('s2501','张秋利','男',20,'美国硅谷',1), +('s2502','李斯文','女',18,'湖北武汉',2), +('s2503','马文才','男',18,'湖南长沙',3), +('s2504','欧阳俊雄','女',21,'湖北武汉',4), +('s2505','梅超风','男',20,'湖北武汉',5), +('s2506','陈旋风','男',19,'美国硅谷',6), +('s2507','陈凤','女',20,'美国硅谷',7) +; + +create table stuExam( +examNO int, +stuNO varchar(5), +writtenExam int, +labExam INT); + +INSERT INTO stuExam values +(1,'s2501',50,70), +(2,'s2502',60,65), +(3,'s2503',86,70), +(4,'s2504',40,80), +(5,'s2505',70,85), +(6,'s2506',85,90); + +-- 1.查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 +select a.stuNO 学号,a.stuName 姓名,a.stuAge 年龄,a.stuAddress 地址,a.stuSeat 座号,a.stuSex 性别 from stuinfo a; +-- 2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 +SELECT a.stuName 姓名,a.stuAge 年龄,a.stuAddress 地址 from stuinfo a; +-- 3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 +SELECT a.stuNO 学号,a.writtenExam 笔试,a.labExam 机试 from stuexam a; +-- 5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 +SELECT a.stuNO 学号,a.writtenExam 笔试,a.labExam 机试,a.writtenExam+a.labExam 总分 from stuexam a; +-- 6.查询学生信息表(stuInfo)中学生来自哪几个地方 +SELECT a.stuaddress 总共来自这些地方 from stuinfo a GROUP BY a.stuAddress; +-- 7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 +SELECT a.stuAge 总共有这几种年龄 from stuinfo a GROUP BY a.stuAge; +-- 8.查询学生信息表(stuInfo)中前3行记录 +SELECT * from stuinfo LIMIT 0,3; +-- 9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 +SELECT a.stuName,a.stuSeat from stuinfo a LIMIT 0,4; +-- 11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 +SELECT * from stuinfo a where a.stuAddress = '湖北武汉' and a.stuAge = '20'; +-- 12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 +SELECT * from stuexam a where a.labExam BETWEEN 60 and 80 ORDER BY a.labExam desc; +-- 13.查询来自湖北武汉或者湖南长沙的学生的所有信息 +SELECT * from stuinfo a where a.stuAddress='湖北武汉' or a.stuAddress='湖南长沙'; +-- 14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 +SELECT * from stuexam a where not a.writtenExam BETWEEN 70 and 90 ORDER BY a.writtenExam; +-- 15.查询年龄没有写的学生所有信息 +SELECT * from stuinfo a where a.stuAge is null; +-- 16.查询年龄写了的学生所有信息 +SELECT * from stuinfo a where a.stuAge is not null +-- 17.查询姓张的学生信息 +SELECT * from stuinfo a where a.stuName like '张%'; +-- 18.查询学生地址中有‘湖’字的信息 +SELECT * from stuinfo a where a.stuAddress like '%湖%'; +-- 19.查询姓张但名为一个字的学生信息 +SELECT * from stuinfo a where a.stuName like '张_'; +-- 20.查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 +SELECT * from stuinfo a where a.stuName like '__俊%'; +-- 21.按学生的年龄降序显示所有学生信息 +SELECT * from stuinfo a ORDER BY a.stuAge desc; +-- 22.按学生的年龄降序和座位号升序来显示所有学生的信息 +SELECT * from stuinfo a ORDER BY a.stuAge desc,a.stuSeat; +-- 23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 +SELECT * from stuexam a where a.writtenExam = (SELECT max(writtenexam) from stuexam); +-- 24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 +SELECT * from stuexam a where a.labexam = (SELECT min(labexam) from stuexam); +-- 25.查询每个地方的学生的平均年龄 +SELECT a.stuAddress,avg(stuage) from stuinfo a group by a.stuAddress; +-- 26.查询男女生的分别的年龄总和 +SELECT stusex,sum(a.stuage) 总和 from stuinfo a GROUP BY a.stuSex; +-- 27.查询每个地方的男女生的平均年龄和年龄的总和 +select stuaddress,stusex,avg(stuage),sum(stuage) from stuinfo group by stuaddress,stusex; +``` + diff --git "a/16 \346\236\227\346\230\200\350\220\261/20230315 \345\210\253\347\217\255\347\273\203\344\271\240\351\242\230.md" "b/16 \346\236\227\346\230\200\350\220\261/20230315 \345\210\253\347\217\255\347\273\203\344\271\240\351\242\230.md" new file mode 100644 index 0000000000000000000000000000000000000000..b4616d8974b3c6f83bd69b8314e88e7a619e1b3b --- /dev/null +++ "b/16 \346\236\227\346\230\200\350\220\261/20230315 \345\210\253\347\217\255\347\273\203\344\271\240\351\242\230.md" @@ -0,0 +1,86 @@ +# 作业 + +```sql +CREATE database qaq charset utf8; + +use qaq; + +create table user( +user_id int, +user_name VARCHAR(5), +user_tel char(11), +ordertime DATE +); + +CREATE table `order`( +order_id int, +user_id int, +type VARCHAR(10), +food varchar(10), +number int, +price FLOAT +); +-- | 用户表(user) | | | | | | +-- | --------------- | --------- | ----------- | ------------ | ------ | ----- | +-- | user_id | user_name | user_tel | ordertime | | | +-- | 1 | 张三 | 19865645691 | 2023-3-13 | | | +-- | 2 | 李四 | 12345675691 | 2023-3-13 | | | +-- | 3 | 王五 | 12895678901 | 2023-3-13 | | | +-- | 4 | 老六 | 12345678691 | 2023-3-14 | | | +-- | 5 | 小七 | 18945678031 | | | | +-- | 6 | 老八 | 19345678561 | 2023-3-16 | | | +-- | 7 | 朱九 | 15845679911 | | | | +insert into `user` VALUES +(1,'张三',19865645691,'2023-3-13'), +(2,'李四',12345675691,'2023-3-13'), +(3,'王五',12895678901,'2023-3-13'), +(4,'老六',12345678691,'2023-3-14'), +(5,'小七',18945678031,null), +(6,'老八',19345678561,'2023-3-16'), +(7,'朱九',15845679911,null); +-- | 订单表(order) | | | | | | +-- | order_id | uesr_id | type | food | number | price | +-- | 1 | 1 | 快餐 | 肯德基全家桶 | 1 | 50 | +-- | 2 | 1 | 快餐 | 可乐 | 4 | 20 | +-- | 3 | 6 | 饮料 | 柠檬水 | 2 | 16 | +-- | 4 | 2 | 米饭 | 鱼香肉丝盖饭 | 5 | 60 | +-- | 5 | 2 | 饮料 | 珍珠奶茶 | 3 | 22 | +-- | 6 | 3 | 粉面类 | 螺蛳粉 | 4 | 28 | +-- | 7 | 4 | 粉面类 | 凉拌面 | 1 | 10 | +insert into `order` values +(1,1,'快餐','肯德基全家桶',1,50), +(2,1,'快餐','可乐',4,20), +(3,6,'饮料','柠檬水',2,16), +(4,2,'米饭','鱼香肉丝盖饭',5,60), +(5,2,'饮料','珍珠奶茶',3,22), +(6,3,'粉面类','螺蛳粉',4,28), +(7,4,'粉面类','凉拌面',1,10); + +-- 建表 +-- +-- +-- +-- 根据上表所给信息完成下列题目: +-- +-- 1.在用户表(user)新增一个性别字段user_sex,数据类型为char。 +alter table `user` add user_sex char; +-- 2.由于顾客3退单,请把此订单删除。 +DELETE from `order` where user_id = 3; +-- 3.老八的电话号码换新了,请将他的号码更新为8888888888。 +UPDATE `user` set user_tel = 8888888888 where user_name = '老八'; +-- 4.查询order表里的最高金额和总金额。 +SELECT max(price),sum(price) from `order`; +-- 5.查询每个顾客分别订购了几个类别。 +SELECT user_id,count(*) from `order` GROUP BY user_id; +-- 6.查询饮料的总金额 +SELECT sum(price) from `order` where type = '饮料'; +-- 7.查询订单表(order)里的订单号,类别(type),食物(food). +SELECT order_id 订单号,type 类别,food 食物 from `order`; +-- 8.查询没吃饭的人的所有信息 +SELECT a.* from `user` a LEFT JOIN `order` b on a.user_id = b.user_id where b.user_id is null; +-- 9.查询姓老的人的全部信息及订单信息 +SELECT * from `user` a left join `order` b on a.user_id = b.user_id where a.user_name like '老%'; +-- 10.查询总金额最大值的用户信息。 +SELECT b.* from `order` a inner join `user` b on a.user_id = b.user_id where price = (SELECT max(price) from `order`); +``` + diff --git "a/16 \346\236\227\346\230\200\350\220\261/MySql\346\200\235\347\273\264\345\257\274\345\233\276.xmind" "b/16 \346\236\227\346\230\200\350\220\261/MySql\346\200\235\347\273\264\345\257\274\345\233\276.xmind" new file mode 100644 index 0000000000000000000000000000000000000000..8552820db651fd286338be74416161c3b1a4dadd Binary files /dev/null and "b/16 \346\236\227\346\230\200\350\220\261/MySql\346\200\235\347\273\264\345\257\274\345\233\276.xmind" differ