学习内容:

1.导入数据库
mysql导入数据库有两种方法;
方法一是使用命令行利用sql语句建库,导入数据,详情可以参见:
MySQL导入示例数据库
方法二是利用mysql的可视化工具Navicat for MySQL进行导入操作:
【mysql学习】day2
点确定然后将sql文件直接拖入软件中,点开始
【mysql学习】day2
再点关闭
【mysql学习】day2
2.SQL是什么,mysql是什么
SQL是结构化查询语言的英文缩写(structured query language),它是一种用于访问数据库的标准化语言;而mysql是一种关系型数据库(RDBMS),一种数据库的应用软件。
3.查询语句 SELECT FROM
语句解释 : 从一个或者多个表中检索信息。
去重语句:使用distinct关键字。例如sql语句:SELECT DISTINCT vend_id FROM Products;
通过该语句,DBMS只会返回不同的vend_id行,重复的行将会被过滤掉。
前N个语句:在mysql中如果想得到前N行数据可以使用LIMIT关键字,例如:SELECT city FROM offices LIMIT 5;得到满足选择条件的前5行。在oracle中使用行计数器(ROWNUM)来计算行。
任意N个语句(OFFSET关键字):SELECT city FROM offices LIMIT 5 OFFSET 5;表示从第5行开始的5行数据。
CASE…END判断语句
4.筛选语句 WHERE
语句解释:在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。
运算符/通配符/操作符
【mysql学习】day2
5.分组语句 GROUP BY
五种聚集函数:
【mysql学习】day2
语句解释:用于汇总数据而不需要检索数据,以便分析和报表生成。
HAVING子句(与WHERE子句的区别):having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
6.排序语句 ORDER BY
语句解释 ORDER BY +列名或者相对列的位置(参考书P23-P27)
正序、逆序:默认排序顺序是升序,如果要逆序排序的话可以使用DESC 关键字。如果要对多个列逆序则需要在每个列前面加上DESC关键字,例如:ORDER BY columname1 DESC, columnname2 DESC;
7.函数 时间函数 数值函数 字符串函数
8.SQL注释
行内注释:用符号“–”或者“#”
多行注释:与C语言一样
9.SQL代码规范
SQL编程格式的优化建议
10.作业一:
查找重复的电子邮箱(难度:简单)
创建 email表,并插入如下三行数据
±—±--------+
| Id | Email |
±—±--------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
±—±--------+

编写一个 SQL 查询,查找 email 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:
±--------+
| Email |
±--------+
| [email protected] |
±--------+

解答:用group by 关键字对Email分组,再用having对于邮箱地址出现次数小于1次的进行过滤即可。
【mysql学习】day2
作业二:查找大国(难度:简单)
创建如下 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 |
±-------------±------------±-------------+

解答:使用“or”和“and”关键字即可。
【mysql学习】day2

相关文章: