第一节 MYSQL版本8.0.28安装及连接

一、下载mysql,并安装程序。

1.选择开发者模式,点击下一步。

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么

 2.相关软件检查,点击下一步。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_02

 3.点击执行。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_03

 4.安装全部MYSQL组件。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_04

 5.点击下一步。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_05

 6.一直下一步,直到输入root密码这一项。

MySQL连接的协议是什么 mysql的连接名是什么_数据库_06

 7.然后继续下一步。点击执行。

MySQL连接的协议是什么 mysql的连接名是什么_数据库_07

 执行全部后,显示安装成功。

 二、连接数据库

1.连接数据库

连接到mysql需要以下信息:

主机名:(如果连接到本地就使用localhost,不是就用IP)

端口号:(默认是3306,之外的自己填写)

用户名:xxxx

用户密码:xxxx

第二节 了解数据库

一、数据库相关介绍?

 数据库(database)是存储的数据的集合。通过DBMS(数据库管理系统)连接到数据库,进行查询、删除等操作通过DBMS发送给数据库,执行完后再将结果发送给我们。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_08

表(table)一种结构化文件,用来存储某种特定类型的数据。例如:顾客表(姓名、年龄、手机号)信息,与订单表(订单号、姓名、地址)两者之间存在关联,可以存在同一个表中,但分开存在后期查询的时候更方便。在一个数据库中表名是唯一的,在两个以上的数据库中,表名可以相同。

模式(schema)描述表的信息。类似一个框架,告诉你怎么创建表

列(column)表中的一个字段。每个列都有相应的数据类型。一个或多个列组成了表。

行(row)表中的一个记录。

数据类型(datebyte)数据的类型。它限制在列中存储的数据种类。日期字段,它只能存日期,不能存字符串。

主键(primary key)列的一种类型,它的值区分表中每个行。一个成绩表中,相同成绩的人有很多,怎么区分这些人,就是通过定义主键来区分。每张表都必须有一个主键,它的值不能为空,不更新主键值,不以可能会更改的值作为主键。

二、什么是SQL?

SQL简介:SQL是结构化查询语言,用于存储数据以及查询、更新和管理关系型数据库系统。

语句结构:包含6个部分。

数据查询语言(DQL:data query language):保留字有 Select 、Where、Order By、Group By、Having。

数据操作语言(DML:data manipulation language):保留字有Insert、Update、Delete。

事务控制语言(TCL):保留字有Commit、Savepoint、Rollback。

数据控制语言(DCL):保留字有Grant、Revoke。

数据定义语言(DDL):保留字有Create、Alter、Drop。

指针控制语言(CCL):它的语句像Declare Cursor、Fetch Into、Update Where Current用于对一个或多表独行的操作。

结束sql语句:

sql语句必须以;分号结束

SQL书写格式:

sql不区分大小写,但为了易于阅读一般关键字是全部大写,列和表名小写。

sql处理空格时会被忽略。

三、什么是MySQL?

MySQL是一种DBMS,有免费开源、执行快、可信赖、操作简单等优点。缺点是不易支持其他DBMS。

00:02:23 使用MySQL

一、选择数据库,用use关键字。

查询数据或者其他操作,都是需要选择一个数据库。可使用关键字 USE 命令,

1 use sql_store;    # 选择sql_store数据库

MySQL连接的协议是什么 mysql的连接名是什么_数据_09

 此时可以看到被选择的数据库加粗显示。如果是在非图形界面操作,必须先USE打开数据库,才能读取其中的数据。

二、查看数据库、表、列、用户等信息,用show关键字。

1.如果遇到不知道使用的数据库名字时,或者想要看某些数据库时,可以用 show 命令,

1 show databases;    # 查看数据库

MySQL连接的协议是什么 mysql的连接名是什么_数据库_10

2.选中一个数据库,还可以查看数据库内的表

1 show tables;    # 查看表

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_11

 3.当想查看表中都有哪些列时,会显示所有关于列的信息,包含属性,是否为空等。

1 show columns from customers;    # 查看customers表中的所有列

MySQL连接的协议是什么 mysql的连接名是什么_数据_12

4.想查看数据库有什么错误信息时,

1 show errors;    # 查看错误信息

MySQL连接的协议是什么 mysql的连接名是什么_操作符_13

01:28:12 检索数据

1.select 语句

select 语句用于从一个表或多个表中检索数据。使用select必须知道2个信息:想选择什么  和  从什么地方选择

下边使用customers表作为示例:

MySQL连接的协议是什么 mysql的连接名是什么_数据_14

 2.检索单个列

语法:select 列名 from 表名;

1 select first_name from customers;    # 从customers表中检索first_name列

MySQL连接的协议是什么 mysql的连接名是什么_数据_15

 3.检索多个列,用(,)隔开

语法:select 列名,列名,列名 from 表名;

1 select first_name,last_name,birth_date from customers;    # 从customers表中检索first_name,last_name,birth_date这3个列

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_16

 4.检索所有列,用(*)通配符检索

语法:select * from 表名;

1 select * from customers;    # 从customers中检索所有列

MySQL连接的协议是什么 mysql的连接名是什么_数据_17

 5. 检索不同的行,用distinct关键字去重

当你查找列的值时,不需要重复的值出现。例如,orders表中customer_id(客户id)。想要找到哪些用户下过订单,不需要显示重复的客户id。

MySQL连接的协议是什么 mysql的连接名是什么_数据库_18

语法:select distinct 列名 from 表名;

1 select distinct customer_id from orders;    # 从orders中检索customer_id列显示没有重复的数据

MySQL连接的协议是什么 mysql的连接名是什么_数据_19

注意:distinct不能部分使用,如果检索多列时,会把2列当做一列,只有每行的数据重复时才会去重。下图中红框就是例子,只有第一行6 1  和 6 2 重复时才会去除,否则就是检索所有。

1 select distinct customer_id,status from orders;    # 从orders表中检索customer_id,status列去除重复数据

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_20

 

6. 限制结果显示几行,用limit关键字。

当我们需要返回表中前几行时,我们可以用 limit 关键字。

① 只带一个值的limit默认从第1行开始计算。

语法:select 列名 from 表名 limit 行数;

1 select last_name from customers limit 5;  # 从customers表检索last_name列,只显示前5行;

MySQL连接的协议是什么 mysql的连接名是什么_操作符_21

② 还可以指定开始的行数。

语法:SELECT 列名 FROM 表名 LIMIT 开始行数,行数;

1 SELECT last_name FROM customers LIMIT 2,3;    # 从customers表中检索last_name列,显示从第2行开始的前3行

 

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_22

③ 当遇到行数不够时,LIMIT 只会返回能返回的行数。

1 select last_name from customers limit 5,12  # 从customers表中检索last_name显示从第5行到12行的数据。

MySQL连接的协议是什么 mysql的连接名是什么_数据库_23

 

 因为last_name只有10行,没有11  12行,所以只显示到第10行。

7. 使用完全限定的表名

在实际使用中,可能出现相同的数据库名字或者不同的数据库下有着相同的表名。当我们需要别人来确定时,可以通过限定列名的方式让其他人看明白。

语法:SELECT 表名.字段名 FROM 表名;

1 select customers.last_name from customers;  # 其中红色部分就是指定了哪张表下的哪个列。

 

01:42:11 排序检索数据

1. 排序数据

在实际使用中,数据库的数据会有更新和删除。此时顺序将会受到mysql重用回收存储空间的影响。在输出时数据会随之改变,不方便显示。这时可以用 ORDER BY 关键字进行排序。

SELECT last_name  FROM customers  ORDER BY last_name;  #从custmoers表中检索last_name列,并以字母的顺序排序。

MySQL连接的协议是什么 mysql的连接名是什么_数据_24

 

 2. 按多个列排序

如果按多个列排序,列之间用逗号隔开。

SELECT last_name,birth_date,phone  FROM customers  ORDER BY last_name,phone;  #从customers表中检索last_name,birth_date,phone3列,并对last_name进行排序,再对phone排序。

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_25

 

 3.指定排序方向

排序不仅可以从(A-Z)升序排列,还可以降序排列(Z-A),可以使用 DESC 关键字。

SELECT last_name  FROM customers  ORDER BY last_name  DESC ;  #从customers表中检索last_name列进行降序排列。

MySQL连接的协议是什么 mysql的连接名是什么_数据_26

 

 如果是多列排序,我只想要其中某一列是以降序排列。可以这样:

SELECT last_name,birth_date,phone  FROM customers  ORDER BY last_name  DESC , phone;  # 从customers表中检索last_name,birth_date,city列,并对last_name列进行降序,city默认升序

MySQL连接的协议是什么 mysql的连接名是什么_操作符_27

 

注意:DESC指对它前边的列起作用。如果想要每一列都是降序,需要再每个列后边加上DESC。

SELECT last_name,birth_date,city  FROM customers  ORDER BY last_name  DESC ,city  DESC ;

MySQL连接的协议是什么 mysql的连接名是什么_数据库_28

 

 DESC 在多列降序排列时,会首先对第一列进行降序,然后在第一列的基础上再进行第二列的降序。

01:48:44 过滤数据

1.使用WHERE子句。

在数据库中存在大量数据,每次检索并不是检索所有行那么简单。当你需要再其中查找一条数据时,可以通过 WHERE 关键字指定。

SELECT *  FROM customers  WHERE city =  'Sarasota' ;  # 从customers表中检索city是Sarasota的数据。

MySQL连接的协议是什么 mysql的连接名是什么_数据_29

 

注意:在遇到WHRER子句和ORDER BY 子句同时使用的情况,先写WHERE子句。

2.WHERE子句操作符

WHERE子句支持以下操作符:

操作符  说明

   =     等于

  <>         不等于

  !=     不等于

  <      小于

  >      大于

  <=   小于等于

  >=   大于等于

BETWEEN   在指定的两个值之间

下边举几个例子看实际操作:

SELECT *  FROM customers  WHERE points > 205;  # 从customers表中检索points大于205的数据;

 

MySQL连接的协议是什么 mysql的连接名是什么_操作符_30

 

 

SELECT *  FROM customers  WHERE first_name !=  'Ines' ;  # 从customers表中检索first_name不是Ines的数据。

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_31

 

 下边这个例子是检索范围之内的数据,会用BETWEEN...AND...关键字

SELECT *  FROM customers  WHERE points  BETWEEN 1600  AND 2000;  # 从customers表中检索points的值是在1600到2000之间的数据;

MySQL连接的协议是什么 mysql的连接名是什么_数据_32

 

 还有一个特殊检索,那就是空值检索。当一个列不包含值时,称其为空值NULL。通常用 IS NULL检查。

SELECT *  FROM customers  WHERE phone  IS NULL ;

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_33

 

 

02:05:11 数据过滤

操作符:用来连结或改变WHERE子句中的关键字。

1. AND操作符

AND 操作符用来检索满足所有条件的行。AND还可以添加多个条件,只要每添加1条就使用一个AND。

SELECT *  FROM customers  WHERE points < 500  AND points > 100;  # 从customers表中检索200

MySQL连接的协议是什么 mysql的连接名是什么_数据库_34

 

 2. OR操作符

OR 操作符用来检索匹配任意一个条件的行。

SELECT *  FROM customers  WHERE points < 1000  OR city =  'beijing' ;  # 从customers表中检索points < 1000的或者是city = beijing的

MySQL连接的协议是什么 mysql的连接名是什么_操作符_35

 

 3. 操作符优先级

当WHERE包含AND和OR操作符时,优先进行AND再OR。

SELECT *  FROM customers  WHERE points < 1000  OR city =  'beijing' AND first_name =  'Ines' ;  # 从customers表检索先 first_name = Ines 然后 points < 1000的或者是city = beijing 的行;

MySQL连接的协议是什么 mysql的连接名是什么_MySQL连接的协议是什么_36

 

 如果要改变操作优先级,可以通过()来。

SELECT *  FROM customers  WHERE (points < 1000  OR city =  'beijing' )  AND first_name =  'Ines' ;  # 从customers表中检索先条件是points<1000或者city=beijing的行,然后结果再和first_name=Ines 的条件一起检索。

MySQL连接的协议是什么 mysql的连接名是什么_数据库_37

 

 4.IN 操作符

IN 操作符用来指定条件范围,范围中的每个条件都可进行匹配,其中取合法值用逗号分隔。

SELECT *  FROM customers  WHERE points  IN (205, 947)  ORDER BY first_name;  # 从customers表中检索 points是205或points是947的行,并以first_name排序。

MySQL连接的协议是什么 mysql的连接名是什么_数据_38

 

 5. NOT 操作符

NOT 操作符是否认它后边的操作符关键字。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_39

 

 注意:mysql仅支持NOT对BETWEEN、EXISTS、IN取反。其他不支持

02:10:21 用通配符进行过滤

通配符:用来匹配值的一部分的特殊字符。

1. LIKE操作符

如果想在子句中使用通配符,必须使用LIKE操作符。

2. 百分号%通配符

% 表示任何字符出现任意次数。

MySQL连接的协议是什么 mysql的连接名是什么_数据_40

 

 % 可以在任意位置,出现任意次数使用。

MySQL连接的协议是什么 mysql的连接名是什么_操作符_41