MySQL(二)

练习1:

题目要求:创建如下所示的 courses 表 ,有: student (学生) 和 class (课程)
在这里插入图片描述
step1:创建表格:

CREATE TABLE courses(

student VARCHAR(255) NOT NULL ,

class VARCHAR(255) NOT NULL


);      

step2:插入数据

INSERT INTO courses VALUES('A','Math');
	
INSERT INTO courses VALUES('B','English');
	
INSERT INTO courses VALUES('C','Math');
	
INSERT INTO courses VALUES('D','Biology');
	
INSERT INTO courses VALUES('E','Math');
	
INSERT INTO courses VALUES('F','Computer');
	
INSERT INTO courses VALUES('G','Math');
	
INSERT INTO courses VALUES('H','Math');
	
INSERT INTO courses VALUES('I','Math');
	
INSERT INTO courses VALUES('A','Math');

step3:进行过滤–因学生A出现两次,且要求学生在每个课中不应被重复计算

select * from courses GROUP BY student

step4:编写查询语句,列出所有超过或等于5名学生的课

select class from (select * from courses GROUP BY student) as a GROUP BY a.class having count(class) >= 5;

step5:结果展示
在这里插入图片描述

练习2:---------update的更新查询(无中间临时表)

题目要求:创建一个 salary 表,如下所示,有m=男性 和 f=女性的值 。
在这里插入图片描述
应用到知识点:三目运算符(交换无中间临时列表)
step1:创建表格

CREATE TABLE salary(

id int NOT NULL PRIMARY key,

name varchar(255) NOT NULL,

sex VARCHAR(2) NOT NULL,

salary int(255) NOT NULL



);

step2:插入数据

insert into salary VALUES('1','A','m','2500');
insert into salary VALUES('2','B','f','1500');
insert into salary VALUES('3','C','m','5500');
insert into salary VALUES('4','D','f','500');

step3:进行交换

update salary set sex=if(sex='f','m','f')

step4:结果展示
在这里插入图片描述

练习3:—组合两张表格

在数据库中创建表1和表2,并各插入三行数据
题目要求:
在这里插入图片描述
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State
step1:创建表格及写入数据
表1:

create table person(

personid int unsigned primary key not null auto_increment,
firstname varchar(20) not null,
lastname varchar(20) not null


);

desc person;

insert into person values(1,"lei","li");
insert into person values(2,"ping","wang");
insert into person values(3,"gou","tou");

select * from person;
create table adderss(

addressid int unsigned primary key not null,
personid int unsigned not null,
city varchar(20),
state varchar(20)


);

insert into adderss values(121,1,"pudong","shanghai");
insert into adderss values(122,2,"zhangjiang","pudong");
insert into adderss values(132,3,"dizhonghai","songjiang");
select * from adderss;

step2:表1,表2效果显示
在这里插入图片描述
在这里插入图片描述
step3:组合表格

select person.firstname,person.lastname,adderss.city,adderss.state from person, adderss where person.personid=adderss.personid;

step4:组合表格效果显示
在这里插入图片描述

练习4:-------删除重复邮箱

题目要求:编写一个 SQL 查询,来删除 email 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。
在这里插入图片描述
思路1:首先依据id升做排序,后统计,则同email自动取的最小id。

select * from (select * from email group by id,email order by id asc) as a  group by a.email having count(*)>=1;

效果显示:
在这里插入图片描述
思路2:首先选出同email中的最小id对应的值,再联合不同的那个email,构建新的表

select * from email where id in (select min(id) from email group by email having count(*)>1 ) union (select * from email group by email having count(*)=1);

效果显示如上图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MySQL进制安装,可以按照以下步骤进行操作: 1. 下载MySQL进制文件,并将其移动到目标目录。根据引用,可以使用命令`mv mysql-5.7.30-linux-glibc2.12-x86_64 /home/mysql2/mysql`将MySQL进制文件移动到`/home/mysql2/mysql`目录中。 2. 创建MySQL的数据目录。可以使用命令`mkdir /usr/local/mysql`创建MySQL的数据目录。根据引用,可以使用命令`mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql`将MySQL进制文件移动到`/usr/local/mysql`目录中。 3. 设置MySQL数据目录的所有者和权限。根据引用,可以使用命令`chown -R mysql2.mysql2 /Lcdmp3_mysqldata/ /home/mysql2`将数据目录的所有者设置为`mysql2`,组设置为`mysql2`。 请注意,以上步骤仅为示例,具体的安装步骤可能因MySQL版本或操作系统的差异而有所不同。在进行MySQL进制安装之前,请确保已阅读并遵循官方文档或安装指南以确保正确安装和配置MySQL。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [进制方式安装mysql](https://blog.csdn.net/qq_26711103/article/details/128559643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MySQL进制安装](https://blog.csdn.net/LFCuiYs/article/details/120830896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值