MySQL学习笔记(二)

1、查询语句

练习:https://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql-database-server.html

1.1 导入数据库

mysql> CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8
mysql> use yiibaidb;
mysql> source /Users/bishounendai/Downloads/yiibaidb.sql

在这里插入图片描述

1.2 查询语句 SELECT FROM

SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
FROM指定要查询数据的表或视图。
(1)查看数据库里的表offices的地区号、城市、国家。
在这里插入图片描述
(2)查看表里的所有信息
在这里插入图片描述

1.3 where子句

WHERE子句允许根据指定的过滤表达式或条件来指定要选择的行。
(1)选择具有职位名称为销售代表的行记录。
在这里插入图片描述
(2)查询将获得办公室代码大于5的每位员工:
在这里插入图片描述
可用于在WHERE子句中形成过滤表达式的比较运算符:
在这里插入图片描述
(3)通配符
1)百分号(%)通配符:可以匹配多个字符
匹配lastname首字母是P的人
在这里插入图片描述
2)下划线(_)通配符:只能匹配单个字符

1.4 GROUP BY分组语句

(1)根据officecode进行分组,显示每组的人数在这里插入图片描述
(2)having子句过滤分组,而where过滤行
在这里插入图片描述

1.5 ORDER BY排序语句

(1)按员工号排序
在这里插入图片描述
(2)按num排序
在这里插入图片描述

1.6 函数

(1)聚合函数
MySQL提供了许多聚合函数,包括AVG,COUNT,SUM,MIN,MAX等。
例:选择员工号最大的数
在这里插入图片描述

(2)字符串函数
连接多个字符串
在这里插入图片描述
在这里插入图片描述
(3)时间函数
在这里插入图片描述

1.7 注释

单行注释:#
多行注释:
在这里插入图片描述

1.8 格式建议

(1)使用统一的、描述性强的字段命名规则
(2)保证字段名是独一无二且不是保留字的,不要使用连续的下划线,不用下划线结尾
(3)最好以字母开头
id 标识符——user_id 用户标识 item_id 商品标识
dt 表示某个事件发生的时间——ord_dt 订单时间 exam_dt 考试时间
num 表示某事相关的数字——sale_num 销量
name 用字母表示名称——stu_name 学生名 等

sql规则可参考:https://www.sqlstyle.guide/

2、练习

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

(1)新建一个数据库
mysql> create database test
mysql> use test
(2)新建一个表emil
mysql> CREATE TABLE email (
    -> ID INT NOT NULL PRIMARY KEY,
    -> Email VARCHAR(255)
    -> )
    -> ;

在这里插入图片描述

(3)编写一个 SQL 查询,查找 test表中所有重复的电子邮箱。
select Max(Email) as Email from email where Email in (select Email from email group by Email having count(Email)>1);

在这里插入图片描述

2.2 查找大国(难度:简单)

(1)创建表
mysql> 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
    -> );
 (2)插入数据
 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);

展示表的内容:在这里插入图片描述

(3)如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这个国家就是大国家。

编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
mysql> 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、付费专栏及课程。

余额充值