MySQL基础练习(二)
第一个例子我们编写一个 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基础练习(二)的更多相关文章
- MySQL基础(二)——DDL语句
MySQL基础(二)--DDL语句 1.什么是DDL语句,以及DDL语句的作用 DDL语句时操作数据库对象的语句,这些操作包括create.drop.alter(创建.删除.修改)数据库对象. 2.基 ...
- Mysql基础(二)
学习路线:数据约束-> 数据库的设计过程-> 存储过程的相关知识-> 触发器-> 权限管理 (一)数据约束 1.1.默认值的设置 创建员工表emp 将默认地址设置为'中国'my ...
- Linux系统——MySQL基础(二)
# MySQL数据库完全备份与恢复## 数据库备份的分类1. 从物理与逻辑的角度,备份可以分为物理备份和逻辑备份.(1)物理备份:对数据库操作系统的物理文件(数据文件.日志文件)的备份.物理备份又可分 ...
- MySQL基础(二):视图、触发器、函数、事务、存储过程
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 视图和上一篇学到的临时表搜索类似. ...
- Mysql基础(二):MySQL之存储引擎
目录 MySQL之存储引擎 1.MySQL存储引擎介绍 2.MySQL结构 3.MySQL存储引擎分类 4.存储引擎的使用 5.总结 MySQL之存储引擎 1.MySQL存储引擎介绍 MySQL中的数 ...
- MySQL基础(二)(约束以及修改数据表)
一,约束以及修改数据表 约束的作用?1.约束保证数据的完整性.一致性:2.约束分为表级约束.列级约束:3.约束类型包括:NOT NULL(非空约束).PRIMARY KEY(主键约束).UNIQUE ...
- MySQL基础之二:主从复制
# mysql主从复制逻辑: 1.从库执行start slave 开启主从复制. 2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求. 3.主库收到从库请求后,将信息返回给从库,除了信 ...
- mysql基础教程(二)-----分组函数、多表查询、常见函数
分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值. 组函数类型 • AVG() • COUNT() • MAX() • MIN() • SUM() 组函数语法 AVG(平均值) ...
- mysql基础(二)—— 简单sql
查询 select * from company select c.code from company c; select m.bookname from myview m; (myview为视图) ...
随机推荐
- linux shell基本知识 sleep命令
在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时) sleep 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时
- nginx学习要点记录
IO多路复用: 1.轻量 2.cpu亲和性:把CPU核心和nginx工作进程绑定,把每个worker进程固定在一个CPU上执行,减少切换cpu的cache miss,获得更好的性能 3.IO多路复用e ...
- 论文笔记 Beyond Part Models: Person Retrieval with Refined Part Pooling_ECCV_2018
1. 摘要 使用part-feature 能够起到更好的效果,不过这个需要我们很好地定位part的位置. 本文中作者集中考虑part内部的一致性,提出了 part-based convolutiona ...
- git +maven+java+jenkins自动化代码持续集成
1.安装JDK JDK下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 新 ...
- PAT乙级1029
1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...
- Android的JNI调用(三)
注册JNI函数 注册之意就是将Java层的native函数与JNI层对应的实现函数关联起来,这样在调用Java层的native函数时,就能顺利转到JNI层对应的函数执行. (1)静态注册 根据函数名来 ...
- Struts2知识点小结(一)
一.struts2简介 1.Struts2是一个基于MVC设计模式的Web应用框架 只要是web层框架 一般就会遵守MVC设计模式 2.struts2与struts1的关系? ...
- Linux-2.6_LCD驱动学习
内核自带的驱动LCD,drivers/video/Fbmem.c LCD驱动程序 假设app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0--- ...
- 用NI的数据采集卡实现简单电子测试之3——绘制二极管V-I特性曲线图
本文从本人的163博客搬迁至此. 接下来用USB-6009和LabVIEW实现对二极管最重要的特性曲线“V-I特性曲线”的测试和绘制. 一.什么是二极管V-I特性曲线 康华光版的<电子技术 ...
- RMAN 与control文件的关系
试验: SQL> oradebug setmypid;Statement processed.SQL> 接着,进行backup: RMAN> list backup; using t ...