Mysql数据库基础学习笔记

1.mysql查看当前登录的账户名以及数据库

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 Mysql数据库基础学习笔记 Mysql 第1张

一、单表查询

1、创建数据库yuzly,创建表fruits

  创建表     

CREATE TABLE fruits(f_id CHAR(10) NOT NULL,s_id INT NOT NULL,f_name char(255) NOT NULL,f_price DECIMAL(8,2) NOT NULL,PRIMARY KEY(f_id));

  插入内容   

INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('a1',101,'apple',5.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('b1',101,'blackberry',10.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('bs1',102,'orange',11.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('bs2',105,'melon',8.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('t1',102,'banana',10.3);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('t2',102,'grape', 5.3);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('o2',103,'coconut',9.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('c0',101,'cherry',3.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('a2',103,'apricot',2.2);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('l2',104,'lemon',6.4);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('b2',104,'berry',7.6);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('m1',106,'mango',15.6);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('m2',105,'xbabay',2.6);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('t4',107,'xbababa',3.6);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('m3',105,'xxtt',11.6);
INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('b5',107,'xxxx',3.6 );

2、查询所有字段

  Mysql数据库基础学习笔记 Mysql 第2张

3.查询指定字段

  Mysql数据库基础学习笔记 Mysql 第3张

4.带IN关键字的查询

IN关键字:IN(xx,yy,...) 满足条件范围内的一个值即为匹配项

  Mysql数据库基础学习笔记 Mysql 第4张

5.带BETWEEN AND的范围查询

BETWEEN ... AND ... : 在...到...范围内的值即为匹配项

  Mysql数据库基础学习笔记 Mysql 第5张

6.带LIKE的字符匹配查询

LIKE: 相当于模糊查询,和LIKE一起使用的通配符有  "%"、"_" 

  "%":作用是能匹配任意长度的字符。

  "_":只能匹配任意一个字符

  Mysql数据库基础学习笔记 Mysql 第6张

7.查询空值

空值不是指为空字符串""或者0,一般表示数据未知或者在以后在添加数据,也就是在添加数据时,其字段上默认为NULL,也就是说,如果该字段上不插入任何值,就为NULL。此时就可以查询出来。

SELECT * FROM 表名 WHERE 字段名 IS NULL;  //查询字段名是NULL的记录

SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;  //查询字段名不是NULL的记录

8.带AND的多条件查询

  Mysql数据库基础学习笔记 Mysql 第7张

9.带OR的多条件查询

  Mysql数据库基础学习笔记 Mysql 第8张

10.关键字DISTINCT(查询结果不重复)

  Mysql数据库基础学习笔记 Mysql 第9张

11.对查询结果排序(ORDER BY)

  Mysql数据库基础学习笔记 Mysql 第10张

  Mysql数据库基础学习笔记 Mysql 第11张

12.分组查询(GROUP BY)

分组之后还可以进行条件过滤,将不想要的分组丢弃,使用关键字 HAVING

HAVING和WHERE都是进行条件过滤的,区别就在于 WHERE 是在分组之前进行过滤,而HAVING是在分组之后进行条件过滤。

  Mysql数据库基础学习笔记 Mysql 第12张

  Mysql数据库基础学习笔记 Mysql 第13张

13.使用LIMIT限制查询结果的数量

  Mysql数据库基础学习笔记 Mysql 第14张

14.COUNT()函数

COUNT(*):计算表中的总的行数,不管某列有数值或者为空值,因为*就是代表查询表中所有的数据行。

COUNT(字段名):计算该字段名下总的行数,计算时会忽略空值的行,也就是NULL值的行。

 Mysql数据库基础学习笔记 Mysql 第15张

15.SUM()函数

  Mysql数据库基础学习笔记 Mysql 第16张

16.AVG()函数

  Mysql数据库基础学习笔记 Mysql 第17张

17.MAX()函数、MIN()函数

  Mysql数据库基础学习笔记 Mysql 第18张

二、多表查询

1.创建表,插入数据 

CREATE TABLE suppliers(s_id INT NOT NULL,s_name CHAR(50) NOT NULL,s_city CHAR(50) NULL,s_zip CHAR(10) NULL,s_call CHAR(50) NOT NULL,PRIMARY KEY(s_id));

INSERT INTO suppliers VALUES(101,'Supplies A','Tianjin','400000','18075');
INSERT INTO suppliers VALUES(102,'Supplies B','Chongqing','400000','44333');
INSERT INTO suppliers VALUES(103,'Supplies C','Shanghai','400000','90046');
INSERT INTO suppliers VALUES(104,'Supplies D','Zhongshan','400000','11111');
INSERT INTO suppliers VALUES(105,'Supplies E','Taiyuang','400000','22222');
INSERT INTO suppliers VALUES(106,'Supplies F','Beijing','400000','45678');
INSERT INTO suppliers VALUES(107,'Supplies G','Zhengzhou','400000','33332');
INSERT INTO suppliers VALUES(108,'Supplies H','Xiaan','400000','44442');
INSERT INTO suppliers VALUES(109,'Supplies I','Fuzhou','400000','55552');
INSERT INTO suppliers VALUES(110,'Supplies J','Xiamen','400000','66662');

2.普通双表连接查询

  Mysql数据库基础学习笔记 Mysql 第19张

3.内连接查询

格式:表名 INNER JOIN 表名 ON 连接条件

  Mysql数据库基础学习笔记 Mysql 第20张

4.外连接查询

内连接是将符合查询条件(符合连接条件)的行返回,也就是相关联的行就返回。

外连接除了返回相关联的行之外,将没有关联的行也会显示出来。

左外连接查询

格式: 表名 LEFT JOIN 表名 ON 条件;

返回包括左表中的所有记录和右表中连接字段相等的记录,通俗点讲,就是除了显示相关联的行,还会将左表中的所有记录行都显示出来。

  Mysql数据库基础学习笔记 Mysql 第21张

5.右外连接查询

格式: 表名 RIGHT JOIN 表名 ON 条件 

返回包括右表中的所有记录和右表中连接字段相等的记录

  Mysql数据库基础学习笔记 Mysql 第22张

6.复合条件连接查询

 Mysql数据库基础学习笔记 Mysql 第23张

7.使用INNER JOIN语法进行内连接查询,并对查询结果进行排序

 Mysql数据库基础学习笔记 Mysql 第24张

8.子查询

将查询一张表得到的结果来充当另一个查询的条件,这样嵌套的查询就称为子查询。

搭建环境

  Mysql数据库基础学习笔记 Mysql 第25张

9.带ANY、SOME关键字的子查询

ANY关键字接在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE,则返回TRUE,通俗点讲,只要满足任意一个条件,就返回TRUE。

Mysql数据库基础学习笔记 Mysql 第26张

10.带ALL关键字的子查询

使用ALL时表示需要同时满足所有条件。

  Mysql数据库基础学习笔记 Mysql 第27张

11.带EXISTS关键字的子查询

EXISTS关键字后面的参数是任意一个子查询,如果子查询有返回记录行,则为TRUE,外层查询语句将会进行查询,如果子查询没有返回任何记录行,则为FALSE,外层查询语句将不会进行查询。

  Mysql数据库基础学习笔记 Mysql 第28张

12.带IN关键字的子查询

  Mysql数据库基础学习笔记 Mysql 第29张

13.合并结果查询

利用UNION关键字,可以将查询出的结果合并到一张结果集中,也就是通过UNION关键字将多条SELECT语句连接起来,注意,合并结果集,只是增加了表中的记录,并不是将表中的字段增加,仅仅是将记录行合并到一起。其显示的字段应该是相同的,不然不能合并。 

UNION:执行的时候会删除重复的记录,所有返回的行度是唯一的,

UNION ALL:不删除重复航也不对结果进行自动排序。

  Mysql数据库基础学习笔记 Mysql 第30张

14.使用UNION,而不用UNION ALL的话,重复的记录就会被删除掉。

  Mysql数据库基础学习笔记 Mysql 第31张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄