--创建email表格
CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
);
--插入数据
INSERT INTO email(ID, Email)
VALUES ('1','a@b.com'),('2','c@d.com'),('3','a@b.com');
--查找 Email 表中所有重复的电子邮箱。
select Email,count(*) as count from email group by Email having count>1;
--删除重复的邮箱,重复的邮箱里只保留 Id 最小 的那个。
DELETE e1 FROM email e1,email e2 WHERE e1.Email = e2.Email AND e1.ID > e2.IdD
delete from email where ID not in (select minid from (select min(ID) as minid from email group by Email) b);
--创建courses表
CREATE TABLE courses(student VARCHAR(255),class VARCHAR(255)
);
--插入数据
INSERT INTO courses(student,class)
VALUES('A','Math'),('B','English'),('C','Math'),('D','Biology'),('E','Math'),('F','Computer'),('G','Math'),('H','Math'),('I','Math'),('A','Math');
--列出所有超过或等于5名学生的课,学生在每个课中不应被重复计算。
select class from courses group by class having count(distinct student) >= 5;
--下面这一句比下面多一列记录count
select class,count(distinct student) as count from courses group by class having count(distinct student)>=5; 
--创建salary表
CREATE TABLE salary(id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),sex VARCHAR(255),salary INT
); --AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
--插入数据
INSERT INTO salary(name,sex,salary)
VALUES('A','m','2500'),('B','f','1500'),('C','m','5500'),('D','f','5500');
--交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。
UPDATE salary set sex=case sexwhen 'm' then 'f'when 'f' then 'm'
end;   
--创建cinema表
CREATE TABLE cinema(id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,movie VARCHAR(255),description VARCHAR(255),rating FLOAT
); --AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
--插入数据
INSERT INTO cinema(movie,description,rating)
VALUES('War','great 3D','8.9'),('Science','fiction','8.5'),('irish','boring','6.2'),('Ice Song','Fantacy','8.2'),('House card','interesting','9.1');
--找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。
select * from cinema where description != 'boring' and id%2 = 1 ORDER BY rating DESC;
--创建Person表
CREATE TABLE Person(Personid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,firstname VARCHAR(255),lastname VARCHAR(255)
);
--插入数据
INSERT INTO Person(firstname,lastname)
VALUES('A','B'),('C','D'),('A','E');
-- --创建Address表
CREATE TABLE Address(Addressid INT PRIMARY KEY,Personid INT,City VARCHAR(255),State VARCHAR(255)
);
--插入数据
INSERT INTO Address(Addressid,Personid,City,State)
VALUES('123','3','Changsha','Hunan'),('456','4','Yueyang','Hunan'),('124','5','Beijing','Beijing');
--:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State
SELECT FirstName, LastName, City, State from Person left join Address on Address.PersonId  = Person.PersonId;
CREATE DATABASE IF NOT EXISTS data3 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use data3;
--创建Customers表格
CREATE TABLE Customers (
ID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255)
);
INSERT INTO Customers(Name)
VALUES('Joe'),('Henry'),('Sam'),('Max');
--创建Orders表格
CREATE TABLE Orders (
ID INT NOT NULL PRIMARY KEY,
CustomerId INT
);
INSERT INTO Orders(ID,CustomerId)
VALUES('1','3'),('2','1');
--找出所有从不订购任何东西的客户
SELECT Name from Customers left join Orders ON Orders.CustomerId = Customers.ID where Orders.ID is Null;

MYSQL 基本练习相关推荐

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  2. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

  3. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  4. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  5. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  6. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

  7. 设置腾讯云linux服务器中 MySQL 允许远程访问

    申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...

  8. Linux安装mysql,一步到位!

    今天在腾讯云上面买了一个服务器,想要把自己的项目部署一下,就要安装mysql,以下是我的安装步骤,在网上有很多人把install敲错了,还有的少-get,种种错误试完之后,我决定发一篇 sudo ap ...

  9. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  10. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

最新文章

  1. 【OpenCV 4开发详解】图像金字塔
  2. 风行未来oracle,oracle 7月份更新CVE-2020-14645 复现&利用
  3. Android——应用图标微技巧,系统中应用图标的适配
  4. Date和TimeZone的关系
  5. MySQL账户安全设置
  6. linux网络配置_linux复制和网络配置的小注意事项
  7. C#编程基础(简单概述与理解)
  8. mysql与_mysql常见的运算符及使用
  9. XPS Viewer 无法设置权限账户 - 无法激活此计算机上的任何权限管理账户
  10. 文件服务器实现网络打印,图文详解 服务器共享打印设置
  11. 深度学习:深度复数网络(Deep Complex Networks)-从论文到pytorch实现
  12. 计算机启动蓝屏,电脑开机蓝屏详细解决方案
  13. python中 math.isfinite返回值为false_带有Python示例的math.isfinite()方法
  14. 黑客搜索大法(Google Hacking)
  15. 怎么跟微信防封_最近微信域名防封的一些心得和经验,怎么才能做到域名防封
  16. MySql数据库之视图(定义视图、查询视图、更新视图、视图的作用)
  17. Kong+Konga配置原理、操作 学习分享
  18. wr885n 虚拟服务器,TP-Link TL-WR885N V1-V3路由器桥接设置教程 | 192路由网
  19. [时间序列分析][4]--AR模型,MA模型,ARMA模型介绍
  20. 我正在互站卖源码的日子

热门文章

  1. Java生鲜电商平台-商品中心的架构设计与源码解析
  2. 公众号文章怎么制作?
  3. typename 的两种用法
  4. CV2逐步学习-2:cv2.GaussianBlur()详解
  5. 智能车竞赛技术报告 | 节能信标组 - 兰州交通大学 - 先锋队
  6. Java和Vue项目打包并进行服务器部署
  7. git 创建本地分支及远程分支并且关联分支
  8. matlab 图像处理技术
  9. how2heap 深入学习(2)
  10. C++11中的时间库std::chrono(引发关于时间的思考)