MySQL基础(一)- 查询语句

一、 学习内容

  1. 导入示例数据库。
    软件:navicat for MySQL
    在这里插入图片描述
  2. SQL是什么?MySQL是什么?
    SQL是一种用于操作数据库的语言,MySQL是市场上第一个可用的开源数据库之一。
    SQL用于访问,更新和操作数据库中的数据。MySQL是一种RDBMS,它允许保持数据库中存在的数据。
    SQL是结构化查询语言。MySQL是一个使用MYSQL存储,检索,修改和管理数据库的RDBMS。
    SQL是一种查询语言,而MYSQL是数据库软件。
  3. 基础语句:
  • 查询语句
SELECT ID FROM email
  • 去重语句
--distinct 显示某字段不重复的具体值
SELECT DISTINCT Email FROM email
--distinct 显示某字段不重复的条数
SELECT COUNT(DISTINCT Email) FROM email;
--group by显示某字段不重复的具体值
SELECT Email FROM email GROUP BY Email;

  • 前N个语句
SELECT * FROM email LIMIT 3;
  • case语句
     SELECT
       case
    	 when ID='1' then '第一'
    	 when ID='2' then '第二'
    	 else 0
    	 end
     from email
  1. 筛选语句 WHERE
    语句解释:如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
SELECT * FROM email WHERE ID = 1;
  1. 分组语句 GROUP BY 和聚集函数
SELECT column_1 , SUM(column_2) as column
FROM Table_name
GROUP BY column_1;
函数作用
sum(column)求和
max(column)最大值
min(column)最小值
avg(column)平均值
first(column)第一条
last(column)最后一条
count(column)数量
  1. HAVING子句: 筛选成组后的各种数据,常包含聚集函数。where是针对整个表,不能包含聚集函数。

-- group by + HAVING
SELECT 类别 , SUM(数量) as 数量之和
FROM List
GROUP BY 类别
HAVING SUM(数量) > 10;
  1. 排序语句 ORDER BY
    语句解释:将查询数据排序后再返回数据
SELECT 类别 , SUM(数量) as 数量之和
FROM List
GROUP BY 类别
-- 正序ASC,逆序DESC
ORDER BY SUM(数量) DESC;
  1. 函数
    时间函数:SELECT NOW() ,SELECT curtime()
    数值函数: ABS(),CEIL() , MOD(x, y) , RAND() , ROUND() , TRUNCATE()
    字符串函数: 字符串函数汇总
  2. SQL注释: 单行注释 # – ,多行注释 /**/

二、任务

项目一:查找重复的电子邮箱(难度:简单)

创建 email表,并插入如下三行数据

IdEmail
1a@b.com
2c@d.com
3a@b.com

1)创建email表
2)插入数据,语句和结果如下:在这里插入图片描述
3) 编写一个 SQL 查询,查找 email 表中所有重复的电子邮箱。

   SELECT email FROM email GROUP BY email HAVING COUNT(email)>=2;  

结果

项目二:查找大国(难度:简单)

创建如下 World 表

namecontinentareapopulationgdp
AfghanistanAsia6522302550010020343000
AlbaniaEurope28748283174112960000
AlgeriaAfrica238174137100000188681000
AndorraEurope468781153712000
AngolaAfrica124670020609294100990000

如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这个国家就是大国家。
编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
1)创建表格

CREATE TABLE World (
name VARCHAR(50) NOT NULL,
continent VARCHAR(50) NOT NULL,
area INT NOT NULL,
population INT NOT NULL,
gdp INT NOT NULL
);

2)插入数据

INSERT INTO World VALUES( 'Afghanistan', 'Asia',652230,25500100,20343000);
INSERT INTO World VALUES( 'Albania', 'Europe' ,28748,2831741,12960000);
INSERT INTO World VALUES( 'Algeria', 'Africa' ,2381741,37100000,188681000);
INSERT INTO World VALUES( 'Andorra' , 'Europe' ,468,78115,3712000);
INSERT INTO World VALUES( 'Angola' , 'Africa' ,1246700,20609294,100990000);

3)输出表中所有大国家的名称、人口和面积

select name, population, area from World
WHERE area > 3000000 or (population > 25000000 AND gdp > 2000000)
  1. 结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值