第一个例子我们编写一个 SQL 查询,列出所有超过或等于5名学生的课。

先建表

CREATE TABLE courses(
student VARCHAR(10) NOT NULL,
class VARCHAR(10) NOT NULL
);

再插入数据

INSERT INTO courses 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(student)>=5;

交换工资

第二个例子交换工资,同样 先建表

CREATE TABLE salary(id INT PRIMARY KEY,
NAME VARCHAR(10) NOT NULL,
sex VARCHAR(10) NOT NULL,
salary INT) NOT NULL
);

再插入数据

INSERT INTO salary VALUES (1,"A","m",2500),
(2,"B","f",1500),
(3,"C","m",5500),
(4,"D","f",500);

我们需要交换 f 和 m

UPDATE salary
SET
sex=
CASE sex
WHEN 'm'
THEN 'f'
ELSE 'm'
END;

这样就交换成功了

表的连接

先建表,我建了下面的两个表

我们需要编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State

select person.FirstName,person.LastName,address.City,address.State
from person left join address on person.PersonID=address.PersonID;

删除重复的邮箱

我们用上次已经建好的email表

delete t1 from email t1, email t2 where t1.Email=t2.Email AND t1.Id>t2.Id;

MySQL基础练习(二)的更多相关文章

  1. MySQL基础(二)——DDL语句

    MySQL基础(二)--DDL语句 1.什么是DDL语句,以及DDL语句的作用 DDL语句时操作数据库对象的语句,这些操作包括create.drop.alter(创建.删除.修改)数据库对象. 2.基 ...

  2. Mysql基础(二)

    学习路线:数据约束-> 数据库的设计过程-> 存储过程的相关知识-> 触发器-> 权限管理 (一)数据约束 1.1.默认值的设置 创建员工表emp 将默认地址设置为'中国'my ...

  3. Linux系统——MySQL基础(二)

    # MySQL数据库完全备份与恢复## 数据库备份的分类1. 从物理与逻辑的角度,备份可以分为物理备份和逻辑备份.(1)物理备份:对数据库操作系统的物理文件(数据文件.日志文件)的备份.物理备份又可分 ...

  4. MySQL基础(二):视图、触发器、函数、事务、存储过程

    一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 视图和上一篇学到的临时表搜索类似. ...

  5. Mysql基础(二):MySQL之存储引擎

    目录 MySQL之存储引擎 1.MySQL存储引擎介绍 2.MySQL结构 3.MySQL存储引擎分类 4.存储引擎的使用 5.总结 MySQL之存储引擎 1.MySQL存储引擎介绍 MySQL中的数 ...

  6. MySQL基础(二)(约束以及修改数据表)

    一,约束以及修改数据表 约束的作用?1.约束保证数据的完整性.一致性:2.约束分为表级约束.列级约束:3.约束类型包括:NOT NULL(非空约束).PRIMARY KEY(主键约束).UNIQUE ...

  7. MySQL基础之二:主从复制

    # mysql主从复制逻辑: 1.从库执行start slave 开启主从复制. 2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求. 3.主库收到从库请求后,将信息返回给从库,除了信 ...

  8. mysql基础教程(二)-----分组函数、多表查询、常见函数

    分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值. 组函数类型 • AVG() • COUNT() • MAX() • MIN() • SUM() 组函数语法 AVG(平均值) ...

  9. mysql基础(二)—— 简单sql

    查询 select * from company select c.code from company c; select m.bookname from myview m; (myview为视图) ...

随机推荐

  1. 10分钟安装OpenStack

    1 OpenStack初学者的苦恼 2 OpenStack最低配置要求 3 配置UOS环境 3.1 设置网络 3.1.1 创建路由器 3.1.2 创建网络 3.1.3 创建两个子网 3.2 创建UOS ...

  2. IPython学习笔记(一)

    开始看<利用python进行数据分析>这一本书,记录下学习的点滴,对于每一个小知识点记录得过于详细,但是好记性不如烂笔头,动动手还是记得比较深刻点. 1.Tab自动补齐 输入an后按Tab ...

  3. C++矩阵库 Eigen 简介

    最近需要用 C++ 做一些数值计算,之前一直采用Matlab 混合编程的方式处理矩阵运算,非常麻烦,直到发现了 Eigen 库,简直相见恨晚,好用哭了. Eigen 是一个基于C++模板的线性代数库, ...

  4. 初识Qt文件下载

    1.新建一个Qt Gui应用,项目名称为http,基类选择为QMainWindow,类名设置为MainWindow. 2.在http.pro文件中的QT  += core gui后添加\ networ ...

  5. 【转载】Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南

    洋洋洒洒一大篇,就没截图了,这几天一直在折腾这个东西,实在没办法,不想用Linux但是,为了Caffe,只能如此了,安装这些东西,遇到很多问题,每个问题都要折磨很久,大概第一次就是这样的.想想,之后应 ...

  6. ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1498], [18713], [18720]

    数据库server出现ORA-00600[kcratr_nab_less_than_odr].不能open数据库 1.open数据库报ORA-00600[kcratr_nab_less_than_od ...

  7. unlink与close关系

    close和unlink.以前时候总是不太理解两者的区别,最近看到一篇博客比较详细地描述了二者的本质区别,这里我引用了它的原文.         “每一个文件,都可以通过一个struct stat的结 ...

  8. js call().apply().bind()的用法

    function Person(age) { this.age = age; } Person.prototype.sayHi = function (x, y) { console.log((x + ...

  9. 部署MongoDB复制集(副本集)

    环境 操作系统:Ubuntu 18.04 MongoDB: 4.0.3 服务器 首先部署3台服务器,1台主节点 + 2台从节点 3台服务器的内容ip分别是: 10.140.0.5 (主节点) 10.1 ...

  10. 深入理解PHP 数组之count 函数

    count()PHP count() 函数用于计算数组中的单元数目或对象中的属性个数,返回数组的单元个数或对象中的属性个数.语法:int count( mixed var [, int mode] ) ...