【MySQL】基础(一)

1. 下载示例数据库

示例数据库教程及链接

下载好数据以后,就按照教程创建数据库和表即可。

所有的代码都在yiibaidb.sql这个文件里,所以不用自己写,用txt打开此文件即可。

比如下图里创建了customer这个表,表里面有哪些字段,插入了哪些数据等等。
在这里插入图片描述
在这里插入图片描述


下面内容主要来自《SQL比知必会第4版》,需要的可以找我要电子版书~

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

SQL:结构化查询语言

SQL(发音为字母 S-Q-L或 sequel)是 **Structured Query Language(结构化查询语言)**的缩写。SQL是一种专门用来与数据库沟通的语言。与其他语言(如英语或 Java、C、PHP这样的编程语言)不一样,SQL中只有很少的词,这是有意而为的。设计 SQL的目的是很好地完成一项任务——提供一种从数据库中读写数据的简单有效的方法。

mySQL:DBMS数据库管理系统的一种

在这里插入图片描述

3. 查询语句 SELECT FROM

语句解释

SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。
为了使用 SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

在这里插入图片描述

去重语句

办法就是使用 DISTINCT关键字,顾名思义,它指示数据库只返回不同的值。

SELECT DISTINCT column_name
FROM table_name;

前N个语句

如果想限制查询返回的数量,如只返回前N个值,使用关键字LIMIT,用法如下:

SELECT column_name
FROM table_name
LIMIT n;

其中n为需要返回的数量,即前N个。

CASE…END判断语句

case具有两种格式。简单case函数和case搜索函数。

–简单case函数

case sex
when '1' then '男'
when '2' then '女'
else '其他' end

–case搜索函数

 case when sex = '1' then '男'
 when sex = '2' then '女'
 else '其他' end

下面这个链接讲的很清楚:
SQL的case when then else end语句的用法

4. 筛选语句 WHERE

语句解释
数据库表一般包含大量的数据,很少需要检索表中的所有行。通常只会根据特定操作或报告的需要提取表数据的子集。

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49;

语句解释: 从Products表中筛选出 prod_price = 3.49 的 prod_name, prod_price。
在这里插入图片描述

运算符/通配符/操作符

在这里插入图片描述

and:

在这里插入图片描述

or:

在这里插入图片描述

and + or:

在这里插入图片描述

在这里插入图片描述

in:

在这里插入图片描述

not:

在这里插入图片描述

like:

like %

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

like _

在这里插入图片描述

5. 分组语句 GROUP BY

GROUP BY 语句根据一个或多个列对结果集进行分组
聚集函数:汇总表中的数据的函数:平均、最大、最小、计数、求和

在这里插入图片描述
count() 是个聚合函数 作用是求表的所有记录数
select * from 表名 这个是查询表的所有记录
select count(*) from 表名 这个是查询表的所有记录数
在这里插入图片描述

语句理解:
count(*) as num_prods看作一个整体
在这里插入图片描述
过滤分组:
having:顾名思义,分组+过滤
在这里插入图片描述

where和having的区别:

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

6. 排序语句 ORDER BY

逆向排序: DESC
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC, prod_name;

分组+排序:

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

7. 函数

时间函数

在这里插入图片描述

数值函数

在这里插入图片描述

字符串函数

在这里插入图片描述
在这里插入图片描述
SOUNDEX()函数 第一次听这个函数,感觉挺有意思,例子如下:
在这里插入图片描述
在这里插入图片描述

8. SQL注释

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

9、SQL代码规范

SQL编程格式的优化建议

10、 作业

项目一:查找重复的电子邮箱(难度:简单)
创建 email表,并插入如下三行数据
±—±--------+
| Id | Email |
±—±--------+
| 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(255) NOT NULL PRIMARY KEY,
continent VARCHAR(255),
area INT,
population INT,
gdp INT
);

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值