MySQL任务2---MySQL基础知识

1. 导入示例数据库
教程: https://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql-database-server.html

2. SQL是什么?MySQL是什么?
SQL是一种用于操作数据库的语言,SQL是用于所有数据库的基本语言,SQL是操作关系数据库管理系统的标准语言,SQL用于访问,更新和操作数据库中的数据。

MySQL是一种RDBMS,它允许保持数据库中存在的数据,MySQL提供对数据库的多用户访问。

结论:

SQL是一种用于操作数据库的语言

MySQL是市场上第一个可用的开源数据库之一

SQL用于访问,更新和操作数据库中的数据

MySQL是一种RDBMS,它允许保持数据库中存在的数据

SQL是结构化查询语言

MySQL是一个使用MYSQL存储,检索,修改和管理数据库的RDBMS

SQL是一种查询语言,而MYSQL是数据库软件

3. 查询语句 SELECT FROM

语句解释 :查询语句,from查询表中的记录
去重语句:select distinct 字段 from 表名;
前N个语句:LIMIT N
CASE...END判断语句:判断正负后给变量赋值

4. 筛选语句 WHERE

语句解释:子句允许根据指定的过滤表达式或条件来指定要选择的行

运算符/通配符/操作符:

比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<

范围运算符(表达式值是否在指定的范围):BETWEEN…AND… NOT BETWEEN…AND…

列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……) NOT IN (项1,项2……)

模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE

空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL

逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR
1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30
2、列表运算符例:country IN (‘Germany’,‘China’)
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、 varchar、text、ntext、datetime和smalldatetime等类型查询。

可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^]: 其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

5. 分组语句 GROUP BY
聚集函数:SQL中提供的聚合函数可以用来统计、求和、求最值等等。

语句解释:用于单个字段分组,也可用于多个字段分组

HAVING子句:HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。

6. 排序语句 ORDER BY

语句解释:根据指定的列对结果集进行排序
正序、逆序:ASC:升序(默认),DESC:降序。

7. 函数

时间函数:NOW()、CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP,LOCALTIME()、LOCALTIME、LOCALTIMESTAMP()
数值函数:ABS()、COS()、EXP()、MOD()、PI()、RAND()、SIN()、SQRT()、TAN()
字符串函数:LEFT()、LENGTH()、LOCATE()、LOWER()、LTRIM()、RIGHT()、RTRIM()、UPPER()

8. SQL注释

#这是一条注释------------- /* … */ 这是多行注释

9. SQL代码规范

[SQL编程格式的优化建议] https://zhuanlan.zhihu.com/p/27466166
[SQL Style Guide] https://www.,dsqlstyle.guide/

#作业#
项目一:查找重复的电子邮箱(难度:简单)
创建 email表,并插入如下三行数据
±—±--------+
| Id | c |
±—±--------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
±—±--------+

编写一个 SQL 查询,查找 Email 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:
±--------+
| Email |
±--------+
| 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);

编写一个SQL查询,输出表中所有大国家的名称、人口和面积:

SELECT `name`, population, area FROM world WHERE area > 3000000 OR ( population > 25000000 AND gdp > 20000000 );

在这里插入图片描述在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值