MySQL 基础 (一)- 查询语句--day2打卡

这篇博客介绍了MySQL的基础知识,包括SQL语言的概念、查询语句SELECT FROM、去重、分组、排序和筛选等操作。还讨论了如何使用LIMIT、DISTINCT和WHERE子句,以及GROUP BY和HAVING的用途。此外,提到了ORDER BY用于排序,函数的应用,如时间、数值和字符串函数,并给出了SQL代码规范和示例任务。
摘要由CSDN通过智能技术生成

MySQL 基础 (一)- 查询语句

1. 导入示例数据库

请参考 教程

2. SQL是什么?MySQL是什么?

SQL是用于访问数据库的标准化语言:

  • 数据定义语言包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等;

  • 数据操作语言包含允许您更新和查询数据的语句;

  • 数据控制语言允许授予用户权限访问数据库中特定数据的权限;

MySQL是MySQL是数据库软件,需要学习SQL语言才能有效地使用它。

3.查询语句 SELECT FROM

即从表中读取数据:

 select * from  table_name;

4.去重语句

在表中,一个列可能会包含多个重复值,可以通过distinct列出不同的值;DISTINCT 关键词用于返回唯一不同的值:

select distinct (列名)from table_name where condition1,condition2,......;

5.前N个语句

这里可以利用LIMIT子句, LIMIT子句在SELECT语句中用于约束结果集中的行数,它接受一个或两个参数。两个参数的值必须为零或正整数
用LIMIT提取前N行:

 select * from table_name limit N;

提取表中的第M+1到第N条语句;

 select * from table_name limit M,N;

还可以用top来提取前N行:

 select top  n * from 表名;

CASE…END判断语句:

如:

 CASE 
            WHEN 条件1 THEN 结果1
            WHEN 条件2 THEN 结果2
            WHEN 条件3 THEN 结果3
            .........
            WHEN 条件N THEN 结果N
        END
        方式

或者

CASE SEX 
                WHEN '1' THEN '男'
                WHEN '0'  THEN '女'
                ELSE '其他' END

6. 筛选语句 WHERE
当我们想用select语句从表中筛选出满足某些条件的数据时,需要用where语句来写出条件:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....

筛选语句常用到的操作符:
在这里插入图片描述

7. 分组语句 GROUP BY

聚合函数

[GROUP BY {col_name | position}] [ASC | DESC],…]

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

HAVING子句在SELECT语句中是用来为某一组行或聚合指定过滤条件

8. 排序语句 ORDER BY

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序,默认按照升序对记录进行排序。你也可以自己选择排序方式:
ASC:升序(默认)
DESC:降序

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]

9. 函数
MySQL里有下面集中函数
时间函数
数值函数
字符串函数
具体内容可参考:函数

10. SQL注释

SQL语句中的单行注释使用–

create database database_x    --创建数据库database_x

多行注释用/…/

create database database_x
/*
创建一个数据库
名字叫做database_x
*/

11.SQL代码规范
请参考:
SQL编程格式的优化建议
SQL Style Guide

任务

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

创建 email表,并插入如下三行数据
±—±--------+
| Id | c |
±—±--------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
±—±--------+

编写一个 SQL 查询,查找 Email 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:
±--------+
| Email |
±--------+
| a@b.com |
±--------+
说明:所有电子邮箱都是小写字母

代码如下:(在进行下列操作之前,一定要先完成上面的导入示例数据库)

– 创建表

CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
);

– 插入数据

INSERT INTO email VALUES('1','a@b.com');
INSERT INTO email VALUES('2','c@d.com');
INSERT INTO email VALUES('3','a@b.com');

任务二:查找大国(难度:简单)
创建如下 World 表
±----------------±-----------±-----------±-------------±--------------+
| name | continent | area | population | gdp |
±----------------±-----------±-----------±-------------±--------------+
| Afghanistan | Asia | 652230 | 25500100 | 20343000 |
| Albania | Europe | 28748 | 2831741 | 12960000 |
| Algeria | Africa | 2381741 | 37100000 | 188681000 |
| Andorra | Europe | 468 | 78115 | 3712000 |
| Angola | Africa | 1246700 | 20609294 | 100990000 |
±----------------±-----------±-----------±-------------±--------------+
如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这
编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
例如,根据上表,我们应该输出:
±-------------±------------±-------------+
| name | population | area |
±-------------±------------±-------------+
| Afghanistan | 25500100 | 652230 |
| Algeria | 37100000 | 2381741 |
±-------------±------------±-------------+

任务二代码如下:
– 创建表

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
);

– 插入数据

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);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值