示例及练习
1-MOSHOU.hero.txt
create database MOSHOU;
use MOSHOU;
create table hero(
id int,
name char(15),
sex enum("男","女"),
country char(10)
);
insert into hero values
(1,"曹操","男","魏国"),
(2,"小乔","女","吴国"),
(3,"诸葛亮","男","蜀国"),
(4,"貂蝉","女","东汉"),
(5,"赵子龙","男","蜀国"),
(6,"张飞","男","蜀国");

table:
+------+-----------+------+---------+
| id | name | sex | country |
+------+-----------+------+---------+
| 1 | 曹操 | 男 | 魏国 |
| 2 | 小乔 | 女 | 吴国 |
| 3 | 诸葛亮 | 男 | 蜀国 |
| 4 | 貂蝉 | 女 | 东汉 |
| 5 | 赵子龙 | 男 | 蜀国 |
| 6 | 张飞 | 男 | 蜀国 |
+------+-----------+------+---------+
1.查找所有蜀国人信息
select * from hero where country="蜀国"
2.查找女英雄的信息,只显示姓名,性别和国家
select name,sex,country from hero where sex="女"
3.把曹操的国籍改为蜀国
update hero set country="蜀国" where name="曹操";
4.把张飞的性别改为女,国籍改为泰国
update hero set sex="女",country="泰国" where name="张飞";
5.把id为2的记录的姓名改为司马懿,性别改为男,国家改为魏国
update hero set name="司马懿",sex="男",country="魏国" where id=2;
6.删除所有泰国人
delete from hero where country="泰国";
7.删除所有的英雄
delete from hero;
==============================================
2-MOSHOU.sanguo.txt
use MOSHOU;
create table sanguo(
id int,
name char(20),
gongji int,
fangyu tinyint unsigned,
sex enum("男","女"),
country varchar(20)
);
insert into sanguo values
(1,"诸葛亮",120,20,"男","蜀国"),
(2,"司马懿",119,25,"男","魏国"),
(3,"关6羽",188,60,"男","蜀国"),
(4,"赵云666",200,66,"男","魏国"),
(5,"8孙权",110,20,"男","吴国"),
(6,"貂蝉",666,10,"女","魏国"),
(7,null,1000,99,"男","蜀国"),
(8,"",1005,88,"女","蜀国");
table:
+------+-----------+--------+--------+------+---------+
| id | name | gongji | fangyu | sex | country |
+------+-----------+--------+--------+------+---------+
| 1 | 诸葛亮 | 120 | 20 | 男 | 蜀国 |
| 2 | 司马懿 | 119 | 25 | 男 | 魏国 |
| 3 | 关6羽 | 188 | 60 | 男 | 蜀国 |
| 4 | 赵云666 | 200 | 66 | 男 | 魏国 |
| 5 | 8孙权 | 100 | 60 | 男 | 吴国 |
| 6 | 貂蝉 | 666 | 10 | 女 | 魏国 |
| 7 | NULL | 1000 | 99 | 男 | 蜀国 |
| 8 | | 1005 | 88 | 女 | 蜀国 |
+------+-----------+--------+--------+------+---------+
===========================================================
1.找出攻击力高于150的英雄的名字和攻击力
select name,gongji from sanguo where gongji>150;
2.找出防御力不等于100的英雄信息
select * from sanguo where fangyu!=100;
3.找出攻击力大于200的蜀国英雄的名字和攻击力
select name,gongji from sanguo where country="蜀国" and gongji>200;
4.查找蜀国和魏国的英雄信息
select * from sanguo where country in ("蜀国","魏国");
5.将吴国英雄中攻击值为110的英雄的攻击值设置为100,防御值设置为60
update sanguo set gongji=100,fangyu=60 where country="吴国" and gongji=110;
6.查找攻击值在100-200之间的蜀国英雄信息
select * from sanguo where country="蜀国" and (gongji between 100 and 200);
7.查找除去蜀国和吴国的女英雄信息
select * from sanguo where country not in("蜀国","吴国") and sex="女";
8.查找(id为1,3,5的蜀国英雄和貂蝉) 的编号,姓名,国家
select id,name,country from sanguo where name="貂蝉" or (country="蜀国" and id in (1,3,5) );
9.查找姓名为null的蜀国男英雄信息
select * from sanguo where name is null and country="蜀国" and sex="男";
10.查找姓名为""的英雄的id,姓名,国家
select id,name,country from sanguo where name="";
11.将英雄的按防御值从低到高排序
select * from sanguo order by fangyu;
12.将蜀国英雄按攻击值从高到低排序
select * from sanguo where country="蜀国" order by gongji desc;
13.将魏蜀两国的男英雄中名字为三个字的英雄按防御值升序排列
select * from sanguo where
country in ("魏国","蜀国") and sex="男" and name like "___" order by fangyu;
14.查找防御值第2名到第4名的蜀国英雄记录
select * from sanguo where country="蜀国" order by fangyu desc limit 1,3;
15.查找攻击值前三名且名字不为空值的蜀国英雄的记录
select * from sanguo where country="蜀国" and name is not null order by gongji desc limit 3;
16.攻击力最强值是多少
select max(gongji) as best from sanguo; 用best取代max(gongji)在表格内显示字段名
17.统计id,name两个字段分别有多少条记录
select count(id),count(name) from sanguo; count不统计null,统计""
18.统计蜀国英雄中攻击值大于200的英雄数量
select count(*) as "蜀国攻击力>200的英雄数量" from sanguo where country="蜀国" and gongji>200;
19.统计sanguo表中一共有几个国家
select country from sanguo group by country;
select distinct country from sanguo; distinct的实现
select distinct name,country from sanguo; 这句把name,country当成整体,记录必须完全一样才能去重,distinct后面可以跟n个字段
20.计算所有国家的平均攻击力
select country,avg(gongji) from sanguo group by country;
21.查找所有国家中 英雄数量最多的 前2名国家名称及英雄数量
select country,count(*) as "numbers(英雄)" from sanguo group by country order by count(*) desc limit 2;
22.找出平均攻击力大于105的国家的前2名,显示国家名称和平均攻击力
select country,avg(gongji) as "平均攻击力" from sanguo group by country having avg(gongji)>105 order by avg(gongji) desc limit 2;
23.计算蜀国一共有多少个英雄
select count(distinct name) from sanguo where country="蜀国";
24.查询时显示所有英雄的攻击力 * 10
select name,gongji*10,country from sanguo;
25找出每个国家攻击力最高的英雄的名字和攻击值(子查询)
select name,gongji from sanguo where (country,gongji) in(select country,max(gongji) from sanguo group by country);
==================================================
示例3
table province
+----+--------+-----------+
| id | pid | pname |
+----+--------+-----------+
| 1 | 130000 | 河北省 |
| 2 | 140000 | 陕西省 |
| 3 | 150000 | 四川省 |
| 4 | 160000 | 广东省 |
| 5 | 170000 | 山东省 |
| 6 | 180000 | 湖北省 |
| 7 | 190000 | 河南省 |
| 8 | 200000 | 海南省 |
| 9 | 200001 | 云南省 |
| 10 | 200002 | 山西省 |
+----+--------+-----------+

table city
+----+--------+--------------+--------+
| id | cid | cname | cp_id |
+----+--------+--------------+--------+
| 1 | 131100 | 石家庄市 | 130000 |
| 2 | 131101 | 沧州市 | 130000 |
| 3 | 131102 | 廊坊市 | 130000 |
| 4 | 131103 | 西安市 | 140000 |
| 5 | 131104 | 成都市 | 150000 |
| 6 | 131105 | 重庆市 | 150000 |
| 7 | 131106 | 广州市 | 160000 |
| 8 | 131107 | 济南市 | 170000 |
| 9 | 131108 | 武汉市 | 180000 |
| 10 | 131109 | 郑州市 | 190000 |
| 11 | 131110 | 北京市 | 320000 |
| 12 | 131111 | 天津市 | 320000 |
| 13 | 131112 | 上海市 | 320000 |
| 14 | 131113 | 哈尔滨 | 320001 |
| 15 | 131114 | 雄安新区 | 320002 |
+----+--------+--------------+--------+

table county
+----+--------+--------------+--------+
| id | coid | coname | copid |
+----+--------+--------------+--------+
| 1 | 132100 | 正定县 | 131100 |
| 2 | 132102 | 浦东新区 | 131112 |
| 3 | 132103 | 武昌区 | 131108 |
| 4 | 132104 | 哈哈 | 131115 |
| 5 | 132105 | 安新县 | 131114 |
| 6 | 132106 | 容城县 | 131114 |
| 7 | 132107 | 雄县 | 131114 |
| 8 | 132108 | 嘎嘎 | 131115 |
+----+--------+--------------+--------+
3.1.内连接
1.从省表和市表中提取省名和市名一一对应
select province.pname,city.cname from province
inner join city
on province.pid = city.cp_id; #只显示完全匹配的值
2.从省市县表中提取省市县名一一对应
select province.pname,city.cname,county.coname from province
inner join city on province.pid = city.cp_id
inner join county on county.copid = city.cid; #连接的是前面生成的结果集
3.用左连接以省表为主显示省市详细信息
select province.pname,city.cname from province
left join city on province.pid = city.cp_id; #省表显示所有,匹配的市表有显示,未匹配显示null
4.用左连接以省表为主显示省市县详细信息
select province.pname,city.cname,county.coname from province
left join city on province.pid = city.cp_id
left join county on county.copid = city.cid;
5.显示省市县详细信息,要求县全部显示
select province.pname,city.cname,county.coname from province
left join city on province.pid = city.cp_id
right join county on county.copid = city.cid;
6.显示省市区详细信息,要求 市 全部显示
select province.pname,city.cname,county.coname from province
right join city on province.pid = city.cp_id
left join county on county.copid = city.cid;

mysql的示例及练习的更多相关文章

  1. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  2. Mysql语句示例

    Mysql语句示例 最常用 sql 语句总结 前言 Mysql 是数据库开发使用的主要平台之一.sql 的学习掌握与使用是数据库开发的基础,此处展示详细sql 语句的写法,及各种功能下的 sql 语句 ...

  3. MySQL安装示例数据库

    MySQL安装示例数据库 本文档演示如何下载及安装MySQL示例数据库sakila及employees数据库 1. 安装sakila数据库 1.1 下载sakila数据库 wget http://do ...

  4. mysql死锁示例

    MySQL有三种锁的级别:页级.表级.行级. MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-level locki ...

  5. 创建MySQL存储过程示例

    创建MySQL存储过程是学习MySQL数据库必须要掌握的知识,下文对创建MySQL存储过程作了详细的介绍,供您参考学习. AD:2013大数据全球技术峰会课程PPT下载 下文将教您如何创建MySQL存 ...

  6. mysql 视图示例

    基本操作 建立视图 CREATE VIEW view_test(qty,price,total) AS SELECT quantity,price,quantity*price FROM t; 多表视 ...

  7. SpringBoot+MyBatis+Mysql 详细示例

    SpringBoot与MyBatis整合,底层数据库为mysql的使用示例  项目下载链接:https://github.com/DFX339/bootdemo.git   新建maven项目,web ...

  8. mysql asyn 示例

    这篇文章摘自mysql asyn作者的博客,博客地址 开头有一个简单示例,然后是一个在play上的应用.例子我并没有跑过,但是仍能学到不少东西. object BasicExample { def m ...

  9. mysql 函数示例(转)

    MySQL函数大全及用法示例 1.字符串函数ascii(str)   返回字符串str的第一个字符的ascii值(str是空串时返回0)  mysql> select ascii('2');   ...

  10. MySQL操作示例

    """ MySQL综合练习作业 """ # 1.自行创建测试数据: # 创建数据库 """ create da ...

随机推荐

  1. python3使用myqr生成链接二维码

    技术背景 二维码技术在各个领域中都已经有非常成熟的应用,比如随处可见的二维码支付,比如疫情期间的绿码,再比如工业领域中,可以使用二维码作为定位的标签,大大提升了室内定位技术的精确度.二维码的格式内容大 ...

  2. 机器学习--PR曲线, ROC曲线

    在机器学习领域,如果把Accuracy作为衡量模型性能好坏的唯一指标,可能会使我们对模型性能产生误解,尤其是当我们模型输出值是一个概率值时,更不适宜只采取Accuracy作为衡量模型性泛化能的指标.这 ...

  3. java面试一日一题:mysql中常用的存储引擎有哪些?

    问题:请讲下mysql中常用的引擎有哪些? 分析:该问题主要考察对mysql存储引擎的理解,及区别是什么? 回答要点: 主要从以下几点去考虑, 1.mysql的存储引擎的基本概念? 2.mysql中常 ...

  4. SHA256sum系列命令检测文件完整性

    1 sha256sum sha256sum是一个检测文件完整性的命令,一般下载的文件都会附带一个哈希值,使用sha256sum计算下载文件的哈希值再与目标哈希值比较即可确定文件是否完整,类似的命令还有 ...

  5. Vue3.0中引入地图(谷歌+高德+腾讯+百度)

    1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...

  6. Apache配置虚拟目录+Zend Studio访问

    1 概述 Apache配置虚拟目录,然后可以通过Zend Studio的工程去访问,只需要修改Apache的httpd.conf文件. 2 修改httpd.conf 找到Apache安装目录下的htt ...

  7. git Windows下重命名文件,大小写敏感问题

    作为一个重度强迫症患者,是不忍受文件名,有字母大小拼写错误的,但是在git下,已是受控版本文件要改过来,要费些周章了. 一.环境 Widnows + git version 2.24.0 + Tort ...

  8. PAT 乙级 -- 1014 -- 福尔摩斯的约会

    题目简介 大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm&quo ...

  9. Android apk快速定位、灰色按钮克星--DroidSword

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80994434 在进行Android应用程序的逆向分析时,经常需要对Android ...

  10. Linux中Nginx服务器的部署和配置

    目录 Nginx安装方式: yum源安装 目录结构: 源码包安装 目录结构: Nginx中支持PHP Nginx中配置php对mysql数据库的支持 Nginx配置反向代理服务器 正常代理 根据不同端 ...