【黑马程序员】MySQL 基础篇

文章目录

  • 前言
  • 一、MySQL 概述
    • 1.数据库相关概念
    • 2.MySQL 数据库
      • 1)版本
      • 2)下载
      • 3)安装
      • 4)启动与停止
      • 5)客户端连接
    • 3.数据模型
      • 1)关系型数据库(RDBMS)
      • 2)数据模型
  • 二、SQL
    • 1.SQL 通用语法
    • 2.SQL 分类
    • 3.DDL
      • 1)数据库操作
      • 2)表操作
        • 1. 查询
        • 2.创建
        • 3.数据类型
        • 4.修改
        • 5.删除
    • 4.DML
      • 1)DML 介绍
      • 2)添加数据(INSERT)
      • 3)修改数据(UPDATE)
      • 4)删除数据(DELETE)
    • 5.DQL
      • 1)DQL 介绍
      • 2)语法
      • 3)基本查询
      • 4)条件查询
      • 5)聚合查询
      • 6)分组查询
      • 7)排序查询
      • 8)分页查询
      • 9)执行顺序
    • 6.DCL
      • 1)DCL 介绍
      • 2)管理用户
      • 3)权限控制
  • 三、函数
    • 1.字符串函数
    • 2.数值函数
    • 3.日期函数
    • 4.流程函数
  • 四、约束
    • 1.概述
    • 2.约束演示
    • 3.外键约束
      • 1)语法
      • 2)删除 / 更新行为
  • 五、多表查询
    • 1.多表关系
    • 2.多表查询概述
    • 3.多表查询的分类
      • 1)连接查询
        • 1.内连接
        • 2.外连接
        • 3.自连接
      • 2)联合查询-union,union all
      • 3)子查询
        • 1.标量子查询
        • 2.列子查询
        • 3.行子查询
        • 4.表子查询
  • 六、事务
    • 1.事务简介
    • 2.事务操作
    • 3.事务四大特性
    • 4.并发事务问题
    • 5.事务隔离级别
  • 总结


前言

跟着B站的黑马程序员学习数据库,本课程共有(基础篇、进阶篇、运维篇),此为基础篇内容总结。
课程传送门:黑马程序员——数据库基础版


【黑马程序员】MySQL 基础篇_第1张图片

一、MySQL 概述

1.数据库相关概念

名称 全称 简称
数据库 存储数据的仓库,数据是有组织的进行存储 DataBase(DB)
数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System(DBMS)
SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 Structured Query Language(SQL)

【黑马程序员】MySQL 基础篇_第2张图片
主流的关系型数据库管理系统
【黑马程序员】MySQL 基础篇_第3张图片

2.MySQL 数据库

1)版本

MySQL官方提供的两种不同的版本:
【黑马程序员】MySQL 基础篇_第4张图片

2)下载

【黑马程序员】MySQL 基础篇_第5张图片

3)安装

【黑马程序员】MySQL 基础篇_第6张图片

4)启动与停止

【黑马程序员】MySQL 基础篇_第7张图片

5)客户端连接

方式一:MySQL 提供的客户端命令行工具
【黑马程序员】MySQL 基础篇_第8张图片
方式二:系统自带的命令行工具执行指令
【黑马程序员】MySQL 基础篇_第9张图片

3.数据模型

1)关系型数据库(RDBMS)

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

特点:

  1. 使用表存储数据,格式统一,便于维护
  2. 使用 SQL 语言操作,标准统一,使用方便
    【黑马程序员】MySQL 基础篇_第10张图片

2)数据模型

【黑马程序员】MySQL 基础篇_第11张图片

二、SQL

1.SQL 通用语法

1)SQL 语句可以单行或多行书写,以分号结尾
2)SQL 语句可以使用空格 / 缩进来增强语句的可读性
3)MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写
4)注释:

  • 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
  • 多行注释: /* 注释内容 */

2.SQL 分类

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库、表、字母)
DML Data Manipulation Language 数据操作语言,用来对数据库中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的访问权限

【黑马程序员】MySQL 基础篇_第12张图片

3.DDL

1)数据库操作

【黑马程序员】MySQL 基础篇_第13张图片

2)表操作

1. 查询

【黑马程序员】MySQL 基础篇_第14张图片

2.创建

【黑马程序员】MySQL 基础篇_第15张图片

3.数据类型

MySQL 中的数据库类型有很多,主要分为:数值类型、字符串类型、日期时间类型。

1)数值类型
【黑马程序员】MySQL 基础篇_第16张图片
2)字符串类型
【黑马程序员】MySQL 基础篇_第17张图片
3)日期时间类型
【黑马程序员】MySQL 基础篇_第18张图片
案例:
根据需求创建表(设计合理的数据类型、长度)

  1. 编号(数字)
  2. 员工工号(字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男 / 女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证均为 18 位,身份证中有 x 这样的字符)
  7. 入职时间(取值年月日即可)
create table emp(
	id int comment '编号',
	workno varchar(10) comment '工号',
	name varchar(10) comment '姓名',
	gender char(1) comment '性别',
	age tinyint unsigned comment '年龄',
	idcard char(18) comment '身份证号',
	entrydate date  comment '入职时间'
) comment '员工表';
4.修改

1)添加字段
【黑马程序员】MySQL 基础篇_第19张图片
2)修改字段
【黑马程序员】MySQL 基础篇_第20张图片
3)删除字段
【黑马程序员】MySQL 基础篇_第21张图片
4)修改表名
【黑马程序员】MySQL 基础篇_第22张图片

5.删除

【黑马程序员】MySQL 基础篇_第23张图片

4.DML

MySQL 图形化界面
【黑马程序员】MySQL 基础篇_第24张图片

1)DML 介绍

DML 英文全称是 Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

  • 添加数据(INSERT)
  • 修改数据(UPDATE)
  • 删除数据(DELETE)

2)添加数据(INSERT)

【黑马程序员】MySQL 基础篇_第25张图片

3)修改数据(UPDATE)

【黑马程序员】MySQL 基础篇_第26张图片

4)删除数据(DELETE)

【黑马程序员】MySQL 基础篇_第27张图片

5.DQL

1)DQL 介绍

DQL 英文全称是 Data Query Language(数据查询语言),用来查询数据库中表的记录。

查询关键字: SELECT

2)语法

【黑马程序员】MySQL 基础篇_第28张图片

3)基本查询

在这里插入图片描述

4)条件查询

【黑马程序员】MySQL 基础篇_第29张图片

5)聚合查询

【黑马程序员】MySQL 基础篇_第30张图片

6)分组查询

【黑马程序员】MySQL 基础篇_第31张图片

7)排序查询

【黑马程序员】MySQL 基础篇_第32张图片

8)分页查询

【黑马程序员】MySQL 基础篇_第33张图片

9)执行顺序

【黑马程序员】MySQL 基础篇_第34张图片

6.DCL

1)DCL 介绍

DCL 英文全称是 Data Control Language(数据控制语言),用来管理数据库用户,控制数据库的访问权限。

【黑马程序员】MySQL 基础篇_第35张图片

2)管理用户

【黑马程序员】MySQL 基础篇_第36张图片

3)权限控制

【黑马程序员】MySQL 基础篇_第37张图片
【黑马程序员】MySQL 基础篇_第38张图片

三、函数

一段可以直接被另一段程序调用的程序或代码。
【黑马程序员】MySQL 基础篇_第39张图片

1.字符串函数

【黑马程序员】MySQL 基础篇_第40张图片

2.数值函数

【黑马程序员】MySQL 基础篇_第41张图片

3.日期函数

【黑马程序员】MySQL 基础篇_第42张图片

4.流程函数

【黑马程序员】MySQL 基础篇_第43张图片

四、约束

1.概述

1)概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

2)目的:保证数据库中数据的正确、有效性和完整性。

3)分类:
【黑马程序员】MySQL 基础篇_第44张图片

2.约束演示

【黑马程序员】MySQL 基础篇_第45张图片

create table user(
	id int primary key auto_increment comment '主键',
	name varchar(10) not null unique comment '姓名',
	age int check( age > 0 && age <= 120) comment '年龄',
	status char(1) default'1' comment '状态',
	gender char(1)  comment '性别'
) comment '用户表';

3.外键约束

外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
【黑马程序员】MySQL 基础篇_第46张图片

1)语法

【黑马程序员】MySQL 基础篇_第47张图片

2)删除 / 更新行为

【黑马程序员】MySQL 基础篇_第48张图片

五、多表查询

1.多表关系

概述:项目开发中,在进行数据库结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以在各个表结构之间也存在着各种联系,基本上分为以下三种:

1)一对多(多对一)
【黑马程序员】MySQL 基础篇_第49张图片
2)多对多
【黑马程序员】MySQL 基础篇_第50张图片
3)一对一
【黑马程序员】MySQL 基础篇_第51张图片

2.多表查询概述

概述:指从多张表中查询数据
笛卡尔积:笛卡尔乘积是指在数学中,两个集合 A集合和 B集合的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)
【黑马程序员】MySQL 基础篇_第52张图片

3.多表查询的分类

1)连接查询

【黑马程序员】MySQL 基础篇_第53张图片

1.内连接

相当于查询 A、B 交集部分数据

【黑马程序员】MySQL 基础篇_第54张图片

2.外连接

左外连接:查询左表所有数据,以及两张表交集部分数据
【黑马程序员】MySQL 基础篇_第55张图片

右外连接:查询右表所有数据,以及两张表交集部分数据
在这里插入图片描述

3.自连接

当前表与自身的连接查询,自连接必须使用表别名
【黑马程序员】MySQL 基础篇_第56张图片

2)联合查询-union,union all

对于 union 查询,就是把多次查询的结果合并起来,形成一个新的查询结果集。
【黑马程序员】MySQL 基础篇_第57张图片

3)子查询

概念:SQL 语句中嵌套 SELECT 语句,称为嵌套查询,又称子查询
在这里插入图片描述
根据子查询结果不同,分为:
1.标量子查询(子查询结果为单个值)
2.列子查询(子查询结果为一列)
3.行子查询(子查询结果为一行)
4.表子查询(子查询结果为多列多行)

根据子查询位置,分为:
WHERE 之后、FROM 之后、SELECT 之后。

1.标量子查询

子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询称为标量子查询

常用的操作符:= 、<>、 >、 >=、 <、 <=

2.列子查询

子查询返回的结果是一列(可以是多行),这种子查询称为列子查询

常用的操作符:IN、 NOT IN、 ANY、 SOME、 ALL
【黑马程序员】MySQL 基础篇_第58张图片

3.行子查询

子查询返回的结果是一行(可以是多列),这种子查询称为行子查询

常用的操作符:=、 <>、 IN、 NOT IN

4.表子查询

子查询返回的结果是多行多列,这种子查询称为表子查询

常用的操作符:IN

六、事务

1.事务简介

事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败
【黑马程序员】MySQL 基础篇_第59张图片

2.事务操作

【黑马程序员】MySQL 基础篇_第60张图片

3.事务四大特性

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
    【黑马程序员】MySQL 基础篇_第61张图片
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
    【黑马程序员】MySQL 基础篇_第62张图片
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。
    【黑马程序员】MySQL 基础篇_第63张图片

4.并发事务问题

脏读:一个事务读到另一个事务还没有提交的数据。
【黑马程序员】MySQL 基础篇_第64张图片

不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。
【黑马程序员】MySQL 基础篇_第65张图片

幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了 “幻影”。
【黑马程序员】MySQL 基础篇_第66张图片

5.事务隔离级别

【黑马程序员】MySQL 基础篇_第67张图片


总结

【黑马程序员】MySQL 基础篇_第68张图片
以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

你可能感兴趣的:(数据库MySQL,mysql,数据库,sql)