WHCSRL 技术网

MySQL


一、数据库简介

数据库(database)是用来组织、存储和管理数据的仓库。

市面常见数据库

  • MySQL 数据库(目前使用最广泛、流行度最高的开源免费数据库;Community + Enterprise)
  • Oracle 数据库(收费)
  • SQL Server 数据库(收费)
  • Mongodb 数据库(Community + Enterprise)

数据库分类

  • 传统型数据库(又叫:关系型数据库,SQL 数据库),比如:MySQL 、Oracle 、SQL Server
  • 新型数据库,(又叫:非关系型数据库,NoSQL 数据库),比如:Mongodb

两种数据库各有优缺点,相辅相成

传统型数据库的数据组织结构

在传统型数据库中,数据的组织结构分为

  • 数据库(database)
  • 数据表(table)
  • 数据行(row)
  • 字段(field)
    这 4 大部分组成

实际开发中库、表、行、字段的关系

  1. 在实际项目开发中,一般情况下,每个项目都对应 独立的数据库
  2. 不同的数据,要存储到数据库的不同表中,例如:用户数据存储到 users 表中,图书数据存储到 books 表中。
  3. 每个表中具体存储哪些信息,由字段来决定,例如:我们可以为 users 表设计 id、username、password 这 3 个字段。
  4. 表中的行,代表每一条具体的数据。


二、安装并配置 MySQL

MySQL8.0.18安装自定义安装_思苑-CSDN博客_mysql自定义安装



三、MySQL的基本使用

1. 使用 MySQL Workbench 管理数据库

① 连接数据库

在这里插入图片描述

② 主界面的组成部分

在这里插入图片描述

③ 创建数据库

在这里插入图片描述
注意:创建新数据库的名字不能包含中文,空格要用 _代替

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

④ 创建数据表

在这里插入图片描述
字段数据类型 DataType

  1. int 整数
  2. varchar(len)字符串
  3. tinyint(1)布尔值

字段的特殊标识

  1. PK (Primary Key) 主键、唯一标识
  2. NN(Not Null) 值不允许为空
  3. UQ(Unique) 值唯一
  4. AI(Auto Increment) 值自动增长
  5. Default/Expression 默认值

⑤ 向表中写入数据

在这里插入图片描述
在这里插入图片描述


2. 使用 SQL 管理数据库

① 什么是 SQL

SQL(Structured Query Language)是 结构化查询语言,专门用来访问和处理 关系型数据库 的编程语言,而非关系型数据库不支持 SQL 语言

② 查询数据(select)

SELECT 语句用于从 查询数据。执行的结果被存储在一个 结果表 中(称为 结果集)。语法格式如下:

-- 这是注释
-- 从 FROM 指定的【表中】,查询出【所有的】数据,* 表示【所有的】
SELECT * FROM 表名称

-- 从 FROM 指定的【表中】,查询出指定【列名称(字段)】的数据,多个列名之间以 英文逗号分隔
SELECT 列名称1, 列表名2 FROM 表名称 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意: SQL 语句中的 关键字对大小写不敏感。SELECT 等效于 select,FROM 等效于 from。但是表名、列名等对大小写敏感

举例
从 users 表中选取所有的列
在这里插入图片描述
在这里插入图片描述
获取名为 “username” 和 “password” 的列的内容(从名为 “users” 的数据库表)
在这里插入图片描述


③ 插入数据(insert into)

INSERT INTO 语句用于向数据表中插入新的数据行,语法格式如下:

-- 向指定的表中,插入如下几列数据,列的值通过 values 指定
INSERT INTO table_name(1,2,...) VALUES(1,2,...)
  • 1
  • 2

注意:列的值要一一对应,多个列和多个值之间,使用英文的逗号分隔

示例:
向 users 表中,插入一条 username 为 tony stark,password 为 098123 的用户数据
在这里插入图片描述
在这里插入图片描述


④ 更新数据(update)

Update 语句用于修改表中的数据。语法格式如下:

-- 用 UPDATE 指定要更新哪个表中的数据
-- 用 SET 指定列对应的新值
-- 用 WHERE 指定更新的条件
UPDATE 表名称 SET 列名称1 = 新值, 列名称2 = 新值 WHERE 列名称 = 某值
  • 1
  • 2
  • 3
  • 4

注意:

  • 多个被更新的列之间,使用英文的逗号进行分隔;
  • 更新字段值需要指明 WHERE 更新条件,否者整个表中的该字段值都会被跟新

示例:
把 users 表中 id 为 2 的用户密码和用户状态,分别更新为 123abc 和 1。
在这里插入图片描述
在这里插入图片描述


⑤ 删除数据(delete)

DELETE 语句用于删除表中的行。语法格式如下:

-- 从指定的表中,根据 WHERE 条件,删除对应的数据行
DELETE FROM 表名称 WHERE 列名称 =
  • 1
  • 2

注意:删除表中行时要指定 WHERE条件,否者将删除整个表

示例
从 users 表中,删除 id 为 3 的用户
在这里插入图片描述
在这里插入图片描述


⑥ WHERE 子句

WHERE 子句用于 限定选择的标准。在 SELECT、UPDATE、DELETE 语句中,皆可使用 WHERE 子句来限定选择的标准。

可在 WHERE 子句中使用的 运算符,如下表
|||
注意:在某些版本的 SQL 中,操作符 <> 可以写为!=

示例

-- 查询 status 为 1 的所有用户
select * from users where status=1;
-- 查询 id 大于 2 的所有用户
select * from users where id>2;
-- 查询 username 不等于 admin 的所有用户
select * from users where username<>'admin'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

⑦ AND 和 OR 运算符

AND 和 OR 可在 WHERE子语句中 把两个或多个条件结合起来

  • AND 表示 必须同时满足多个条件
  • OR 表示 只要满足任意一个条件即可

示例
使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户:
在这里插入图片描述
使用 OR 来显示所有 status 为 1,或者 username 为 zs 的用户:
在这里插入图片描述


⑧ ORDER BY 子句

ORDER BY 语句用于根据指定的列 对结果集进行排序
ORDER BY 语句 默认按照升序 对记录进行排序,默认关键字为 ASC
如果您希望按照 降序 对记录进行排序,可以使用 DESC 关键字。

示例:
对 users 表中的数据,按照 status 字段进行升序排序
在这里插入图片描述
对 users 表中的数据,按照 id 字段进行降序排序
在这里插入图片描述
多重排序
对 users 表中的数据,先按照 status 字段进行降序排序,再按照 username 的字母顺序,进行升序排序
在这里插入图片描述

⑨ COUNT(*) 函数

COUNT(*) 函数用于返回 查询结果的总数据条数,语法格式如下:

select count(*) from 表名称
  • 1

示例
查询 users 表中 status 为 0 的总数据条数
在这里插入图片描述

使用 AS 为列设置别名

如果希望给查询出来的列名称设置别名,可以使用 AS 关键字,例如
在这里插入图片描述
在这里插入图片描述

推荐阅读