任务二 MySQL 基础 (一)- 查询语句 任务时间 请于2月28日22:00前完成,在本文章评论打卡。逾期尚未打卡的会被清退。
学习内容 :
1. 导入示例数据库,教程 MySQL导入示例数据库 - MySQL教程™
2. SQL是什么?MySQL是什么?
3. 查询语句 SELECT FROM 语句解释 去重语句 前N个语句 CASE...END判断语句
4. 筛选语句 WHERE 语句解释 运算符/通配符/操作符
5. 分组语句 GROUP BY 聚集函数 语句解释 HAVING子句
6. 排序语句 ORDER BY 语句解释 正序、逆序
7. 函数 时间函数 数值函数 字符串函数
8. SQL注释
9. SQL代码规范 [SQL编程格式的优化建议] SQL编程格式的优化建议 - 知乎 [SQL Style Guide] SQL style guide by Simon Holywell
学习过程:
1. 跟着教程走即可。
================================================================================================
2.
SQL 是用于访问和处理数据库的标准的计算机语言。
SQL 是什么?
- SQL,指结构化查询语言,全称是 Structured Query Language。
- SQL 让您可以访问和处理数据库。
- SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL 是开源的,所以你不需要支付额外的费用。
- MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
- MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
- MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
================================================================================================
3.
SELECT 语句用于从数据库中选取数据。
结果被存储在一个结果表中,称为结果集。
SQL SELECT 语法
SELECT column_name,column_name
FROM table_name;
与
SELECT * FROM table_name;
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
SQL SELECT DISTINCT 语法
SELECT DISTINCT column_name,column_name
FROM table_name;
SQL SELECT TOP 子句
SELECT TOP 子句用于规定要返回的记录的数目。
SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。
注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。
MySQL 语法
SELECT column_name(s)
FROM table_name
LIMIT number;
在SQL Server中 case...end 语句,一般有如下两种用法:
1、相当于C#中if...else,例:
1 select CName,头衔=case 2 when CLevel='A1' then '初级程序员' 3 when CLevel='A2' then '中级程序员' 4 when CLevel='A3' then '高级程序员' 5 else '骨灰级大师' 6 end 7 from Coder
这种写法可以用来做区间或等值的判断。
2、相当于C#中的switch...case,例:
1 select CName,头衔=case CLevel 2 when 'A1' then '初级程序员' 3 when 'A2' then '中级程序员' 4 when 'A3' then '高级程序员' 5 else '骨灰级大师' 6 end 7 from Coder
这种写法只能用来做等值的判断。
注意事项:在 case...end 语句中,then后面值的数据类型必须保持一致。
4.
SQL WHERE 子句
WHERE 子句用于提取那些满足指定标准的记录。
SQL WHERE 语法
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
WHERE 子句中的运算符
下面的运算符可以在 WHERE 子句中使用:
运算符 | 描述 |
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
===========================================================================================
5.
GROUP BY 语句
GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
SQL HAVING 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
================================================================================================
6.
SQL ORDER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
SQL ORDER BY 语法
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
================================================================================================
7.
================================================================================================
8.
单行注释 # 或者 --
多行注释 /* */
作业:
1.
# Write your MySQL query statement below
select distinct P1.Email
from Person as P1, Person as P2
where P1.Id != P2.Id and P1.Email = P2.Email
2.
# Write your MySQL query statement below
select name, population, area
from World
where area > 3000000 or (population > 25000000 and gdp > 20000000)