MySQL学习打卡二
导入数据库
1.先进入相对应的连接,将yiibaidb数据库下载并且解压出来,这里我解压到F盘的MySQL文件夹下,如图1所示。
图1.yiibaidb数据库所在的文件夹。
2.使用快捷键WIN+R启动运行,在运行里面输入CMD,如图2所示。
图2.从运行打开DOS界面
3.找出MySQL的路径,如我的路径是C:\mysql-5.7.25-winx64\mysql-5.7.25-winx64\bin,然后在DOS界面输入CD/先返回到根目录,再输入CD mysql-5.7.25-winx64\mysql-5.7.25-winx64\bin 最后输入mysql -u root -p进入mysql。如图3所示:
图3.进入mysql
4.创建数据库,如图4所示
命令为CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #这句话是说如果没有该数据库的话就创建一个。
图4.创建数据库
5.导入数据库
图5.导入数据库
SQL是什么?MYSQL是什么?
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
MYSQL是关系型数据库管理系统,在MYSQL中增删查改都是用SQL语句。
查询语句语句解释
查询语句就是可以查找数据表中对应的一些数据,比如select * from mysql2;,这句话就是查询mysql2表中所有的数据。
去重语句
因为数据库中可能存在一些值是一样的记录,比如在学生信息这个数据库中,同岁的学生肯定很多,如果我们查找学生年龄的时候,就会出现很多相同的年龄数字,这对于结果可能没什么影响只是有很多的不方便,所以我们需要有去重语句,将一些重复的结果去掉,去重语句也有很多种情况,有全部相同的去重,有部分相同的去重,不同情况是需要采取不同的去重语句的。
前N个语句。
语句的基本形式是 select top X * from table_name #X是指前多少,比如X是10就是前十。
该语句是取排名前N个的数据,当然我们可以选择是降序还是升序。
CASE…END判断语句
CASE END函数分为简单和搜索两类,但是查找一些资料之后还是不太明白该语句的作用,是搜索SEX,如果sex的值为1就返回男,SEX的值为2就返回女而不是返回1,2的意思嘛?
筛选语句 WHERE
筛选语句就是在查询语句的基础上加上了一些条件,比如select * from mysql2 where id =1;这句话就是查询mysql2表中的id等于1的数据。
用于where比较条件的有:
等于:=、<、<=、>、>=、<>
包含:in、not in exists、not exists
范围:between…and、not between…and
匹配测试:like、not like
Null测试:is null、is not null
布尔链接:and、or、not
通配符:
在where子句中,通配符可与like条件一起使用。在Oracle中:
%(百分号): 用来表示任意数量的字符,或者可能根本没有字符。
_(下划线): 表示确切的未知字符。
?(问号): 用来表示确切的未知字符。
#(井号): 用来表示确切的阿拉伯数字,0到9。
a-d:用来表示字符范围,在这里是从a到d
分组语句 GROUP BY
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
HAVING子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
排序语句 ORDER BY
ORDER BY 语句用于对结果集进行排序。
排序分为正序和逆序两种,排序可以针对字母和数字,字母的话就是按照字母表来排序。
函数
SQL里面也是有很多可以用的函数的,这里简单介绍几个常用的函数。
时间函数
getdate() 获取当前时间
dateadd() 在向指定日期加上一段时间的基础上,返回新的 datetime 值,例如:向日期加上2天
datediff() 返回跨两个指定日期的日期和时间边界数
数值函数
ABS() 返回数值的绝对值
ACOS() 返回数字表达式的反余弦值,返回NULL如果值不是在-1到1范围
MOD() 求余函数
SQL注释
单行注释
SQL语句中的单行注释使用 –
多行注释
SQL语句中的多行注释采用 /*
SQL代码规范
关键字都是用大写,自己编写的名字一般用小写。
作业一
创建好数据库
图5.数据库
编写一个 SQL 查询,查找 Email 表中所有重复的电子邮箱。
SQL语句为 SELECT DISTINCT Email FROM email WHERE Email IN(SELECT Email FROM email GROUP BY Email HAVING COUNT(1)>=2);
结果为图6所示
图6.作业一的结果
作业二
创建好数据库
图7.作业二的数据库
如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这
编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
SQL语句如下:
SELECT name ,population,area FROM World WHERE area >3000000 or (population > 25000000 and gdp >20000000);
结果如下:
图8.任务二的结果