diff --git "a/11 \351\202\271\344\272\250\344\274\237/20232.20\344\275\234\344\270\232.md" "b/11 \351\202\271\344\272\250\344\274\237/20232.20\344\275\234\344\270\232.md" deleted file mode 100644 index 5e113849a391997a3da380460ded3ce8795b5c37..0000000000000000000000000000000000000000 --- "a/11 \351\202\271\344\272\250\344\274\237/20232.20\344\275\234\344\270\232.md" +++ /dev/null @@ -1,340 +0,0 @@ -## 第1题 - -1、创建数据库test01_market - -2、创建表格customers - -| 字段名 | 数据类型 | -| --------- | ----------- | -| c_num | int(11) | -| c_name | varchar(50) | -| c_contact | varchar(50) | -| c_city | varchar(50) | -| c_birth | date | - -**要求3:**将c_contact字段移动到c_birth字段后面 - -**要求4:**将c_name字段数据类型改为 varchar(70) - -**要求5:**将c_contact字段改名为c_phone - -**要求6:**增加c_gender字段到c_name后面,数据类型为char(1) - -**要求7:**将表名改为customers_info - -**要求8:**删除字段c_city - -```mysql - -``` - -## 第2题 - -1、创建数据库test02_library - -2、创建表格books - -| 字段名 | 字段说明 | 数据类型 | 允许为空 | 唯一 | -| ------- | -------- | ------------- | -------- | ---- | -| b_id | 书编号 | int(11) | 否 | 是 | -| b_name | 书名 | varchar(50) | 否 | 否 | -| authors | 作者 | varchar(100) | 否 | 否 | -| price | 价格 | float | 否 | 否 | -| pubdate | 出版日期 | year | 否 | 否 | -| note | 说明 | varchar(100) | 是 | 否 | -| num | 库存 | int(11) | 否 | 否 | - -3、向books表中插入记录 - -1) 指定所有字段名称插入第一条记录 - -2)不指定字段名称插入第二记录 - -3)同时插入多条记录(剩下的所有记录) - -| b_id | b_name | authors | price | pubdate | note | num | -| ---- | ------------- | --------------- | ----- | ------- | -------- | ---- | -| 1 | Tal of AAA | Dickes | 23 | 1995 | novel | 11 | -| 2 | EmmaT | Jane lura | 35 | 1993 | joke | 22 | -| 3 | Story of Jane | Jane Tim | 40 | 2001 | novel | 0 | -| 4 | Lovey Day | George Byron | 20 | 2005 | novel | 30 | -| 5 | Old land | Honore Blade | 30 | 2010 | law | 0 | -| 6 | The Battle | Upton Sara | 30 | 1999 | medicine | 40 | -| 7 | Rose Hood | Richard haggard | 28 | 2008 | cartoon | 28 | - -4、将小说类型(novel)的书的价格都增加5。 - -5、将名称为EmmaT的书的价格改为40。 - -6、删除库存为0的记录 - -```mysql - -``` - - - -## 第3题 - -1、创建数据库test03_bookstore - -2、创建book表 - -```mysql -+----------+--------------+------+-----+---------+----------------+ -| Field | Type | Null | Key | Default | Extra | -+----------+--------------+------+-----+---------+----------------+ -| id | int(11) | NO | PRI | NULL | auto_increment | -| title | varchar(100) | NO | | NULL | | -| author | varchar(100) | NO | | NULL | | -| price | double(11,2) | NO | | NULL | | -| sales | int(11) | NO | | NULL | | -| stock | int(11) | NO | | NULL | | -| img_path | varchar(100) | NO | | NULL | | -+----------+--------------+------+-----+---------+----------------+ -``` - -尝试添加部分模拟数据,参考示例如下: - -```mysql -+----+-------------+------------+-------+-------+-------+----------------------------+ -| id | title | author | price | sales | stock | img_path | -+----+-------------+------------+-------+-------+-------+-----------------------------+ -| 1 | 解忧杂货店 | 东野圭吾 | 27.20 | 102 | 98 | upload/books/解忧杂货店.jpg | -| 2 | 边城 | 沈从文 | 23.00 | 102 | 98 | upload/books/边城.jpg | -+----+---------------+------------+-------+-------+-------+----------------------------+ -``` - -3、创建用户表users,并插入数据 - -```mysql -+----------+--------------+------+-----+---------+----------------+ -| Field | Type | Null | Key | Default | Extra | -+----------+--------------+------+-----+---------+----------------+ -| id | int(11) | NO | PRI | NULL | auto_increment | -| username | varchar(100) | NO | UNI | NULL | | -| password | varchar(100) | NO | | NULL | | -| email | varchar(100) | YES | | NULL | | -+----------+--------------+------+-----+---------+----------------+ -``` - -尝试添加部分模拟数据,参考示例如下: - -```mysql -+----+----------+----------------------------------+--------------------+ -| id | username | password | email | -+----+----------+----------------------------------+--------------------+ -| 1 | admin | 112233 | admin@mxdx.com | -+----+----------+----------------------------------+--------------------+ -``` - -4、创建订单表orders - -```mysql -+--------------+--------------+------+-----+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+--------------+--------------+------+-----+---------+-------+ -| id | varchar(100) | NO | PRI | NULL | | -| order_time | datetime | NO | | NULL | | -| total_count | int(11) | NO | | NULL | | -| total_amount | double(11,2) | NO | | NULL | | -| state | int(11) | NO | | NULL | | -| user_id | int(11) | NO | MUL | NULL | | -+--------------+--------------+------+-----+---------+-------+ -``` - -尝试添加部分模拟数据,参考示例如下: - -```mysql -+----------------+---------------------+-------------+--------------+-------+---------+ -| id | order_time | total_count | total_amount | state | user_id | -+----------------+---------------------+-------------+--------------+-------+---------+ -| 15294258455691 | 2018-06-20 00:30:45 | 2 | 50.20 | 0 | 1 | -+----------------+---------------------+-------------+--------------+-------+---------+ -``` - -5、创建订单明细表order_items - -```mysql -+----------+--------------+------+-----+---------+----------------+ -| Field | Type | Null | Key | Default | Extra | -+----------+--------------+------+-----+---------+----------------+ -| id | int(11) | NO | PRI | NULL | auto_increment | -| count | int(11) | NO | | NULL | | -| amount | double(11,2) | NO | | NULL | | -| title | varchar(100) | NO | | NULL | | -| author | varchar(100) | NO | | NULL | | -| price | double(11,2) | NO | | NULL | | -| img_path | varchar(100) | NO | | NULL | | -| order_id | varchar(100) | NO | MUL | NULL | | -+----------+--------------+------+-----+---------+----------------+ -``` - -尝试添加部分模拟数据,参考示例如下: - -```mysql -+----+-------+--------+---------+---------+-------+----------------+----------------+ -| id |count| amount| title | author | price | img_path | order_id | -+----+-------+--------+------------+----------+-------+----------------+----------------+ -| 1 | 1 | 27.20| 解忧杂货店 | 东野圭吾 | 27.20 | static/img/default.jpg|15294258455691 | -| 2 | 1 | 23.00| 边城 | 沈从文 | 23.00 | static/img/default.jpg|15294258455691 | -+----+-------+--------+------------+----------+-------+------------+----------------+ -``` - -参考答案: - -````mysql -1、创建数据库test01_market -CREATE DATABASE test01_market; -USE test01_market; --- 2、创建表格customers -CREATE TABLE customers( -c_num int(11), -c_name VARCHAR(50), -c_contact VARCHAR(50), -c_city VARCHAR(50), -c_birth DATE -); - --- | 字段名 | 数据类型 | --- | --------- | ----------- | --- | c_num | int(11) | --- | c_name | varchar(50) | --- | c_contact | varchar(50) | --- | c_city | varchar(50) | --- | c_birth | date | --- --- **要求3:**将c_contact字段移动到c_birth字段后面 -ALTER TABLE customers MODIFY c_birth VARCHAR(50) AFTER c_contact; --- --- **要求4:**将c_name字段数据类型改为 varchar(70) -ALTER TABLE customers MODIFY c_name varchar(70); --- --- **要求5:**将c_contact字段改名为c_phone -ALTER TABLE customers CHANGE c_contact c_phone VARCHAR(50); --- --- **要求6:**增加c_gender字段到c_name后面,数据类型为char(1) -ALTER TABLE customers ADD c_gender CHAR(1) AFTER c_name; --- --- **要求7:**将表名改为customers_info -ALTER TABLE customers RENAME TO customers_info; --- --- **要求8:**删除字段c_city -ALTER TABLE customers DROP c_city; -1、创建数据库test02_library -CREATE DATABASE test02_library; - -2、创建表格books -CREATE TABLE books ( - b_id INT(11), - b_name VARCHAR(50), - authors VARCHAR(100), - price float, - pubdate year, - note varchar(100), - num int(11) -); - -| 字段名 | 字段说明 | 数据类型 | 允许为空 | 唯一 | -| ------- | -------- | ------------- | -------- | ---- | -| b_id | 书编号 | int(11) | 否 | 是 | -| b_name | 书名 | varchar(50) | 否 | 否 | -| authors | 作者 | varchar(100) | 否 | 否 | -| price | 价格 | float | 否 | 否 | -| pubdate | 出版日期 | year | 否 | 否 | -| note | 说明 | varchar(100) | 是 | 否 | -| num | 库存 | int(11) | 否 | 否 | - -3、向books表中插入记录 - -1) 指定所有字段名称插入第一条记录 -INSERT INTO books (b_id,b_name,authors,price,pubdate,note,num) - VALUES(1,'Tal of AAA','Dickes',23,1995,'novel',11); -2)不指定字段名称插入第二记录 -INSERT into books values(2,'EmmaT','Jane lura',35,1993,'joke',22); -3)同时插入多条记录(剩下的所有记录) -use test02_library; -insert into books (b_id,b_name,author,price,pubdate,note,num) -VALUES -(3,'Story of Jane','Jane Tim',40,2001,'novel',0), -(4,'Lovey Day','George Byron',20,2005,'novel',30), -(5,'Old land','Honore Blade',30,2010,'law',0), -(6,'The Battle','Upton Sara',30,1999,'medicine',40), -(7,'Rose Hood','Richard haggard',28,2008,'cartoon',28); -| b_id | b_name | authors | price | pubdate | note | num | -| ---- | ------------- | --------------- | ----- | ------- | -------- | ---- | -| 1 | Tal of AAA | Dickes | 23 | 1995 | novel | 11 | -| 2 | EmmaT | Jane lura | 35 | 1993 | joke | 22 | -| 3 | Story of Jane | Jane Tim | 40 | 2001 | novel | 0 | -| 4 | Lovey Day | George Byron | 20 | 2005 | novel | 30 | -| 5 | Old land | Honore Blade | 30 | 2010 | law | 0 | -| 6 | The Battle | Upton Sara | 30 | 1999 | medicine | 40 | -| 7 | Rose Hood | Richard haggard | 28 | 2008 | cartoon | 28 | - -4、将小说类型(novel)的书的价格都增加5。 -update books set price = price+5 WHERE note = 'novel'; -5、将名称为EmmaT的书的价格改为40。 -UPDATE books set price=40 where b_name='EmmaT'; -SELECT * from books; -6、删除库存为0的记录 -delete from books where num=0; -1、创建数据库test03_bookstore -CREATE DATABASE test03_bookstore; - -2、创建book表 -CREATE TABLE book( -id INT(11), -title VARCHAR(100), -author VARCHAR(100), -price DOUBLE(11,2), -sales INT(11), -stock INT(11), -img_path VARCHAR(100) -); - -```mysql -+----------+--------------+------+-----+---------+----------------+ -| Field | Type | Null | Key | Default | Extra | -+----------+--------------+------+-----+---------+----------------+ -| id | int(11) | NO | PRI | NULL | auto_increment | -| title | varchar(100) | NO | | NULL | | -| author | varchar(100) | NO | | NULL | | -| price | double(11,2) | NO | | NULL | | -| sales | int(11) | NO | | NULL | | -| stock | int(11) | NO | | NULL | | -| img_path | varchar(100) | NO | | NULL | | -+----------+--------------+------+-----+---------+----------------+ -``` - -尝试添加部分模拟数据,参考示例如下: -insert into book values(1,'解忧杂货店','东野圭吾',27.20,102,98,'upload/books/解忧杂货店.jpg'); -insert into book values(2,'边城','沈从文',23.00,102,98,'upload/books/边城.jpg'); - -```mysql -+----+-------------+------------+-------+-------+-------+----------------------------+ -| id | title | author | price | sales | stock | img_path | -+----+-------------+------------+-------+-------+-------+-----------------------------+ -| 1 | 解忧杂货店 | 东野圭吾 | 27.20 | 102 | 98 | upload/books/解忧杂货店.jpg | -| 2 | 边城 | 沈从文 | 23.00 | 102 | 98 | upload/books/边城.jpg | -+----+---------------+------------+-------+-------+-------+----------------------------+ -``` - -3、创建用户表users,并插入数据 -REVERSE(str) TABLE users( -id INT(11) PRIMARY KEY auto_increment, -username VARCHAR(100) unique, -passwor VARCHAR(100), -email VARCHAR(100) null -); - -```mysql -+----------+--------------+------+-----+---------+----------------+ -| Field | Type | Null | Key | Default | Extra | -+----------+--------------+------+-----+---------+----------------+ -| id | int(11) | NO | PRI | NULL | auto_increment | -| username | varchar(100) | NO | UNI | NULL | | -| password | varchar(100) | NO | | NULL | | -| email | varchar(100) | YES | | NULL | | -+----------+--------------+------+-----+---------+----------------+ -```` - diff --git "a/11 \351\202\271\344\272\250\344\274\237/2023zouye.md" "b/11 \351\202\271\344\272\250\344\274\237/2023zouye.md" new file mode 100644 index 0000000000000000000000000000000000000000..3b0460c3c0637c5d9fbcb362fdf115c308a50432 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/2023zouye.md" @@ -0,0 +1,105 @@ +# 作业 + +``` +CREATE DATABASE wee; +ALTER DATABASE wee charset utf8; +USE wee; +CREATE TABLE Student( + Sno varchar (20) primary key, +Sname varchar (20) not null, +Ssex varchar (20)not null, +Sbirthday datetime, +Class varchar (20) +); +CREATE TABLE Teacher ( +Tno varchar (20) primary key, +Tname varchar (20) not null, +Tsex varchar (20) not null, +Tbirthday datetime, +Prof varchar (20), +Depart varchar (20) not null +); +ALTER TABLE Student charset utf8; +CREATE TABLE Course( +Cno varchar (20) primary key, +Cname varchar (20) not null, +Tno varchar (20),foreign key (tno) references teacher (tno) +); +CREATE TABLE Score( +Sno varchar (20), foreign key (sno) references student(sno), +Cno varchar (20),foreign key (cno) references course(cno), +Degree Decimal(4,1) +); + +INSERT INTO Student(Sno,Sname,Ssex,Sbirthday,class) +VALUES +(108,'曾华','男','1977-9-1',95033), +(105,'匡明','男','1975-10-2',95031), +(107,'王丽','女','1976-1-23',95033), +(101,'李军','男','1976-2-20',95033), +(109,'王芳','女','1975-2-10',95031), +(103,'陆君','男','1974-6-3',95031); +INSERT INTO Course(Cno,Cname,Tno) +VALUES +('3-105','计算机导论','825'), +('3-245','操作系统','804'), +('6-166','数字电路','856'), +('9-888','高等数学','831'); +INSERT INTO Teacher(Tno,Tname,Tsex,Tbirthday,Prof,Depart) +VALUES +('804','李诚','男','1958-12-2','副教授','计算机系'), +('856','张旭','男','1969-3-12','讲师','电子工程系'), +('825','王萍','女','1972-5-5','助教','计算机系'), +('831','刘冰','女','1977-8-14','助教','电子工程系'); +INSERT INTO Score(Sno,Cno,Degree) +VALUES +('103','3-245','86'), +('105','3-245','75'), +('109','3-245','68'), +('103','3-105','92'), +('105','3-105','88'), +('109','3-105','76'), +('101','3-105','64'), +('107','3-105','91'), +('108','3-105','78'), +('101','6-166','85'), +('107','6-166','79'), +('108','6-166','81'); +-- 4.查询 +-- ① 查询Score表中的最高分的学生学号和课程号。 +SELECT Degree,Sno FROM Score; +-- ② 查询所有学生的Sname、Cno和Degree列。 +select Student.Sname,Score.Cno,Score.Degree from +Score inner join Student on Student.Sno=Score.Sno; +-- ③ 查询所有学生的Sno、Cname和Degree列。 + SELECT Student.Sno,Course.Cname,Score.Degree FROM Student,Course,Score; +select Student.Sname,Score.Cno,Score.Degree from +Score inner join Student on Student.Sno=Score.Sno; +-- ④ 查询所有学生的Sname、Cname和Degree列。 +-- SELECT Student.Sname,Course.Cname,Score.Degree FROM +-- Score inner JOIN Student ON tudent.Sno-Score.Sno; +select Score.Sno,Course.Cname,Score.Degree FROM +Course inner join Score on Course.Cno=Score.Cno; +-- ⑤ 查询“95033”班学生的平均分。 +select round(sum(Degree) / count(Class),1) 成绩 from Student inner join Score on +Score.Sno=Student.Sno where Class='95033'; +-- ⑥ 查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。 +-- ⑦ 查询score中选学多门课程的同学中分数为非最高分成绩的记录。 +-- ⑧ 查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。 +-- ⑨ 查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。 +-- ⑩ 查询“张旭“教师任课的学生成绩。 +-- ⑪ 查询选修某课程的同学人数多于5人的教师姓名。 +-- ⑫ 查询出“计算机系“教师所教课程的成绩表。 +-- ⑬ 查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。 +-- ⑭ 查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。 +-- ⑮ 查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree. +-- ⑯ 查询成绩比该课程平均成绩低的同学的成绩表。 +-- ⑰ 查询所有任课教师的Tname和Depart. +-- ⑱ 查询所有未讲课的教师的Tname和Depart. +-- ⑲ 查询“男”教师及其所上的课程。 +-- ⑳ 查询最高分同学的Sno、Cno和Degree列。 +-- 21 查询和“李军”同性别的所有同学的Sname. +-- 22 查询和“李军”同性别并同班的同学Sname. +-- 23 查询所有选修“计算机导论”课程的“男”同学的成绩表。 +``` + diff --git "a/11 \351\202\271\344\272\250\344\274\237/3.7\344\275\234\344\270\232.md" "b/11 \351\202\271\344\272\250\344\274\237/3.7\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..ea31326aae30a4780e3b934ce64923a3d1d2a617 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/3.7\344\275\234\344\270\232.md" @@ -0,0 +1,89 @@ +create database text1; +use text1; +alter database text1 charset utf8; +alter table stuinfo charset utf8; +alter table stuExam charset utf8; +alter table stuMarks charset utf8; + +create table stuinfo( +stuNO varchar(10) primary key, +stuName varchar(10), +stuSex varchar(5), +stuAge double, +stuAddress varchar(20), +stuSeat int auto_increment unique +); +create table stuExam( +examNo int primary key, +stuNO varchar(10), +writtenExam varchar(10), +labExam double, +foreign key(stuNo) references stuinfo(stuNo) +); +create table stuMarks( +examNO int, +stuID varchar(10), +score double, +foreign key(examNO) references stuExam(examNO) +); +insert into stuinfo values +('s2501','张秋利','男',20,'美国硅谷',1), +('s2502','李斯文','女',18,'湖北武汉',2), +('s2503','马文才','男',18,'湖南长沙',3), +('s2504','欧阳俊雄','女',21,'湖北武汉',4), +('s2505','梅超风','男',16,'湖北武汉',5), +('s2506','陈旋风','男',19,'美国硅谷',6); +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); +insert into stuMarks values +(1,'s2501',88), +(2,'s2501',92), +(3,'s2501',53), +(4,'s2502',60), +(5,'s2502',99), +(6,'s2503',82); +-- 1.查询出年龄比班上平均年龄大的学生的信息 +SELECT * FROM stuinfo +WHERE stuAge> +(SELECT avg(stuAge) FROM stuinfo); +-- 2.查询出每个学生的学号,姓名,性别和选修课程的最高分(stuMarks) + +-- 3.查询出每个学生的学号,姓名,性别和考试平均分(stuExam) +SELECT * FROM stuinfo; +SELECT * FROM stuExam; +select si.stuNO,stuname,stusex,round((avg(se.writtenExam+se.labExam)/2),2) +from +stuinfo si,stuexam se where si.stuNO=se.stuNO group by stuno; +-- 4.查询性别是男并且年龄大于等于20的学生的信息(用两种方法实现:普通查询和子查询) +1 +select * from stuinfo +where stuSex='男' and stuage >='20'; +-- 5.查询出年龄比所有男生年龄都大的女生的信息 +select * from +stuinfo where +stuage > all (select stuage from stuinfo where stuSex='男') and stuSex='女'; + + 6.查询出所有选修课程都及格的学生的信息 (stuMarks) + + 7.查询出参加考试的学生的信息(用表连接,in二种方法做)(stuMarks) + + 8.查询出没有参加考试的学生的信息(用表连接,in二种方法做)(stuMarks) + +-- 9.将有一门成绩成绩大于90分的学生的基本信息查询出来(stuMarks) +select * from +stuinfo where stuno in(select stuid from stumarks where score >'90'); +-- 10.查询出平均成绩在80分以上的学生的基本信息(stuMarks) +select * from stuinfo where stuno =(select stuid from(select stuid, avg(score) a from stumarks group by stuid) s where a>80); +-- 11.查询出某同学所有考试成绩比“张秋利”同学所有分数都高的学生基本信息(stuMarks) +- + + 12.查询出某同学所有考试成绩只需要比“张秋利”同学某个分数高的学生基本信息(stuMarks) + +-- 13.查询班上比所有男生年龄都要大的女生的信息 + +-- 14.查询出只要比某个男生年龄大的女生的信息 \ No newline at end of file diff --git "a/11 \351\202\271\344\272\250\344\274\237/\347\254\224\350\256\260.md" "b/11 \351\202\271\344\272\250\344\274\237/\347\254\224\350\256\260.md" deleted file mode 100644 index 0f09aaa7b9322248450d395b670e830eaffe70a6..0000000000000000000000000000000000000000 --- "a/11 \351\202\271\344\272\250\344\274\237/\347\254\224\350\256\260.md" +++ /dev/null @@ -1,35 +0,0 @@ -#笔记 - -查看所有的数据库 - -show database - -创建数据库 - -create database 数据库名 - -删除数据库 - -drop database 数据库名 - -使用数据库 - -use 数据库名 - -查看数据库的所有表格 - -show table from 数据库名 - -创建新的表格 - -create table 表名称 - -float单精度 - -int整数 - -decimal定点数默认是(10,0)四舍五入时5就是5 - -double和float四舍五入时5是无限接近于5 - -如果小数部分长度超过n,自动四舍五 \ No newline at end of file