diff --git "a/11 \351\202\271\344\272\250\344\274\237/2023.0228\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" "b/11 \351\202\271\344\272\250\344\274\237/2023.0228\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" new file mode 100644 index 0000000000000000000000000000000000000000..8be6b355c90d73d13675b7610420f2463c5b2342 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/2023.0228\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" @@ -0,0 +1,106 @@ +``` +use test01_market; +create table customers( + c_num int(11), + c_name varchar(50), + c_contact varchar(50), + c_city varchar(50), + c_birth date +); +DESC customers; +ALTER TABLE customers MODIFY c_contact VARCHAR(50) AFTER c_birth; # 将字段c_contact放到c_birth后面 +alter table customers modify c_name varchar(70); # 修改字段c_name的数据类型 +alter table customers CHANGE c_contact c_phone VARCHAR(80); # 将 旧字段c_contact修改为c_phone并且修改数据类型为varchar(80) +ALTER table customers add c_gender VARCHAR(20) NULL; # 添加一个新的字段c_gender设置一个新的数据类型,并且设置初始值NULL +ALTER TABLE customers MODIFY c_gender VARCHAR(50) AFTER c_name; # 将字段c_gender放到c_name后面 +rename table customers to new_customers; # 重命名表格的名字 +alter table new_customers drop c_num; # 删除new_customers里面胡c_num字段 +DESC new_customers; # 查看标的结构 +``` + +第二题 /* ## 第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的记录 */ + +第三题 /* 1、创建数据库test03_bookstore +2、创建book表 +3、创建用户表users,并插入数据 +4、创建订单表orders +5、创建订单明细表order_items */ + +``` +create database test03_bookstore; +use test03_bookstore; +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) +); +ALTER table book convert to character set utf8; +insert into book VALUES(1,'解忧杂货店','东野硅谷',27.20,102,98,'upload/books/解忧杂货店.jpg'),(2,'边城','沈从文',23.00,102,98,'upload/books/边城.jpg'); +use test03_bookstore; +create table orders( + id varchar(100), + order_time datetime, + todal_count int(11), + todal_amount DOUBLE(11,2), + state int(11), + user_id int(11) +); +INSERT into orders VALUES(15294258455691,'2018-06-20 00:30:45',2,50.20,0,1); + +CREATE table order_items( + id int(11), + count int(11), + amout double(11,2), + title varchar(100), + author varchar(100), + price double(11,2), + img_path VARCHAR(100), + order_id VARCHAR(100) +); +ALTER table order_items convert to character set utf8; +insert into order_items VALUES(1,1,27.20,'解忧杂货店','东野硅谷',27.20,'static/img/default.jpg',15294258455691),(2,1,23.00,'边城','沈从文',23.00,'static/img/default.jpg',15294258455691); +``` + + diff --git "a/11 \351\202\271\344\272\250\344\274\237/2023.03\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" "b/11 \351\202\271\344\272\250\344\274\237/2023.03\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" new file mode 100644 index 0000000000000000000000000000000000000000..adeae58aa3f22413d3c746dc6582814f11076f36 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/2023.03\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" @@ -0,0 +1,211 @@ +``` +create database ZyClass2 charset utf8; +use ZyClass2; +create table stuinfo( + stuNO varchar(10) primary key, + stuName varchar(5), + stuSex varchar(2), + stuAge int , + stuAddress varchar(10), + stuSeat int +); + +create table stuExam( + examNO int auto_increment primary key, + stuNO varchar(10) , + writtenExam int, + labExam int, + constraint sn foreign key(stuno) references stuinfo(stuno) +); + +create table stuMarks( + examNo int , + stuID varchar(10), + score int, + constraint en 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) + + +``` +select i.stuno,stuName,stusex,m.sc + from + stuinfo i,(select stuid, max(score) sc from stumarks group by stuid) m + where i.stuNO=m.stuID ; +``` + +-- 3.查询出每个学生的学号,姓名,性别和考试平均分(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的学生的信息(用两种方法实现:普通查询和子查询) + + #普通查询 + select * + from + stuinfo + where stuSex='男' and stuage >='20'; + + #子查询 + select * + from + (select *from stuinfo where stuSex='男') s + where stuage >='20'; + +-- 5.查询出年龄比所有男生年龄都大的女生的信息 + + +``` +select * + from + stuinfo + where + stuage > all (select stuage from stuinfo where stuSex='男') and stuSex='女'; +``` + +-- 6.查询出所有选修课程都及格的学生的信息 (stuMarks) + + +``` +select distinct si.* + from + stuinfo si right join stumarks sm on si.stuNO=sm.stuID + where + stuno != (select stuid from stumarks where score<60) ; +``` + +-- 7.查询出参加考试的学生的信息(用表连接,in二种方法做)(stuMarks) + + #方法一:表连接 + select distinct si.* + from + stuinfo si right join stumarks sm + on si.stuNO=sm.stuID; + + #方法二:in + select * + from + stuinfo + where + stuno in(select distinct stuid from stumarks); + +-- 8.查询出没有参加考试的学生的信息(用表连接,in二种方法做)(stuMarks) + + #方法一:表连接 + select si.* + from + stuinfo si left join stumarks sm + on si.stuNO=sm.stuID + where + stuno != all (select distinct stuid from stumarks); + + #方法二:in + select * + from + stuinfo si left join stumarks sm + on si.stuNO=sm.stuID + where + stuno not in(select distinct stuid from 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) + + +``` +select si.* + from + stuinfo si left join stuexam se + on si.stuno = se.stuno + where + se.writtenexam > (select writtenexam from stuexam where stuno = 's2501') + and se.labexam > (select labexam from stuexam where stuno = 's2501'); +``` + +-- 12.查询出某同学所有考试成绩只需要比“张秋利”同学某个分数高的学生基本信息(stuMarks) + + +``` + select distinct si.* + from + stuinfo si right join stumarks sm on si.stuno=sm.stuID + where score > any + (select score from stuinfo si right join stumarks sm on si.stuno=sm.stuID where stuname='张秋利') and stuno != 's2501'; +``` + +-- 13.查询班上比所有男生年龄都要大的女生的信息 + + +``` + select * + from stuinfo + where stuage > all + (select stuage from stuinfo where stusex='男') and stusex='女'; +``` + +-- 14.查询出只要比某个男生年龄大的女生的信息 + + +``` +select * + from stuinfo + where stuage > any + (select stuage from stuinfo where stusex='男') and stusex='女'; +``` + diff --git "a/11 \351\202\271\344\272\250\344\274\237/202302.20\347\254\224\350\256\260.md" "b/11 \351\202\271\344\272\250\344\274\237/202302.20\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..bd46c9f1c0d39eb0d1a435e6c691fbb6f9becfd5 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/202302.20\347\254\224\350\256\260.md" @@ -0,0 +1,52 @@ +#笔记 + +查看所有的数据库 + +show database + +创建数据库 + +create database 数据库名 + +删除数据库 + +drop database 数据库名 + +使用数据库 + +use 数据库名 + +查看数据库的所有表格 + +show table from 数据库名 + +创建新的表格 + +create table 表名称 + +float单精度 + +int整数 + +decimal定点数默认是(10,0)四舍五入时5就是5 + +double和float四舍五入时5是无限接近于5 + +如果小数部分长度超过n,自动四舍五 + +默认约束 default + +主键约束 primary key + +外键约束 foreign key + +非空约束 not null + +只增约束 auto-increment + +字段值 forign key + +select 查询语言 + + + 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/202302.22.md" similarity index 100% rename from "11 \351\202\271\344\272\250\344\274\237/2023zouye.md" rename to "11 \351\202\271\344\272\250\344\274\237/202302.22.md" diff --git "a/11 \351\202\271\344\272\250\344\274\237/202302.22\347\254\224\350\256\260.md" "b/11 \351\202\271\344\272\250\344\274\237/202302.22\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..019b042e3836140cf89076d25d7958c62d4346ac --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/202302.22\347\254\224\350\256\260.md" @@ -0,0 +1,8 @@ +#笔记 + +非空约束 not null + +默认约束 + +外键约束 + diff --git "a/11 \351\202\271\344\272\250\344\274\237/202303.21\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" "b/11 \351\202\271\344\272\250\344\274\237/202303.21\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" new file mode 100644 index 0000000000000000000000000000000000000000..c6e069436d18496da2083d602a2a66b910a07e77 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/202303.21\344\275\234\344\270\232(\350\241\245\351\275\220\347\232\204).md" @@ -0,0 +1,236 @@ +``` +-- 1、创建数据库test01_company +-- +CREATE DATABASE test01_company CHARSET utf8; +use test01_company; +-- 2、创建表格offices + +-- | 字段名 | 数据类型 | +-- | ---------- | ----------- | +-- | officeCode | int | +-- | city | varchar(30) | +-- | address | varchar(50) | +-- | country | varchar(50) | +-- | postalCode | varchar(25) | +CREATE TABLE offices( +officecode int, +city VARCHAR(30), +address varchar(50), +country VARCHAR(50), +postalcode VARCHAR(25)); +-- 3、创建表格employees +-- +-- | 字段名 | 数据类型 | +-- | --------- | ------------- | +-- | empNum | int(11) | +-- | lastName | varchar(50) | +-- | firstName | varchar(50) | +-- | mobile | varchar(25) | +-- | code | int | +-- | jobTitle | varchar(50) | +-- | birth | date | +-- | Note | varchar(255) | +-- | Sex | varchar(5) | +CREATE table employees( +empNum int, +lastName VARCHAR(50), +firstName VARCHAR(50), +mobile VARCHAR(25), +code int, +jobTitle VARCHAR(50), +birth date, +Note VARCHAR(50), +Sex VARCHAR(5)); +-- **要求4:**将表employees的mobile字段修改到code字段后面。 +alter table employees MODIFY mobile VARCHAR(25) after code; +-- **要求5:**将表employees的birth字段改名为birthday; +alter table employees change birth birthday date; +-- **要求6:**修改sex字段,数据类型为char(1)。 +alter table employees MODIFY sex char(1); +-- **要求7:**删除字段note; +alter table employees drop note; +-- **要求8:**增加字段名favoriate_activity,数据类型为varchar(100); +alter table employees add favoriate_activity varchar(100); +-- **要求9:**将表employees的名称修改为 employees_info +alter table employees rename to employees_info; +``` + +### 第二题 + +``` +-- 1、创建数据库test02db +CREATE DATABASE test02db; +-- 2、创建表格pet +use test02db; +-- | 字段名 | 字段说明 | 数据类型 | +-- | ------- | -------- | ----------- | +-- | name | 宠物名称 | varchar(20) | +-- | owner | 宠物主人 | varchar(20) | +-- | species | 种类 | varchar(20) | +-- | sex | 性别 | char(1) | +-- | birth | 出生日期 | year | +-- | death | 死亡日期 | year | +CREATE TABLE pet( +name VARCHAR(20), +owner VARCHAR(20), +species VARCHAR(20), +sex char(1), +birth year, +death year); +-- 3、添加记录 +-- +-- | name | owner | species | sex | birth | death | +-- | ------ | ------ | ------- | ---- | ----- | ----- | +-- | Fluffy | harold | Cat | f | 2003 | 2010 | +-- | Claws | gwen | Cat | m | 2004 | | +-- | Buffy | | Dog | f | 2009 | | +-- | Fang | benny | Dog | m | 2000 | | +-- | bowser | diane | Dog | m | 2003 | 2009 | +-- | Chirpy | | Bird | f | 2008 | | +INSERT into pet VALUES('Fluffy','harold','Cat','f',2003,2010),('Claws','gwen','Cat','m',2004,null),('Buffy',null,'Dog','f',2009,null),('Fang','benny','Dog','m',2000,null),('bowser','diane','Dog','m',2003,2009),('Chirpy',null,'Bird','f',2008,null); +SELECT * from pet; +-- 4、 添加字段主人的生日owner_birth。 +alter table pet add owner_birth VARCHAR(10); +-- 5、 将名称为Claws的猫的主人改为kevin +UPDATE pet set owner='kevin' WHERE name='Claws'; +SELECT * from pet; +-- 6、 将没有死的狗的主人改为duck +UPDATE pet set owner='duck' WHERE name='Fang'; +SELECT * from pet; +-- 7、 查询没有主人的宠物的名字; +SELECT * from pet where isnull(owner); +SELECT owner from pet where isnull; +-- 8、 查询已经死了的cat的姓名,主人,以及去世时间; +select name,owner,death from pet where death !='' and species='Cat'; +-- 9、 删除已经死亡的狗 +delete FROM pet where death !=''and species='Dog'; +-- 10、查询所有宠物信息 +SELECT * from pet; +``` + +### 第三题 + +``` +-- 1、创建数据库:test03_company +create database test03_company charset utf8; +-- 2、在此数据库下创建如下3表,数据类型,宽度,是否为空根据实际情况自己定义。 +-- A.部门表(department): +-- 部门编号(depid),部门名称(depname),部门简介(deinfo);其中部门编号为主键。 +use test03_company ; +create table department( +depid int primary key auto_increment, +depname char(10) not null unique key, +deinfo varchar(200) +); +-- B.雇员表(employee):雇员编号(empid),姓名(name),性别(sex),职称(title),出生日期(birthday),所在部门编号(depid);其中 +-- * 雇员编号为主键; +-- * 部门编号为外键,外键约束等级为(on update cascade 和on delete set null); +-- * 性别默认为男; +create table employee ( +empid int primary key auto_increment, +name varchar(10) not null, +sex enum('男','女') not null default '男', +title varchar(10), +birthday date, +depid int, +foreign key (depid) references department(depid) +); + +-- C.工资表(salary):雇员编号(empid),基本工资(basesalary),职务工资(titlesalary),扣除(deduction)。其中雇员编号为主键。 + +-- 3、给工资表(salary)的雇员编号(empid)增加外键约束,外键约束等级为(on update cascade 和on delete cascade) +CREATE table salary( +empid int PRIMARY key auto_increment, +basesalary VARCHAR(50), +titlesalary VARCHAR(50), +deduction VARCHAR(50), +FOREIGN key (empid) REFERENCES employee(empid) +); +-- 4、添加数据如下: +-- 部门表: +-- | 部门编号 | 部门名称 | 部门简介 | +-- | -------- | -------- | ------------ | +-- | 111 | 生产部 | Null | +-- | 222 | 销售部 | Null | +-- | 333 | 人事部 | 人力资源管理 | +insert into department VALUES(111,'生产部',null),(222,'销售部',null),(333,'人事部','人力资源管理'); +-- 雇员表: + +-- | 雇员编号 | 姓名 | 性别 | 职称 | 出生日期 | 所在部门编号 | +-- | -------- | ---- | ---- | ---------- | ---------- | ------------ | +-- | 1001 | 张三 | 男 | 高级工程师 | 1975-1-1 | 111 | +-- | 1002 | 李四 | 女 | 助工 | 1985-1-1 | 111 | +-- | 1003 | 王五 | 男 | 工程师 | 1978-11-11 | 222 | +-- | 1004 | 张六 | 男 | 工程师 | 1999-1-1 | 222 | +INSERT into employee VALUES(1001,'张三','男','高级工程师','1975-1-1',111),(1002,'李四','女','助工','1985-1-1',111),(1003,'王五','男','工程师','1978-11-11',222),(1004,'张六','男','工程师','1999-1-1',222); +-- 工资表: + +-- | 雇员编号 | 基本工资 | 职务工资 | 扣除 | +-- | -------- | -------- | -------- | ---- | +-- | 1001 | 2200 | 1100 | 200 | +-- | 1002 | 1200 | 200 | NULL | +-- | 1003 | 2900 | 700 | 200 | +-- | 1004 | 1950 | 700 | 150 | +insert into salary VALUES(1001,2200,1100,200),(1002,1200,200,null),(1003,2900,700,200),(1004,1950,700,150); +``` + +### 第四题 + +``` +-- 1、创建一个数据库:test04_school +-- +CREATE DATABASE test04_school CHARSET utf8; +-- 2、创建如下表格 +-- +-- 表1 Department表的定义 +-- +-- | **字段名** | **字段描述** | **数据类型** | **主键** | **外键** | **非空** | **唯一** | +-- | ---------- | ------------ | ------------ | -------- | -------- | -------- | -------- | +-- | DepNo | 部门号 | int(10) | 是 | 否 | 是 | 是 | +-- | DepName | 部门名称 | varchar(20) | 否 | 否 | 是 | 否 | +-- | DepNote | 部门备注 | Varchar(50) | 否 | 否 | 否 | 否 | +use test04_school; +CREATE table department( +DepNo int not null PRIMARY key unique key, +DepName VARCHAR(50) not null, +DepNote varchar(50)); +-- 表2 Teacher表的定义 +-- +-- | **字段名** | **字段描述** | **数据类型** | **主键** | **外键** | **非空** | **唯一** | +-- | ---------- | ------------ | ------------ | -------- | -------- | -------- | -------- | +-- | Number | 教工号 | int | 是 | 否 | 是 | 是 | +-- | Name | 姓名 | varchar(30) | 否 | 否 | 是 | 否 | +-- | Sex | 性别 | varchar(4) | 否 | 否 | 否 | 否 | +-- | Birth | 出生日期 | date | 否 | 否 | 否 | 否 | +-- | DepNo | 部门号 | int | 否 | 是 | 否 | 否 | +-- | Salary | 工资 | float | 否 | 否 | 否 | 否 | +-- | Address | 家庭住址 | varchar(100) | 否 | 否 | 否 | 否 | +CREATE table teacher( +Number int not null primary key unique key, +Name VARCHAR(30)not null, +Sex varchar(4), +Birth date, +DepNo int, +Salary float, +Address varchar(100), +FOREIGN key (DepNo)REFERENCES department(DepNo)); +-- 3、添加记录 +-- +-- | **DepNo** | **DepName** | **DepNote** | +-- | --------- | ----------- | ------------------ | +-- | 601 | 软件技术系 | 软件技术等专业 | +-- | 602 | 网络技术系 | 多媒体技术等专业 | +-- | 603 | 艺术设计系 | 广告艺术设计等专业 | +-- | 604 | 管理工程系 | 连锁经营管理等专业 | +INSERT into department VALUES(601,'软件技术系','软件技术等专业'),(602,'网络技术系','多媒体技术等专业'),(603,'艺术设计系','广告艺术设计等专业'),(604,'管理工程系','连锁经营管理等专业'); +-- | **Number** | **Name** | **Sex** | **Birth** | **DepNo** | **Salary** | **Address** | +-- | ---------- | -------- | ------- | ---------- | --------- | ---------- | ------------ | +-- | 2001 | Tom | 女 | 1970-01-10 | 602 | 4500 | 四川省绵阳市 | +-- | 2002 | Lucy | 男 | 1983-12-18 | 601 | 2500 | 北京市昌平区 | +-- | 2003 | Mike | 男 | 1990-06-01 | 604 | 1500 | 重庆市渝中区 | +-- | 2004 | James | 女 | 1980-10-20 | 602 | 3500 | 四川省成都市 | +-- | 2005 | Jack | 男 | 1975-05-30 | 603 | 1200 | 重庆市南岸区 | +INSERT into teacher VALUES(2001,'Tom','女','1970-01-10',602,4500,'四川省绵阳市'),(2002,'Lucy','男','1983-12-18',601,2500,'北京市昌平区'),(2003,'Mike','男','1990-06-01',604,1500,'重庆市渝中区'),(2004,'James','女','1980-10-20',602,3500,'四川省成都市'),(2005,'Jack','男','1975-05-30',603,1200,'重庆市南岸区'); +-- 4、用SELECT语句查询Teacher表的所有记录。 +SELECT*from teacher; +``` \ No newline at end of file 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/202303.7.md" similarity index 100% rename from "11 \351\202\271\344\272\250\344\274\237/3.7\344\275\234\344\270\232.md" rename to "11 \351\202\271\344\272\250\344\274\237/202303.7.md" diff --git "a/11 \351\202\271\344\272\250\344\274\237/20230311.md" "b/11 \351\202\271\344\272\250\344\274\237/20230311.md" new file mode 100644 index 0000000000000000000000000000000000000000..b51e63fe59956478fd02056706635d143c193b7c --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/20230311.md" @@ -0,0 +1,183 @@ +``` +CREATE DATABASE text1 CHARSET utf8; +USE text1; +CREATE TABLE stuinfo( +stuNO VARCHAR(11) PRIMARY KEY, +stuName VARCHAR(20), +stuage INT, +stuaddress VARCHAR(20), +stuseat INT, +stusex INT +); +CREATE TABLE stuexam( +examno INT, +stuNO VARCHAR(11), +writtenexam INT, +labExam INT, +FOREIGN KEY(stuno)REFERENCES stuinfo(stuno) +); +INSERT INTO stuinfo +VALUES +('s2501','张秋利',20,'美国硅谷',1,1), +('s2502','李斯文',18,'湖北武汉',2,0), +('s2503','马文才',22,'湖南长沙',3,1), +('s2504','欧阳俊雄',21,'湖北武汉',4,0), +('s2505','梅超风',20,'湖北武汉',5,1), +('s2506','陈旋风',19,'美国硅谷',6,1), +('s2507','陈风',20,'美国硅谷',7,0); +INSERT INTO stuexam +VALUES +(1,'s2501',50,70), +(2,'s2502',60,65), +(3,'s2503',86,85), +(4,'s2504',40,80), +(5,'s2505',70,90), +(6,'s2506',85,90); +``` + +-- 1.查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 + +``` +SELECT * FROM stuinfo; +``` + +SELECT stuno 学号,stuname 姓名,stuage 年龄, stuaddress 地址, stuseat 座号,stusex 性别 FROM stuinfo; +-- 2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 + +``` +SELECT stuname,stuage,stuaddress FROM stuinfo; +``` + +-- 3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 + +``` +SELECT stuNO 学号,writtenexam 笔试, labExam 机试 FROM stuexam; +``` + +-- 5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 + +``` +SELECT stuNO 学号,writtenexam 笔试, labExam 机试,writtenexam+labExam 总分 +FROM stuexam; +``` + +-- 6.查询学生信息表(stuInfo)中学生来自哪几个地方 + +``` +SELECT DISTINCT stuaddress FROM stuinfo; +``` + +-- 7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 + +``` +SELECT DISTINCT stuage from stuInfo; +``` + +-- 8.查询学生信息表(stuInfo)中前3行记录 + +``` +SELECT * FROM stuInfo LIMIT 0,3; +``` + +-- 9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 + +``` +SELECT stuname 姓名,stuseat 座位号 FROM stuInfo LIMIT 0,4; +``` + +-- 11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 + +``` +SELECT * FROM stuInfo WHERE stuaddress='湖北武汉'AND stuage='20'; +``` + +-- 12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 + +``` +SELECT labExam FROM stuexam WHERE labExam>=60 AND labExam<=80 ORDER BY labExam DESC; +``` + +-- 13.查询来自湖北武汉或者湖南长沙的学生的所有信息 + +``` +SELECT * FROM stuinfo; +SELECT * FROM stuexam; +SELECT * FROM stuinfo WHERE stuaddress='湖北武汉'OR stuaddress='湖南长沙'; +``` + +-- 14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 + +``` +SELECT writtenexam FROM stuexam WHERE writtenexam NOT BETWEEN 70 AND 90 ORDER BY writtenexam ASC; +``` + +-- 15.查询年龄没有写的学生所有信息 +SELECT * +-- 16.查询年龄写了的学生所有信息 + +``` +SELECT stuage FROM stuinfo INNER JOIN stuexam ON stuNO +``` + +-- 17.查询姓张的学生信息 + +``` +SELECT * FROM stuinfo WHERE stuName LIKE '张%'; +``` + +-- 18.查询学生地址中有‘湖’字的信息 + +``` +SELECT * FROM stuinfo WHERE stuaddress LIKE '%湖%'; +``` + +-- 19.查询姓张但名为一个字的学生信息 + +``` +SELECT * FROM stuinfo WHERE stuName LIKE '陈_'; +``` + +-- 20.查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 + +``` +SELECT * FROM stuinfo WHERE stuaddress LIKE '俊%'; +``` + +-- 21.按学生的年龄降序显示所有学生信息 + +``` +SELECT stuage FROM stuinfo ORDER BY stuage DESC; +``` + +-- 22.按学生的年龄降序和座位号升序来显示所有学生的信息 + +-- 23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 + +``` +select examNO,a.stuNO,writtenExam,labExam from stuinfo a right join stuexam b on a.stuno=b.stuNO where writtenExam=(select max(writtenExam) from stuexam); +``` + +-- 24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 + +``` +select examNO,a.stuNO,writtenExam,labExam from stuinfo a right join stuexam b on a.stuno=b.stuNO where labExam=(select min(labExam) from stuexam); +``` + +-- 25.查询每个地方的学生的平均年龄 + +``` +select stuAddress,round(avg(stuAge),2) 平均年龄 from stuinfo group by stuAddress; +``` + +-- 26.查询男女生的分别的年龄总和 + +``` +select stuSex,sum(stuAge) 年龄总和 from stuinfo group by stuSex; +``` + +-- 27.查询每个地方的男女生的平均年龄和年龄的总和 + +``` +select stuSex,round(avg(stuAge),2) 平均年龄,sum(stuAge) 年龄总和 from stuinfo group by stuSex; +``` + diff --git "a/11 \351\202\271\344\272\250\344\274\237/20232.24.md" "b/11 \351\202\271\344\272\250\344\274\237/20232.24.md" new file mode 100644 index 0000000000000000000000000000000000000000..352c4c5d3b14875c5395e25a243758a6d9cfba06 --- /dev/null +++ "b/11 \351\202\271\344\272\250\344\274\237/20232.24.md" @@ -0,0 +1,85 @@ +CREATE DATABASE test; +USE test; +ALTER DATABASE test charset utf8; +CREATE TABLE employee( + id INT, + name VARCHAR(20), + sex VARCHAR(20), + tel VARCHAR(20), + addr VARCHAR(50), + salary FLOAT + ); +ALTER TABLE employee charset utf8; +INSERT INTO employee(id,`name`,sex,tel,addr,salary)VALUES +(10001,'张一一','男','13456789000','广东韶关',10010.58), +(10002,'刘小红','女','13454319000','广东江门',12010.21), +(10003,'李四','男','0751-1234567','广东佛山',10040.11), +(10004,'刘小强','男','0755-5555555','广东深圳',15010.23), +(10005,'王艳','男',NULL,'广东广州',14050.16); +-- **要求1:**查询出薪资在12000~13000之间的员工信息。 +SELECT *FROM employee WHERE salary NOT BETWEEN 12000 AND 15000; +-- **要求2:**查询出姓“刘”的员工的工号,姓名,家庭住址。 +SELECT * FROM employee WHERE NAME LIKE '%刘%'; +-- **要求3:**将“李四”的家庭住址改为“广东韶关” +UPDATE employee SET addr ='广东韶关'WHERE NAME='李四'; +-- **要求4:**查询出名字中带“小”的员工 +SELECT * FROM employee WHERE NAME LIKE'%小%' +-- **要求5:**查询出薪资高于11000的男员工信息 +SELECT * FROM employee WHERE salary>11000; +-- **要求6:**查询没有登记电话号码的员工 +SELECT * FROM employee WHERE tel IS NULL; +-- **要求7:**查询薪资高于12000或者家是广东深圳、广州的男员工 +SELECT * FROM employee WHERE salary>11000 OR addr='广东深圳'AND'广州'AND sex='男'; +-- **要求8:**查询每个员工的年薪,显示“姓名、年薪” +SELECT name AS 姓名,salary as 年薪 FROM employee; +CREATE DATABASE test2; +USE test2; +ALTER DATABASE test2 charset utf8; +CREATE TABLE countries_info( + name VARCHAR(100), + continent VARCHAR(100), + area INT, + population INT, + gdp BIGINT +); +ALTER TABLE countries_info utf8; +INSERT INTO countries_info VALUES +('Afghanistan','Asia',652230,25500100,20343000000), +('Albania','Europe',28748,2831741,12960000000), +('Algeria','Africa',2381741,37100000,188681000000), +('Andorra','Europe',468,78115,3712000000), +('Angola','Africa',1246700,20609294,100990000000); +-- **要求1:** 查询大国 的国家名称、人口和面积。 +-- +-- 如果一个国家满足下述两个条件之一,则认为该国是 大国 : +-- +-- - 面积至少为 300万平方公里(即,3000000 km2) +-- +-- - 人口至少为 2500 万(即 25000000) +-- +-- **要求2:**查询属于亚洲的国家名称、所属大陆、面积、人口和 GDP 值 +SELECT * from countries_info; +SELECT * from countries_info WHERE continent='Africa'; + +-- **要求3:**查询国土面积不足1万平方公里且人口不走10万人的国家信息 + +SELECT * from countries_info WHERE !(gdp =10000)AND population<100000; + +-- **要求4:**查询国家名字中包含“o“字母的国家信息 +-- + +SELECT * from countries_info WHERE + +-- **要求5:**查询GDP值超过10000000000的国家信息 +-- + +SELECT * from countries_info WHERE gdp>10000000000; + +-- **要求6:**查询每个国家的人均贡献GDP值(GDP/人口总数)并显示为“国家名、人口、GDP值、人均贡献GDP值” +-- + +SELECT NAME 国家, population 人口, gdp GDP值,GDP/population 人均贡献GDP值 from + +-- **要求7:**查询人均贡献GDP值低于1000的国家信息。 +-- +-- **要求8:**查询每个国家的人均国土面积(面积/人口总数)并显示为“国家名、面积、人口、人均国土面积值” \ No newline at end of file diff --git "a/11 \351\202\271\344\272\250\344\274\237/20230309.md" "b/11 \351\202\271\344\272\250\344\274\237/222303.09.md" similarity index 100% rename from "11 \351\202\271\344\272\250\344\274\237/20230309.md" rename to "11 \351\202\271\344\272\250\344\274\237/222303.09.md"